AppModelV2: не удается получить токен доступа для некоторых пользователей в Internet Explorer

Я реализовал модель для унифицированной аутентификации приложений, используя passport-azure-ad по этой ссылке https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-devquickstarts-node-web. Это мой код:

post('/azure/callback', (req : express.Request, res : express.Response, next : Function) => {
    if ((req.query.error || req.query.error_description) &&
        req.query.state) {
        return res.render('oAuthWindow');
    }
    passportAzureOAuth.authenticate('azuread-openidconnect', (err, user, info) : any => {
        if (err) {
            return res.status(422).send(err);
        } else {
            return res.render('oAuthWindow');
        }
    })(req, res, next);
});

Я зарегистрировал функцию azureOauthVerify с passport-azure-ad следующее:

// Registered function with callback from azure

azureOAuthVerify(req, iss, sub, profile, accessToken, refreshToken, done) {}

azureOAuthConfig = {
    identityMetadata : nconf.get('AZURE_END_POINT'), // For using Microsoft you should never need to change this.
    clientID : nconf.get('AZURE_CLIENT_ID'),
    responseType : 'id_token code',
    responseMode : 'form_post',
    passReqToCallback : true,
    realm : constants.StringConstants.API_END_POINT,
    validateIssuer : false,
    skipUserProfile : true,
    redirectUrl : constants.StringConstants.API_END_POINT + constants.StringConstants.AZURE_CALLBACK_URL,
    clientSecret : nconf.get('AZURE_CLIENT_SECRET'),
    scope : ['https://graph.microsoft.com/mail.read', 'offline_access']
};
passport.use(new OIDCStrategy(azureOAuthConfig, azureOAuthVerify));

Проблема заключается в том, что все пользователи, использующие Chrome, могут войти в систему должным образом, но для некоторых пользователей (не всех) в Internet Explorer, которые используют электронную почту Office, не удается войти в систему.

Я только что отладил проблему и обнаружил, что токен доступа не получен от AZURE_ENDPOINTт.е. /azure/callback вызывается, но функция зарегистрирована с паспортом, azureOauthVerify, не называется.

Что я здесь не так делаю?

0 ответов

Другие вопросы по тегам