AAD认证配置完整Reply URL后重定向至根域名的问题求助
我之前碰到过类似的AAD集成重定向异常,结合你的场景,给你几个针对性的排查和解决方向:
确认AAD应用注册的重定向URI类型与配置一致性
登录Azure门户的AAD应用注册页面,检查你添加的https://www.example1.com/abc/account/login.aspx对应的类型是否为Web(而非SPA、移动端等其他类型)。类型不匹配会导致AAD忽略路径部分,直接重定向到域名根目录。另外,确保没有其他冲突的重定向URI存在,比如根域名的URI优先级更高的情况。显式指定认证请求中的完整RedirectUri参数
即使你在启动类配置了RedirectUri,也要确认在发起认证挑战时是否传递了正确的参数。以ASP.NET为例,在AddOpenIdConnect配置里需要同时对齐CallbackPath和RedirectUri:services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; }) .AddCookie() .AddOpenIdConnect(options => { options.ClientId = "你的客户端ID"; options.Authority = "https://login.microsoftonline.com/你的租户ID"; // 这里的CallbackPath要和重定向URI的路径部分完全一致 options.CallbackPath = "/abc/account/login.aspx"; // 显式设置完整的重定向URI,和AAD配置的完全相同 options.RedirectUri = "https://www.example1.com/abc/account/login.aspx"; });另外,如果你是前端跳转AAD授权端点,要确保
redirect_uri参数的值和配置完全一致,不能有拼写错误或路径缺失。排查服务器端的URL重写规则
检查你的Web服务器(比如IIS)是否配置了URL重写规则,比如将/abc/account/login.aspx这类路径重定向到根目录。如果有这类规则,需要添加例外,排除该路径的重定向操作。检查认证回调页面的自动跳转逻辑
打开login.aspx页面的后台代码或前端脚本,确认是否存在认证完成后自动跳转到根域名的逻辑(比如Response.Redirect("~/")之类的代码)。如果有,注释掉或修改为保留当前路径的逻辑。刷新AAD应用配置缓存
有时候AAD的配置更新不会立即生效,可以尝试删除当前的重定向URI,保存后重新添加一遍,等待几分钟再测试。也可以重启你的应用服务,确保配置已加载最新的AAD设置。
内容的提问来源于stack exchange,提问作者Liquid

