Mar*_*nte 5 google-openid asp.net-core identityserver4
我们有一些用户无法通过 Google 连接到我们的平台。发生这种情况时,总是针对特定设备,但根据我们目前掌握的信息,并非所有设备类型都相同(有待确认)。
我们正在使用 ASP.NET Core(和 Identity Server 4)。
我们这边的错误是从 oauth 流返回后,由 ASP.NET 标识设置的相关 cookie 消失了。我们已经验证它在开始时设置得很好,并且是有效的。这不是关于数据保护的问题(我们确实有这个问题)。无论我们尝试连接哪个帐户,我们都可以在装有 iOS 12 的两台 iPad 上进行复制。所有这些帐户都可以连接到其他设备,包括装有 iOS 13 的 iPad。
因此,我们正在尝试隔离可能导致这些特定设备出现故障的原因。此外,这似乎是最近才开始发生的,我们无法确定是什么变化可能在我们这边触发了这种情况。
将 iPad 从 iOS 12 更新到 iOS 13 可以解决此问题。
Cag*_*das 19
也许您可以在 AddOpenIdConnect("") 中使用此代码。
如果您使用 .net core > 2.*
options.NonceCookie.SameSite = (SameSiteMode) (-1);
options.CorrelationCookie.SameSite = (SameSiteMode) (-1);
Run Code Online (Sandbox Code Playgroud)
如果您使用 .net > 3.*
options.NonceCookie.SameSite = SameSiteMode.Unspecified;
options.CorrelationCookie.SameSite = SameSiteMode.Unspecified;
Run Code Online (Sandbox Code Playgroud)
2019/11/19,.NET Core v2.2.8 发布。此版本包含此更改,在补丁说明中提到:
风险:中等。众所周知,SameSite 更改与较旧的操作系统和浏览器不兼容,尤其是 iOS 12 和 OSX Mojave(最新版本 - 1)。这些代表了 Web 客户端用户群中一小部分但有影响力的部分。更新到最新的操作系统版本解决了不兼容问题。
由于我们的 Docker 映像基于mcr.microsoft.com/dotnet/core/aspnet:2.2,因此发生在 12 月 3 日的无关更新将该更新推送到我们的服务器。
这篇博文更详细地解释了这种情况,但简而言之:
set-cookieSameSiteNoneSameSite=None,ASP.NET Core 不会将SameSite值发送set-cookie到NoneSameSite=NoneSameSite=None视为SameSite=Strict(有关详细信息,请参阅此 webkit 错误)虽然我们可以恢复到 2.2.7,但即将到来的 Chrome 更新 (80) 将停止工作。幸运的是,这篇文章清楚地说明了正确的行动方案:我们需要实现用户代理嗅探,而不是发送SameSite=None给不支持它的用户代理。这条评论提到了建议的用户代理进行过滤,看起来不错。
| 归档时间: |
|
| 查看次数: |
6013 次 |
| 最近记录: |