Azure AD回复地址不匹配:新环境部署应用后遇invalid_client错误
解决Azure AD回复地址不匹配(AADSTS50011)问题
这个错误太常见了——本质就是你的应用实际请求授权时用的回复地址(redirect URI)和Azure AD里注册的应用配置完全对不上。看错误信息,你的应用现在发的是http://xxxx/,但Azure AD里登记的是https://xxxx,协议(http/https)和结尾的斜杠都是差异点,Azure AD对这个匹配要求是完全精确的,差一点都不行。
下面是一步步的解决方法:
1. 登录Azure门户找到你的应用注册
- 打开Azure Portal,搜索并进入「Azure Active Directory」
- 在左侧菜单点「应用注册」,找到你部署的那个应用(注意切换「所有应用」或「拥有的应用」标签,别找错了)
2. 更新回复地址配置
- 进入应用的「身份验证」页面(左侧菜单里找)
- 在「平台配置」区域,你会看到已注册的回复地址列表:
- 如果
http://xxxx/是你现在应用实际要用的地址(比如开发环境没开HTTPS),直接把这个地址添加到列表里; - 要是你的应用应该用
https://xxxx(比如生产环境强制HTTPS),那得去改你应用的配置,把redirect URI改成和Azure AD里一致的https://xxxx(注意结尾有没有斜杠,要完全一模一样)
- 如果
- 别忘了点保存!
3. 核对应用端的配置
- 去你的应用代码或配置文件里找redirect URI的配置项:
- 比如ASP.NET应用可能在
appsettings.json里的AzureAd:RedirectUri; - 其他框架也有对应的认证配置节点,一定要确保这里填的地址和Azure AD里注册的完全匹配——包括协议、域名、端口、路径,甚至结尾的斜杠都不能错
- 比如ASP.NET应用可能在
额外提醒
- Azure AD的配置更改可能需要几分钟才会生效,改完别急着立刻测试,等个2-3分钟再试;
- 如果是多环境部署(开发/测试/生产),记得给每个环境单独配置对应的回复地址,别把开发环境的http地址用到生产环境里;
- 要是你不确定应用实际发的redirect URI是什么,可以抓个请求包看看,或者在应用日志里找相关的请求参数,这样能更准确地匹配配置
内容的提问来源于stack exchange,提问作者joinx
相关产品推荐
相关产品推荐

