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

Code flow中Nonce cookie未返回,返回.AspNetCore.Identity.Application报IDX21323错误

IDX21323错误排查与修复方案

IDX21323错误触发的核心是OIDC中间件发起授权请求时生成的nonce对应cookie,在回调时没有被正确携带回客户端,导致中间件无法匹配id_token中的nonce值完成校验。你观察到的.AspNetCore.Identity.Application是服务端Identity生成的会话cookie,不应该出现在客户端回调请求中,本质是服务端、客户端的cookie配置和OIDC配置不匹配导致,可按以下步骤排查:

一、OpenIddict服务端(.NET Core 3.1)配置排查

  • 检查cookie作用域配置:确认OpenIddict颁发cookie的Domain、Path属性没有被错误设置为覆盖客户端域名,避免服务端的Identity会话cookie被意外发送到客户端站点
  • 核对客户端注册配置:在OpenIddict的客户端注册逻辑中,确保对应MVC5客户端的RedirectUri配置和客户端实际回调地址signin-sevanidentity完全一致,无协议、域名、端口、路径的差异
  • 限制服务端cookie下发范围:如果服务端不需要和客户端共享会话,在Identity配置中设置Cookie.SameSite为SameSiteMode.Lax,且明确指定Cookie的Domain仅作用于服务端域名,避免跨域下发服务端Identity cookie到客户端

二、ASP.NET MVC5客户端(.NET Framework 4.8)配置排查

  • 修正OIDC中间件的cookie管理器:确认OpenIdConnectAuthenticationOptions中CookieManager使用的是SystemWebCookieManager,而非默认的OWIN cookie管理器,.NET Framework下OWIN和ASP.NET管道的cookie共享问题会直接导致nonce cookie无法被正确写入和读取,参考配置:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
    // 其余业务配置省略
    CookieManager = new SystemWebCookieManager()
});
  • 核对SameSite配置兼容性:确认客户端站点的SameSite配置和服务端匹配,.NET Framework 4.8默认支持SameSite属性,如果服务端返回的nonce cookie的SameSite设置为Strict,跨站跳转时会被浏览器拦截,导致回调时不携带
  • 清理冲突的身份验证配置:确认客户端没有同时启用Forms身份验证和OIDC身份验证,避免不同身份验证模块的cookie逻辑冲突,覆盖OIDC生成的nonce cookie
  • (临时规避方案)如果业务场景确实不需要nonce校验,可以设置ProtocolValidator.RequireNonce = false直接关闭校验,不建议长期使用该方案

验证流程

调整配置后清理浏览器所有相关域名的cookie,再重新发起登录流程:

  1. 触发授权跳转时,在浏览器开发工具的Application面板查看客户端域名下是否生成了格式为OpenIdConnect.nonce.*的cookie
  2. 跳转回回调地址时,查看请求头中是否携带了上述nonce cookie,未携带.AspNetCore.Identity.Application这类服务端cookie
  3. 校验通过后不再抛出IDX21323错误即为修复完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:06:03