【发布时间】:2021-06-23 00:18:44
【问题描述】:
根据this tutorial,我正在尝试设置一个前端 React 应用服务和一个后端 Node 应用服务,它们都需要身份验证。
除了我需要设置 "loginParameters": ["response_type=code id_token", "scope=openid api://<backend app id>/user_impersonation"] 而不是 additionalLoginParams 之外,我已经按照这些步骤操作了,因为我的应用使用 auth v2。
当我的前端应用调用我的后端 api 时,我收到以下错误
{"code":401,"message":"IDX10205: Issuer validation failed. Issuer: '[PII is hidden]'. Did not match: validationParameters.ValidIssuer: '[PII is hidden]' or validationParameters.ValidIssuers: '[PII is hidden]'."}
我不知道如何调试它,因为响应中的有用信息被隐藏了,我在使用 Node.js 时找不到显示它的方法。我检查了令牌,颁发者是https://sts.windows.net/<tenant id>/,但我不知道预期是什么或如何设置ValidIssuer。
我为验证代码所做的是在登录后从前端调用/.auth/me 以接收访问令牌,并且此令牌作为Authentication: Bearer <access_token> 传递到标头中的后端api。我希望 Azure 根据链接教程中的设置来处理其他所有事情。这是正确的吗?
如何调试这个问题?
编辑
这就是后端应用注册的公开 API 页面的外观。
这是我的访问令牌的数据。
【问题讨论】:
-
有一个配置设置默认隐藏 PII。您可以更改该设置以在错误消息中查看此信息。
-
@GauravMantri 在哪里可以找到此设置?
-
对不起,我之前没说清楚。您能否分享您用于身份验证/授权的 SDK 的名称和版本?这是 SDK 中的设置。
-
@GauravMantri 我没有使用 SDK 进行身份验证。我已限制来自 Azure 门户的访问,我致电
/.auth/me以获取我的令牌,如问题中所述。 -
1.删除
api://前缀scope=openid {back-end api client id}/.default2. 提供您的公开api的屏幕截图。
标签: node.js azure azure-active-directory azure-web-app-service