如何配置非默认格式的Application ID URI解决401报错问题?
故障排查与解决方案
401报错的核心原因是修改Application ID URI后,代码与Azure AD配置没有同步对齐,可按以下步骤逐一验证:
<string>段没有强制命名规则,仅需保证租户内全局唯一即可,无需与App Service名称、应用注册名称绑定,你之前修改该字段未解决问题属于正常情况,问题点不在这里。- 检查服务端ASP.NET Core的JWT验证配置,
Audience参数值必须与修改后的完整Application ID URI完全一致。比如你使用https://<已验证自定义域名>/blazor-api作为新的Application ID URI,Audience就要填该完整值,不能继续沿用旧的api://<appId>。 - 检查Blazor WebAssembly客户端的MSAL配置,请求API时携带的scope前缀必须同步替换为新的Application ID URI。比如之前调用scope为
api://<appId>/access_as_user,修改后要调整为https://<已验证自定义域名>/blazor-api/access_as_user。 - 登录Azure Portal查看API对应的应用注册,进入「公开API」页面,确认所有自定义scope的前缀已经自动同步为新的Application ID URI,没有残留旧格式的scope定义。
- 如果配置过程中使用Terraform,需保证
azuread_application资源的application_id_uri参数值与你实际使用的URI完全一致,同时确认配置中引用的自定义域名属于租户已通过验证的域名,无拼写、大小写错误。 - 如以上步骤排查后仍有问题,可抓取401响应的
www-authenticate头信息,字段内会明确标注失败原因(如受众无效、签名无效等),可进一步缩小排查范围。
内容的提问来源于stack exchange,提问作者Dally Horton
相关产品推荐
相关产品推荐

