【问题标题】:Invalid audience claim in token The JSON Web Token (JWT) used as a token does not have the correct audience. Ensure you are using the correct token令牌中的无效受众声明用作令牌的 JSON Web 令牌 (JWT) 没有正确的受众。确保您使用的是正确的令牌
【发布时间】:2020-12-15 22:19:22
【问题描述】:

无法使用 Azure 针对后端 api 进行身份验证。错误说无效的受众,但 aud 声明在 jwt.ms 中进行故障排除时具有后端 api 客户端 ID。

【问题讨论】:

  • 请提供token分析截图。
  • 如果您获得了具有正确受众的访问令牌,那么您的身份验证配置很可能存在问题。你能分享一下吗?
  • @CarlZhao 这是非常敏感的信息我恐怕不能分享。
  • 你是如何配置认证信息的?
  • @CarlZhao 在后端烧瓶 api 中,我使用 AzureResourceProtector,我们将 AZURE_OAUTH_APPLICATION_ID、AZURE_OAUTH_CLIENT_APPLICATION_IDS、AZURE_OAUTH_TENANCY 配置参数以及应用程序对象传递给它。 Frontend 是一个使用 react-aad-msal 库的 react 应用程序,我们使用它来创建 MsalAuthProvider 对象,参数为 auth :{authority, frontendclientId, redirectUri} , scope:[api://{backendapiclientid}/DefaultAppAccess] ,LoginType.Redirect。

标签: azure-active-directory jwt claims-based-identity


【解决方案1】:

从你的报错来看,确实是401错误,就是你的听众和你要调用的api不匹配,但是你的解析令牌aud声称有后端api客户端ID,所以我认为你的authentication 可能是配置有问题,我用auth code flow给大家做个简单的演示:

接下来,在“API 权限”下,让您的前端应用程序访问您的后端 api:

  • 在“API 权限”下点击“添加权限”,然后点击“我的 API”选项卡。
  • 找到您的后端应用程序并选择适当的范围。
  • 点击“添加权限”。
  • 为您的 API 授予管理员许可。

获取令牌:

解析令牌:

【讨论】:

  • 如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)请参阅:meta.stackexchange.com/questions/5234/… 这可以是对其他社区成员有益。谢谢。
  • 我是前端应用程序的开发人员,我现在可以访问前端和后端配置。这些配置是否可能反映在 azure portal 的清单中?如果是这样,请提供后端 api 客户端的示例清单,以便我可以在 Azure 管理员的帮助下将其与后端应用程序进行比较。 @CarlZhao
  • @Niru 对不起,我的api应用列表包含一些不方便提供的私人信息。你按照我回答的流程配置好你的前端和后端应用了吗?
  • 是的,我已经按照上面的描述进行了配置。您上面给出的指示是针对 azure 门户网站的,因此无法尝试您的建议。不过,感谢您的指导。
猜你喜欢
  • 2020-06-29
  • 2016-12-23
  • 2020-06-20
  • 2018-12-04
  • 1970-01-01
  • 2018-11-15
  • 2022-08-17
  • 1970-01-01
  • 2021-06-16
相关资源
最近更新 更多