You need to enable JavaScript to run this app. ASP.NET Core集成Azure AD部署后Chrome不存Cookie引发循环重定向问题
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core集成Azure AD部署后Chrome不存Cookie引发循环重定向问题

问题解决方案

核心原因

该问题是Chromium内核浏览器(Chrome、Edge、Opera)的Cookie安全策略导致:部署后站点运行在HTTPS环境下,但ASP.NET Core未正确识别HTTPS协议,导致签发的身份Cookie未携带Secure属性,Chromium内核会直接拒收不带Secure标识的SameSite=None属性Cookie,因此没有身份凭证的请求会持续跳转到Azure AD登录页,形成循环重定向。

修复步骤

  1. 配置转发头识别HTTPS协议

如果部署时使用了反向代理(Nginx、IIS、Azure App Service等均默认启用反向代理),需要显式配置ASP.NET Core读取代理转发的请求头,正确识别原始请求的HTTPS协议。
首先在ConfigureServices方法中添加转发头配置:

services.Configure<ForwardedHeadersOptions>(options =>
{
    options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
    // 测试环境可临时清空代理限制,生产环境建议配置为你的反向代理IP
    options.KnownProxies.Clear();
    options.KnownNetworks.Clear();
});

然后在Configure方法的最开头位置添加转发头中间件,顺序不能错,必须在其他中间件之前加载:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 放在第一行
    app.UseForwardedHeaders();
    
    // 其他原有代码不变
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }
    // ... 其余原有代码保持不变
}
  1. 调整Cookie安全配置

修改原有CookiePolicyOptions配置,关闭不必要的Cookie同意校验,强制Cookie使用HTTPS安全策略:

services.Configure<CookiePolicyOptions>(options =>
{
    // 未实现Cookie同意弹窗功能的话,直接关闭该配置,否则未授权用户不会收到身份Cookie
    options.CheckConsentNeeded = context => false;
    options.MinimumSameSitePolicy = SameSiteMode.None;
    // 强制所有Cookie携带Secure属性,仅在HTTPS下传输
    options.Secure = CookieSecurePolicy.Always;
    options.HandleSameSiteCookieCompatibility();
});
  1. 显式配置身份Cookie属性

在AddMicrosoftIdentityWebAppAuthentication之后添加身份Cookie的安全配置:

services.AddMicrosoftIdentityWebAppAuthentication(Configuration);

// 新增这部分配置
services.Configure<CookieAuthenticationOptions>(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
    options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
    options.Cookie.SameSite = SameSiteMode.None;
    options.Cookie.HttpOnly = true;
});

额外校验项

  • 确认Azure AD应用注册中的重定向URI为HTTPS开头,且与部署站点的域名、回调路径完全匹配
  • 确认部署站点的访问地址为HTTPS,没有使用HTTP协议访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:15:04