2015-11-23 3 views
4

Когда я пытаюсь подключиться к Azure AD, я использую пакет «паспорт-azure-ad» для NPM, я получаю сообщение об ошибке ниже. Я успешно подключился к Facebook, Google и MSFT Live, но не могу понять, почему Azure AD не нравится моя конфигурация.Паспорт - Azure AD - Приложение не поддерживается для этой версии API

Что означает эта ошибка ???

Ошибка:

Application xxx is not supported for this API version. 

Я смотрел довольно много статей и репо GitHub, но каждый из них немного отличается, и не дают понять, какие параметры необходимы.

https://github.com/AzureADQuickStarts/B2C-WebApi-Nodejs/blob/master/node-server/app.js https://github.com/Azure-Samples/active-directory-node-webapp-openidconnect/blob/master/app.js

Вот моя конфигурация:

var OIDCStrategy = require('passport-azure-ad').OIDCStrategy; 

var WINDOWS_AD_CLIENT_ID = "xxxx" 
var WINDOWS_AD_CLIENT_SECRET = "xxxx" 

passport.use(new OIDCStrategy({ 
     callbackURL: "/dealer/auth/azuread/callback" 
     , realm: 'xxxxx' //tenant Id 
     , clientID: WINDOWS_AD_CLIENT_ID 
     , clientSecret: WINDOWS_AD_CLIENT_SECRET 
     , identityMetadata: 'https://login.microsoftonline.com/common/.well-known/openid-configuration' 
     //, tenantName: 'xxxx.onmicrosoft.com' 
     //, policyName: 'B2C_1_DealerSignin' 
     //, validateIssuer: true 
     //, audience: 'http://localhost:3000/dealer' 
     //oidcIssuer: config.creds.issuer, 
     , skipUserProfile: true // for AzureAD should be set to true. 
     , responseType: 'id_token' // for login only flows use id_token. For accessing resources use `id_token code` 
     , responseMode: 'form_post' // For login only flows we should have token passed back to us in a POST 
     //scope: ['email', 'profile'] // additional scopes you may wish to pass 
    }, 
    function(iss, sub, profile, accessToken, refreshToken, done) { 
     console.log("Windows AD Profile retrieved") 
     return done(null, profile); 
    } 
)); 

И Маршруты:

router.get('/auth/azuread', 
    passport.authenticate('azuread-openidconnect', { scope: 'email profile' }), 
    function(){ 
     console.log("Azure AD endpoint invoked.") 
    }); 

router.post('/auth/azuread/callback', 
    function(req, res, next) { 
     console.log("Azure AD Auth callback is invoked") 
     next() 
    }, 
    passport.authenticate('azuread-openidconnect'), 
    function(req, res) { 
     console.log("Azure AD Auth callback is finished") 
     res.redirect('/dealer'); 
    } 
); 

ответ

1

Я столкнулся с той же проблемой, когда я создал мое приложение под:

Portal.Azure.com -> Azure AD -> App Registrations 

или эквивалент на Классическом портале.

мне пришлось создать свое приложение под:

apps.dev.microsoft.com 

Для того, чтобы работать. Надеюсь, это поможет кому-то другому.

Смежные вопросы