Identityserver4 在SameSite=Lax的情况下使用oidc客户端进行静默续订

Identityserver4 在SameSite=Lax的情况下使用oidc客户端进行静默续订,identityserver4,oidc-client-js,samesite,Identityserver4,Oidc Client Js,Samesite,Chrome计划在2020年2月为使用Chrome 80的Cookie实施新的默认安全模式。 现在我正在测试所有可能受到影响的应用程序 对于身份验证/授权,我们使用oidc客户端(在UI上)和后端的IdentityServer 工作流程如下所示: 请求: 职位 {用户名,密码} 响应: 设置Cookie:idsrv=abc {“redirectUrl”:“token&scope=openid”} 请求 令牌&scope=openid“ Cookie:idsrv=abc 响应: 302地点: 请求

Chrome计划在2020年2月为使用Chrome 80的Cookie实施新的默认安全模式。 现在我正在测试所有可能受到影响的应用程序

对于身份验证/授权,我们使用oidc客户端(在UI上)和后端的IdentityServer

工作流程如下所示:

请求

职位 {用户名,密码}

响应

设置Cookie:idsrv=abc

{“redirectUrl”:“token&scope=openid”}

请求

令牌&scope=openid“ Cookie:idsrv=abc

响应

302地点:

请求

加载应用程序时,Oidc客户端会添加IFrame来执行silenternew操作,该操作实际上会发送额外的请求

GET-token&prompt=none Cookie:idsrv=abc

我不明白的是为什么最后一个请求indide IFrame包含idsrv cookie?该请求是在IFrame中完成的,它肯定是第三方cookie。 如果我将SameSite设置切换为“严格”,则一切都会按预期工作,cookies不会被发送


如果有人能向我解释这个案例或提出一些想法来检查,那就太好了!谢谢!

OIDC客户端库使用OIDC会话管理来跟踪会话,这是通过使用OP iframe和客户端(RP)iframe完成的

Identity server为此发出idsrv:会话cookie

检查这个