AzureAD认证仅本地可用,发布后报AADSTS50011错误如何解决?
解决AADSTS50011:回复URL不匹配问题
你需要修改的内容如下:
- 登录Azure门户,定位到报错信息里提到的Azure AD应用注册(ID为
614f66a9-xxxx-483a-8bc7-xxxxxxx) - 进入该应用注册的身份验证页面,在平台配置区域点击「添加平台」,选择「Web」类型,然后输入你的App Service实际访问域名加上默认回调路径:
https://<你的App Service名称>.azurewebsites.net/signin-oidc- 如果使用了自定义域名,替换成你的自定义域名格式,比如
https://www.yourcustomdomain.com/signin-oidc
- 如果使用了自定义域名,替换成你的自定义域名格式,比如
- 同时检查应用的
appsettings.json配置文件,确保AzureAd:CallbackPath的值为/signin-oidc(这是.NET Core OpenID Connect的默认回调路径,如果你自定义了路径,要保证门户里的回复URL路径和这个配置完全一致);另外AzureAd:ClientId、AzureAd:TenantId等核心参数也要和Azure门户里的应用注册信息完全匹配
为什么本地正常但发布后异常?
这是典型的环境配置差异导致的问题:
- 本地开发时,你使用的是
https://localhost:xxxx这类本地地址,并且已经在Azure AD应用注册里添加了对应的本地回复URL(比如https://localhost:5001/signin-oidc),所以本地请求的回调地址和Azure AD的配置完全匹配,自然不会报错 - 发布到App Service后,应用的访问域名变成了Azure提供的二级域名(或你的自定义域名),但你没有把这个生产环境的URL添加到Azure AD应用注册的允许回复URL列表中。当用户在生产环境发起登录请求时,Azure AD收到的回调地址是生产环境域名,但这个地址不在允许列表内,就会抛出AADSTS50011错误
- 另外要注意,本地调试时加载的是
appsettings.Development.json,而发布后默认加载appsettings.json,要确认生产环境配置文件里的AzureAd相关配置没有残留本地地址
额外提醒
添加完回复URL后一定要点击「保存」,Azure AD的配置可能需要1-2分钟才能生效,不要立刻测试。如果同时使用了Azure默认域名和自定义域名,两个地址对应的回复URL都需要添加到配置中。
内容的提问来源于stack exchange,提问作者Daarwin
相关产品推荐
相关产品推荐

