cookies - 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。
解决方案
您将在 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;
}
推荐阅读
- firebase - 未处理的“错误”事件。(/var/task/google/api)
- laravel - Laravel 5.7 API 与 CORS 问题
- r - RStudio 似乎正在错误地导入数据。有什么建议么?
- python - Tensorflow Keras Input 层不添加 _keras_shape
- c# - 如何将checkListbox选中的项目从sql表添加到列表框?
- java - 类型化类的 Guice 辅助注入
- java - 将redshift-fake-driver导入python时找不到类
- java - org.openqa.selenium.NoSuchElementException:尝试通过 CssSelector 定位 card-fields-iframe 时返回的节点(null)不是 DOM 元素
- javascript - 读取作为 React 中的属性传递的嵌套对象的属性
- php - 如果存在则返回字符串的子字符串