You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.2生产环境Azure回复URL不匹配AADSTS50011错误求助

解决Azure AD AADSTS50011错误:回复URL不匹配问题

我之前碰到过一模一样的情况——明明配置了正确的重定向URI,登录时还是跳这个错误,多半是一些容易忽略的细节在搞鬼,给你几个针对性的排查方向:

1. 死磕重定向URI的大小写与结尾斜杠

Azure AD对重定向URI是严格区分大小写且完全匹配的,哪怕是一个字母大小写不对、多了/少了结尾斜杠都会触发报错。比如你配置的是https://myapplication.azurewebsites.net/auth/sign-in,但实际请求的可能是https://myapplication.azurewebsites.net/Auth/Sign-In或者带结尾斜杠的https://myapplication.azurewebsites.net/auth/sign-in/。

  • 先打开浏览器开发者工具(F12)切到Network标签,触发登录动作,找到请求https://login.microsoftonline.com/.../oauth2/v2.0/authorize的参数,查看redirect_uri的实际值,再和应用注册里的配置完全对齐。
  • 可以临时在应用注册里把两种格式的URI(带/不带结尾斜杠、大小写变体)都加上测试,确认问题后再保留正确的那个。

2. 修正appsettings.json里的Domain配置

注意到你把Domain设成了应用的URL:"Domain": "https://myapplication.azurewebsites.net",这大概率是问题核心!在ASP.NET Core的Azure AD集成逻辑里,Domain字段应该填你的Azure AD租户域名(比如yourtenant.onmicrosoft.com或者你的自定义租户域名),而不是应用的部署地址。

正确的配置示例应该是这样:

"AzureAd": {
  "Instance": "https://login.microsoftonline.com/",
  "Domain": "yourtenant.onmicrosoft.com",
  "TenantId": "your-production-tenant-id",
  "ClientId": "your-production-client-id",
  "CallbackPath": "/auth/sign-in"
}

框架会自动结合应用当前的主机名和CallbackPath生成正确的回复URL,硬把Domain设成应用地址会导致生成的redirect_uri不符合预期。

3. 检查Azure App Service的应用设置是否覆盖了本地配置

应用发布到Azure后,门户里配置 > 应用程序设置的键值对会直接覆盖appsettings.json的内容。很可能你本地配置是对的,但Azure里的AzureAd:Domain或者AzureAd:CallbackPath还停留在测试环境的旧值。

  • 登录Azure门户找到你的App Service,进入配置页面,逐个检查所有AzureAd前缀的配置项,确保和生产环境的预期完全一致。
  • 如果发现错误配置,直接修改保存,App Service会自动重启生效。

4. 清空浏览器缓存与旧会话

有时候浏览器缓存的旧登录会话会携带错误的redirect_uri参数,哪怕你修正了配置还是会报错。可以试试:

  • 用隐身/隐私窗口打开生产环境应用,重新测试登录流程。
  • 清除浏览器中与login.microsoftonline.com和你的应用域名相关的Cookie。

5. 再确认应用注册与App Service的关联

虽然你说已经关联,但还是可以快速核对:

  • 检查生产环境应用注册的ClientId是否和App Service配置里的AzureAd:ClientId完全一致(复制粘贴时容易多空格或者少字符)。
  • 确认应用注册的重定向URI没有隐藏的特殊字符,比如不可见的空格。

内容的提问来源于stack exchange,提问作者Kharenis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:59:43