ASP.NET Core对接Azure AD JWT时提示受众无效401错误如何解决?
问题原因
你API端的受众(Audience)配置值与JWT令牌中实际携带的aud声明值不匹配:
你在API的User Secrets中将ResourceId设为了app://1e994557-5ae1-47bf-8ab7-b0ce2f8f3852,但你Azure AD中注册的API的应用ID URI是api://1e994557-5ae1-47bf-8ab7-b0ce2f8f3852,获取到的JWT里aud声明也是api://前缀,校验时两边不一致就会返回401错误。
解决方法
修改API项目的User Secrets配置,将ResourceId的值从app://1e994557-5ae1-47bf-8ab7-b0ce2f8f3852改为api://1e994557-5ae1-47bf-8ab7-b0ce2f8f3852,和Azure AD中API的应用ID URI完全保持一致即可。
修改完成后重启API项目,再次运行客户端调用接口就能正常返回结果。
补充校验
你当前的中间件顺序app.UseAuthentication()在前、app.UseAuthorization()在后是正确的,不需要调整。
内容的提问来源于stack exchange,提问作者Jeff Dege
相关产品推荐
相关产品推荐

