在Azure AD中注册应用程序 - node.js passport-azure-ad示例

时间:2016-09-23 16:13:42

标签: node.js azure passport.js azure-active-directory

我正在尝试在托管@ Azure的Node.js服务器上为POST请求设置身份验证。

我正在使用this示例:

passport.use(new OIDCStrategy({
    callbackURL: config.creds.returnURL,
    realm: config.creds.realm,
    clientID: config.creds.clientID,
    clientSecret: config.creds.clientSecret,
    oidcIssuer: config.creds.issuer,
    identityMetadata: 'https://login.microsoftonline.com/TenantGuidOrTheWordCOMMON/v2.0/.well-known/openid-configuration',
    skipUserProfile: config.creds.skipUserProfile,
    responseType: config.creds.responseType,
    responseMode: config.creds.responseMode,
    (tenant: "Guid from AzureAD-Endpoints-Button"),
    (validateIssuer: false/true)
      }, (...)

虽然我的代码会将我重定向到" https://login.microsoftonline.com"页面(这很好),在输入我的电子邮件地址后,它会立即将我重定向到其他地方。

我在browserUrl中收到错误:"客户端不存在" ... 它说我应该创建一个应用程序@" https://apps.dev.microsoft.com"。

为什么?我有一个AppService" MyService",同一订阅中的Azure AD和Azure AD中的应用程序注册" for" MyApp"。

  • 现在这个残酷的apps.dev.microsoft网站是什么?为什么没有我注册的" MyApp"显示,反之亦然?
  • 我有什么要进入" oidcIssuer"? MyApp.ApplicationId? (apps.dev.microsoft.com)-Application.ApplicationId? AzureAD-ClientId? AzureAD-IssuerUrl?
  • clientSecret的相同问题
  • 使用identityMetadata与ID而不是" common"之间的区别是什么? + validateIssuer:反对使用identityMetadata和#34; common",validateIssuer:false + tenant:" myTenant(Guid?)"
  • 当我使用" ExpressSettings"在身份验证/授权中 - > AzureAD为什么我找不到我在Azure AD中定义的应用程序?
  • 我是否必须激活图谱API(我对此一无所知)
  • 是否有很好的替代方案可以在Azure AD中使用身份验证来保护我的express.post端点? (ADAL似乎是资源)

我没有得到微软的所有这些设置,属性和门户我只是被这一切所淹没......(更不用说还有一个" OLD"门户网站)

接下来的几天我会尝试this Azure Step-By-Step Guide也许它会以某种方式帮助我......

2 个答案:

答案 0 :(得分:0)

对于您正在使用的此示例,您无需修改​​OIDCStrategy对象中的参数。相反,您需要在client_config_*.js.个文件中配置AAD设置。就像文档在https://github.com/AzureAD/passport-azure-ad/tree/master/examples/login-oidc描述的那样。

顺便说一下,我们在Classic Portal上管理我们的AAD应用程序。

答案 1 :(得分:0)

就像我对"Has anyone successfully used Azure AD to authenticate users for a Node.js web application?"

的回答一样

我在new Azure Portal

中设置了这样的身份验证(无代码)
  • 托管我的Node.js服务器
  • 在订阅中添加广告
  • 在AD中注册新申请
  • 添加“https://YourNodeJS.azurewebsites.net/.auth/login/aad/callback”作为回复网址
  • 在AppServices中,选择您的Node.js服务器
  • 在“设置”中,转到“身份验证/授权”
  • 激活AAD
  • 使用AAD的高级模式
  • 输入上面在AD
  • 中注册的应用程序的ClientID(GUID)
  • 作为issuerURL输入此链接:https://sts.windows.net/YourADGuid/(如果您回顾上面在AD中注册的应用程序,您可以在“端点”中看到GUID)