2016-06-29 2 views
0

Я хочу разрешить моим пользователям получать доступ к моему WebApp, используя их учетную запись Office 365, так же, как я уже делал с Twitter, Facebook и Google. Я уже создал WebApp в Azure AD.nodejs -> OAuth2 Azure AD -> Ошибка AADSTS50001

Я использую nodejs, паспортные планы и паспорт-azure-oauth2.

В Azure AD, веб-приложение Многоквартирный и URL SIGN-ON IS "https://nudniq.com"

APP ID URI: "https: \ nudniq.com" Ответить URL: «https: \ nudniq.comauth \ Microsoft \ обратного вызова»Назначение пользователя требуется для доступа приложения: нЕТ

Примечание: I'am использованием назад shlashes вместо слэш в URL, размещенные здесь, потому что StackOverflow только позволяет мне не писать не более двух ссылок.

Единственное permision, что я прошу это:

Read all users' basic profiles 

I'am создавая свою стратегию этого значения:

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.
Поскольку вы являетесь офисом 365 для аутентификации пользователей, попробуйте установить resource на номер https://graph.microsoft.com.

Кроме того, пожалуйста, восстановите секретный ключ приложения AAD и сохраните его в своем приложении, не публикуйте его публично.

Любое обновление, не стесняйтесь, дайте мне знать.