2016-06-29 31 views
0

我想允許我的用戶使用他們的Office 365帳戶訪問我的WebApp,就像我已經使用Twitter,Facebook和Google一樣。 我已經在Azure AD中創建了一個WebApp。nodejs - > OAuth2 Azure AD - >錯誤AADSTS50001

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

在天青AD,Web應用程序是多租戶和SIGN-ON URL爲 「https://nudniq.com

APP ID URI: 「HTTPS:\ nudniq.com」 回覆URL:「的https:\ nudniq.comauth \微軟\回調」來訪問應用程序所需的 用戶分配:NO

注:使用背shlashes代替斜槓在我'的網址張貼在這裏,因爲只計算器讓我填寫了超過兩個環節而已。

,我問的唯一permision是:

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) 

請幫助我,我不知道我做錯了什麼。

回答

0

如果您使用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應用程序的密鑰,並將其保存在您的應用程序中,不要公開它們。

任何更新,請隨時讓我知道。