nodejs - > OAuth2 Azure AD - >错误AADSTS50001

时间:2016-06-29 22:31:24

标签: node.js azure passport.js oauth2

我希望允许我的用户使用他们的Office 365帐户访问我的WebApp,方式与我在Twitter,Facebook和Google上的方式相同。 我已经在Azure AD中创建了一个WebApp。

我正在使用nodejs,passportjs和passport-azure-oauth2策略。

在Azure AD中,Web应用程序是多租户,而SIGN-ON URL是“https://nudniq.com

APP ID URI:“https:\ nudniq.com” 回复网址:“https:\ nudniq.comauth \ microsoft \ callback” 访问应用程序所需的用户分配:否

注意:我在此处发布的URL中使用了反斜杠而不是斜杠,因为stackoverflow只允许我写两个以上的链接。

我唯一要求的是:

Read all users' basic profiles

我正在用这个值创建我的策略:

clientID: '<client_id>',
clientSecret: '<client_secret_key>',
callbackURL: 'https://nudniq.com/auth/microsoft/callback'

但是我收到以下错误:

TokenError: AADSTS50001: Resource identifier is not provided. 
Trace ID: 95f88f5a-95b9-4d3a-86fe-19ae0bbfcc76 
Correlation ID: b056150c-debd-469d-963b-ea362ca93884 
Timestamp: 2016-06-29 01:38:39Z
   at AzureOAuth2.OAuth2Strategy.parseErrorResponse (/home/ec2-user/test2/fastpass/node_modules/passport-oauth2/lib/strategy.js:298:12)
   at AzureOAuth2.OAuth2Strategy._createOAuthError (/home/ec2-user/test2/fastpass/node_modules/passport-oauth2/lib/strategy.js:345:16)
   at /home/ec2-user/test2/fastpass/node_modules/passport-oauth2/lib/strategy.js:171:43
   at /home/ec2-user/test2/fastpass/node_modules/oauth/lib/oauth2.js:177:18
   at passBackControl (/home/ec2-user/test2/fastpass/node_modules/oauth/lib/oauth2.js:123:9)
   at IncomingMessage.<anonymous> (/home/ec2-user/test2/fastpass/node_modules/oauth/lib/oauth2.js:143:7)
   at IncomingMessage.emit (events.js:129:20)
   at _stream_readable.js:908:16
   at process._tickDomainCallback (node.js:381:11)

请帮助我,我不知道我做错了什么。

1 个答案:

答案 0 :(得分:1)

如果您使用AzureOAuthStrategy策略,则当您遇到此问题时,就意味着您错过了resource参数的配置。

根据GitHub存储库中的代码示例:

this.passport.use("provider", new AzureOAuth2Strategy({
  clientID: config.clientID,
  clientSecret: config.clientSecret,
  callbackURL: config.callbackUri,
  resource: config.resource,
  tenant: config.tenant,
  prompt: 'login',
  state: false
}

我们需要配置此resource参数 由于您是Office 365以对用户进行身份验证,因此请尝试将resource设置为https://graph.microsoft.com

此外,请重新生成您的AAD应用程序的密钥,并将其保存在您的应用程序中,不要将其暴露给公众。

任何更新,请随时告诉我。