AADSTS50011错误排查:Apache2部署应用重定向URI协议不匹配问题
解决AADSTS50011:重定向URI HTTP与HTTPS不匹配问题
你的核心问题是后端应用未正确识别Apache传递的HTTPS协议,导致生成的重定向URI默认使用HTTP,和Azure AD中注册的HTTPS URI不匹配。以下是具体解决步骤:
1. 配置Apache传递HTTPS协议头
在Apache虚拟主机配置文件(通常路径为/etc/apache2/sites-available/你的站点配置.conf)中添加以下内容,确保将HTTPS协议信息传递给后端应用:
# 若未启用headers模块,先开启 LoadModule headers_module modules/mod_headers.so <VirtualHost *:443> # 你的SSL证书配置(SSLCertificateFile、SSLCertificateKeyFile等) # 传递协议头,告知后端当前为HTTPS请求 RequestHeader set X-Forwarded-Proto "https" # 你的反向代理规则(如ProxyPass、ProxyPassReverse) </VirtualHost>
执行命令启用模块并重启Apache:
sudo a2enmod headers sudo systemctl restart apache2
2. 在ASP.NET Core应用中启用转发头处理
在应用的Program.cs中添加转发头中间件,让应用信任Apache传递的协议信息。注意这段代码要放在UseAuthentication()和UseAuthorization()之前:
var builder = WebApplication.CreateBuilder(args); // 其他服务注册代码... var app = builder.Build(); // 启用转发头处理,识别X-Forwarded-Proto app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); // 后续中间件配置 app.UseAuthentication(); app.UseAuthorization(); // 其他应用路由等配置... app.Run();
3. 验证Azure AD配置
确认Azure AD应用注册的重定向URI已正确添加https://api.mydomain.com/signin-oidc,与应用实际回调路径一致。
完成以上配置后,应用就能正确识别HTTPS协议,生成符合要求的重定向URI,解决AADSTS50011错误。
内容的提问来源于stack exchange,提问作者willyMon
相关产品推荐
相关产品推荐

