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

AAD身份认证回复URL不匹配及异常回调路径问题求助

解决Azure App Service部署后AAD认证回调URL不匹配及权限问题

看起来你遇到的核心问题是代码中自定义的AAD OIDC认证和**Azure App Service自带的Easy Auth(应用服务认证/授权功能)**发生了冲突,导致回调URL不符合预期,后续还触发了权限报错。下面分步骤帮你解决:

第一步:确认是否启用了App Service Easy Auth

登录Azure门户,找到你的App Service实例,进入「认证」选项卡:

  • 如果状态显示为「启用」,那就是它接管了你的认证流程——Easy Auth会自动拦截请求并使用自己的回调路径(也就是你看到的https://xxx.azurewebsites.net/.auth/login/aad/callback),完全绕过了你代码里配置的OIDC逻辑。

第二步:二选一解决冲突

你需要选择以下两种方案中的一种,不能同时使用:

方案一:关闭Easy Auth,完全使用代码内的AAD认证

  1. 在App Service的「认证」选项卡,将状态切换为「禁用」,点击保存。
  2. 回到应用注册页面,确保添加了所有生产环境的回调URL:
    • 你的自定义域名回调:https://xxxxx.me/yyyyyBackend/signin-oidc
    • App Service默认域名回调:https://xxx.azurewebsites.net/signin-oidc
  3. 重新部署你的应用,测试登录流程——此时应该会使用你代码里配置的OIDC逻辑,回调URL匹配后就能正常登录了。

方案二:保留Easy Auth,移除代码内的认证配置

如果你想使用App Service提供的托管认证(无需自己维护OIDC代码),可以这么做:

  1. 在你的项目中移除所有AAD认证相关的代码和配置:
    • 删除appsettings.json里的AzureAd节点
    • 移除Program.cs/Startup.cs中AddAzureAD、AddOpenIdConnect这类认证中间件的配置代码
  2. 回到App Service的「认证」选项卡,配置AAD身份提供者:
    • 选择「Microsoft」作为身份提供者
    • 填入你的应用注册的ClientId、ClientSecret、TenantId
    • 确认系统自动添加的回调URLhttps://xxx.azurewebsites.net/.auth/login/aad/callback已存在(如果没有手动添加)
    • 设置「未认证时的操作」为「登录」,保存配置
  3. 重新部署应用,此时App Service会自动处理认证流程,你的应用可以通过HttpContext.User直接获取用户身份信息。

解决「You do not have permission to view this directory or page.」报错

这个错误大概率是因为你同时启用了Easy Auth和代码内的认证,导致双重拦截;或者是应用路由配置有问题:

  • 如果用方案一关闭Easy Auth后仍报错,检查:
    • 应用的默认路由是否配置正确(比如有没有设置默认的控制器和动作)
    • 查看App Service的「日志」选项卡,获取更详细的错误堆栈信息,定位具体问题
  • 如果用方案二,确保已经完全移除了代码内的认证中间件,避免和Easy Auth冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:40:59