Node.js passport azure广告:为什么我得到“jwt观众无效”?
下面示例中的所有ID都是由组合而成的。我添加了它们来说明一些参数的格式 我的租户位于acme.co.uk,但我希望我部署的web应用程序将用户身份验证委托给Azure AD 我使用以下方式注册了我的应用程序: 字段名是azure门户上使用的名称 应用程序ID URL: 主页URL: 回复网址: 并创建了一个不会因值“111111111111111/aaaaaaaaaaaaaaaaaa=”而过期的密钥 我一直在关注passport azure ad github作为指南Node.js passport azure广告:为什么我得到“jwt观众无效”?,node.js,azure,authentication,adal,passport-azure-ad,Node.js,Azure,Authentication,Adal,Passport Azure Ad,下面示例中的所有ID都是由组合而成的。我添加了它们来说明一些参数的格式 我的租户位于acme.co.uk,但我希望我部署的web应用程序将用户身份验证委托给Azure AD 我使用以下方式注册了我的应用程序: 字段名是azure门户上使用的名称 应用程序ID URL: 主页URL: 回复网址: 并创建了一个不会因值“111111111111111/aaaaaaaaaaaaaaaaaa=”而过期的密钥 我一直在关注passport azure ad github作为指南 { allowHttp
{
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
}
当我进入我的浏览器时,我会被重定向到MS登录,然后我会这样做,但当重定向回发生时,我没有经过身份验证
检查回调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环境。好,找到了。。。
客户ID:
他是罪魁祸首
这应该是应用程序Id,而不是应用程序Id URI.Doh。非常感谢@Alex Blex的指导。这非常有用。在我的例子中,我使用的是.env并从中获取clientId
我通过删除配置文件和.env文件中clientID的引号解决了这个问题。这一个?作为旁注,重定向只是普通的302。如果你可以在浏览器中访问停靠的应用程序,重定向应该可以工作。在调试方面,我建议使用类似chrome开发工具、网络选项卡、启用保留日志和comp之类的工具状态查询字符串参数是否发送到login.microsoftonline.com,以及是否返回到https://subdomain.acme2.co.uk/api/auth/aad/callback.Thanks 对于信息。是的,我看到了这个问题,但不幸的是,我是最新版本3.0.8中的一员。我将查询字符串状态值与响应“表单数据”->“状态”进行了比较,结果完全相同而且看不到URL编码。啊……重新部署了,我现在收到一个不同的错误?!In _validateResponse:jwt访问者无效。预期:。有什么想法吗?更新了问题,从azure返回的jwt令牌的部分与clientID不匹配。检查您得到的令牌。一定是配置错误。