SameSite=none 和不安全的 http cookie 无法在 Chrome 上工作

SameSite=none and insecure http cookies fail to work on Chrome

我 运行 我的 aspnet 核心应用程序本地位于 http://localhost:5002 上,出于某些原因我不想使用 https。它使用 OpenIdConnect 中间件进行身份验证,并生成如下所示的临时 cookie:

因此 Chrome 由于缺少 secure 标志而阻止了这些 cookie。另一方面,这个请求是 HTTP(不安全的)并且不可能标记 cookies secure。我看到的唯一方法是避免使用 HTTP 并切换到 HTTPS,这对我来说不是本地开发的好选择。我还能使用 HTTP + OpenIdConnect middleware + Crome 吗?有什么解决方法?

也许这可以说明一些问题- LINK

来自文章

Chrome is changing the default behavior for how cookies will be sent in first and third party contexts. Cookies that do not specify a SameSite attribute will be treated as if they specified SameSite=Lax, i.e. they will be restricted to first-party or same-site contexts by default. Cookies that are intended for third-party or cross-site contexts must specify SameSite=None and Secure. Note: this also means cross-site or third-party cookies are restricted to secure / HTTPS connections only.

因为,我猜,您的身份验证服务器是来自另一个域的服务器,它是一个 third-party cookie,因此它属于新的 Chrome (>= v80) 政策。

此处的解决方法是降级 Chrome 版本或使用没有这些限制的浏览器。