首页 > 解决方案 > Chrome 80 中的 SameSite cookie 扩展更改将如何影响 Identity Server 4 用户?

问题描述

Barry Dorrans 有一个很好的页面,记录了 Chrome 80(和其他)即将对同站点 cookie 扩展进行的更改,以及它如何影响基于 .net / .net 核心的 Web 应用程序中的 OpenIdConnect 身份验证流。
Chrome 80 中的 SameSite cookie 扩展更改将如何影响 IdentityServer4 用户?当前身份服务器用户需要采取什么行动(如果有)来应对即将到来的 cookie 行为变化?当前使用身份验证码和隐式流运行 IdentityServer4 2.13。

标签: cookiesidentityserver4

解决方案


您将在 Google Chrome 中遇到控制台冲突,并且您的身份服务器无法重定向到可能是用于 Chrome 版本 80 的 React 应用程序或 Angular 应用程序的客户端。

与 at 的资源关联的 cookie 设置为带SameSite=None但不带Secure. 它已被阻止,因为 Chrome 现在仅SameSite=None在它们也被标记时才提供标记的 cookie Secure。您可以在应用程序>存储>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。

要解决此问题,您需要在以下链接中进行更改 -

https://www.thinktecture.com/en/identity/samesite/prepare-your-identityserver/

注意:对于 .Net Core 2.2,设置 SameSite = (SameSiteMode)(-1),对于 .Net Core 3.0 或更高版本,设置 SameSite = SameSiteMode.Unspecified

另外,对于 Chrome 80 版本,添加这个额外的条件 -

 if ( userAgent.Contains("Chrome/8"))
            {
                return true;
            }

推荐阅读