(以下示例中的所有 ID 都是组成的。我添加了它们以说明某些参数的格式)。
我的租户位于 acme.co.uk,但我希望部署在https://subdomain.acme2.co.uk的 Web 应用程序将用户身份验证委托给 Azure AD。
我使用新门户注册了我的应用程序,如下所示:(字段名称是天蓝色门户上使用的名称)。
应用 ID 网址:https ://acme.co.uk/11111111-2222-3333-4444-555555555555
主页网址:https ://subdomain.acme2.co.uk/api/auth/aad
回复网址:https ://subdomain.acme2.co.uk/api/auth/aad/callback
并创建了一个不会过期的密钥:'111111111111111111/aaaaaaaaaaaaaaaaaaaaaa='
我一直在使用 v1 端点作为指南来关注 passport-azure-ad github 示例。
{
allowHttpForRedirectUrl: false,
clientID: 'https://acme.co.uk/11111111-2222-3333-4444-555555555555',
clientSecret: '111111111111111111/aaaaaaaaaaaaaaaaaaaaaaaa=',
identityMetadata: 'https://login.microsoftonline.com/acme.co.uk/.well-known/openid-configuration',
isB2C: false,
issuer: null,
loggingLevel: 'info',
passReqToCallback: false,
redirectUrl: 'https://subdomain.acme2.co.uk/api/auth/aad/callback',
responseMode: 'form_post',
responseType: 'code id_token',
skipUserProfile: true,
useCookieInsteadOfSession: false,
validateIssuer: true
}
当我在浏览器中访问“ https://subdomain.acme2.co.uk/api/auth/aad ”时,我会被重定向到 MS 登录,然后我会这样做,但是当重定向回“ https:// subdomain.acme2.co.uk/api/auth/aad/callback '发生,我没有通过身份验证。
检查来自回调 POST 请求的标头,我看到:
In _validateResponse: jwt audience is invalid. expected: https://acme.co.uk/11111111-2222-3333-4444-555555555555,spn:https://acme.co.uk/11111111-2222-3333-4444-555555555555
任何想法我做错了什么???[:-|
(除此之外:调试这很痛苦,因为我在 docker 中运行并且重定向似乎无法正常工作,所以我必须部署到真实环境的 ATM)。