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

ASP.NET Core 3.1 MVC用HTTP配置Azure AD认证遇关联失败错误求助

解决方案建议

1. 调整OpenID Connect关联Cookie配置

在Configure<OpenIdConnectOptions>中修改关联Cookie的安全策略,允许HTTP环境下传输:

services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
    options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
    options.Events.OnAuthorizationCodeReceived = OnAuthorizationCodeReceived;

    // 允许关联Cookie通过HTTP传输
    options.CorrelationCookie.SecurePolicy = CookieSecurePolicy.None;
    options.CorrelationCookie.IsEssential = true;
});

2. 全局Cookie策略适配HTTP

在ConfigureServices中添加全局Cookie策略配置:

services.Configure<CookiePolicyOptions>(options =>
{
    options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
    options.Secure = CookieSecurePolicy.None;
});

同时在Configure方法中,确保Cookie策略中间件在认证中间件之前启用:

app.UseCookiePolicy();
app.UseAuthentication();
app.UseAuthorization();

3. 验证Azure AD应用注册的回调URL

确认Azure AD应用注册里的重定向URI和前端通道注销URI与你的HTTP地址完全匹配,比如http://localhost:5000/signin-oidc、http://localhost:5000/signout-oidc,协议、域名、端口、路径必须一致。

4. 禁用HSTS强制跳转

如果应用启用了HSTS,会强制浏览器使用HTTPS,需在Configure方法中注释或移除相关代码:

// app.UseHsts(); // 注释此行

5. 检查运行环境配置

  • 确保appsettings.json中的AzureAD配置项(Domain、ClientId、TenantId)正确无误
  • 确认launchSettings.json里的applicationUrl设置为HTTP地址,比如http://localhost:5000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:46:16