Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js passport azure广告:为什么我得到“jwt观众无效”?_Node.js_Azure_Authentication_Adal_Passport Azure Ad - Fatal编程技术网

Node.js passport azure广告:为什么我得到“jwt观众无效”?

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

下面示例中的所有ID都是由组合而成的。我添加了它们来说明一些参数的格式

我的租户位于acme.co.uk,但我希望我部署的web应用程序将用户身份验证委托给Azure AD

我使用以下方式注册了我的应用程序: 字段名是azure门户上使用的名称

应用程序ID URL:

主页URL:

回复网址:

并创建了一个不会因值“111111111111111/aaaaaaaaaaaaaaaaaa=”而过期的密钥

我一直在关注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
}
当我进入我的浏览器时,我会被重定向到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不匹配。检查您得到的令牌。一定是配置错误。