【发布时间】:2019-12-22 16:38:07
【问题描述】:
我们有两个 SPA 应用程序,它们与同一个 IdentityProvider 交互。 我们实现了 oidc-client 并且 SSO 运行良好。现在我们认识到,如果第三方 cookie 被阻止,静默身份验证将不起作用,这是一个大问题。
Safari、Firefox 等浏览器已经默认阻止第三方 cookie。在 SPA 应用程序中执行 Session_Management 和 Access_Token 管理的推荐方法是什么。
我们不希望用户再次登录,如果 IdentityProvider 上的 Session 仍然处于活动状态(会话处于活动状态 14 天,并有滑动到期)。
我有什么选择?
【问题讨论】:
-
您能否确认问题在于您的身份服务器的身份验证 cookie 未在静默登录方案中发送?
-
如果您使用“静默刷新”又名 refresh_token 来获取新的 access_token,则 IDP 上的 Cookie 不会发挥任何作用。
-
@VidmantasBlazevicius 您不在 SPA 中使用刷新令牌 - 它是 iframe 中的 prompt=none 授权端点请求,因此需要身份验证 cookie。
-
是的,我应该更仔细地阅读这篇文章。我认为这有点打破了隐式流的静默身份验证意味着诚实。我可以看到尝试确定第三方 cookie 是否已启用/禁用,并至少提示用户让他知道后果可能是一种合理的方法......
-
@mackie 我可以确认。我认为在前面的频道中没有办法处理这个问题。我们现在尝试以下方法:leastprivilege.com/2019/01/18/…
标签: cross-domain identityserver4 openid-connect oidc-client-js