IIS部署的ASP NET CORE 2.1服务火狐正常Chrome出现SSO跳转异常
IIS部署ASP.NET Core 2.1 Web服务Chrome SSO跳转异常常见原因
参考截图


- Chrome SameSite Cookie默认策略不兼容
Chrome 80及以上版本对未显式指定SameSite属性的Cookie强制启用SameSite=Lax规则,跨站SSO场景下,ASP.NET Core 2.1默认签发的认证Cookie未配置SameSite=None+Secure属性,会被Chrome拦截,服务端无法读取认证状态就会触发重定向回SSO页面。可临时在Chrome地址栏输入chrome://flags/#same-site-by-default-cookies禁用该策略后重试,验证是否为该原因导致。 - IIS反向代理请求头转发配置错误
IIS通过反向代理托管ASP.NET Core服务时,如果未正确转发X-Forwarded-Proto请求头,服务端会误将HTTPS请求识别为HTTP,导致认证Cookie的Secure属性未生效,或者SSO回调地址生成错误,Chrome安全策略会拒绝携带非安全Cookie回传,导致认证状态不被识别。可在服务端打印请求Scheme值,确认是否和实际访问协议一致,同时检查ASP.NET Core是否正确启用了UseForwardedHeaders中间件。 - Chrome第三方Cookie拦截规则触发
如果SSO服务域名和业务服务域名属于跨站场景,Chrome默认的第三方Cookie拦截规则会阻止SSO回调后业务服务的认证Cookie写入,导致服务端判断用户未登录触发重定向。可在Chrome隐私设置中临时允许所有Cookie后重试,验证是否触发了拦截规则。 - 跳转响应缓存异常
Chrome可能缓存了之前未认证状态下的302重定向响应,即使后续认证成功依然读取缓存跳回SSO。可打开Chrome开发者工具,在网络面板勾选「禁用缓存」后重新走SSO流程,验证跳转是否正常。 - 认证Cookie配置不符合Chrome规则
如果认证Cookie配置的域名范围不包含当前业务站点域名、或者路径配置错误,Chrome的Cookie匹配规则比Firefox更严格,会导致Cookie未被正确携带到请求中,服务端识别不到认证状态触发重定向。
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

