Pet*_*ter 17 logout single-sign-on oauth-2.0 openid-connect
我正在研究使用OpenID connect作为我们的企业应用程序(面向消费者)的SSO协议.一般来说,它的大多数方面都符合我们的需求,除了它处理单一注销的能力,并希望得到一些指导.
我有机会回顾最新的OIDC会话管理规范,以及涉及类似主题的几个堆栈溢出问题:
正如ping所提到的那样,单个注销的处理方式与SAML2不同,因为它更加以用户为中心.这一切都很好,但它仍然不适合实际单点注销的需要.具体来说,以用户为中心的处理(通过有点kludgy iframe通信)仅适用于当前浏览器视图,但不适用于当前未被查看的RP.
例如,用户使用特定的OP登录RP A,B和C. 单点注销只会触发浏览器正在查看的RP的注销; 这将使其他会话挥之不去,这可能是一个安全问题.(如果我错误地分析了这个,请更正).
我已经看到一些在协议之外工作的解决方案(例如父域cookie,或者可能(??)相同的会话存储)但遗憾的是这些解决方案不适合我的需求.
我试图看看我是否可能错过了有关OIDC规范的内容,该规范提出了一个单一的注销协议,涵盖类似于SAML2自己的单一注销的用例?(可能是某些直接OP-> RP通信?甚至是客户端"迭代直通RP"注销?).或者我真的离开了自己为它开发专有解决方案?
BTW,也很好奇是否已经在OIDC委员会讨论过这个问题(我相信它已经有了),以及它是否在路线图中得到解决.
在此先感谢您的帮助!
您期望什么样的解决方案?
如果您使用 OIDC 来保护您的资源,SLO 将正常工作(无论如何,您将在访问资源时检查 access_token,这将被撤销),但如果 OIDC 用作身份提供者,则 SLO 将无法正常工作。
OIDC 没有推送 SLO。您无法通过 OIDC 在 OP 内实现可靠的 SLO。
目前,每个 RP 都应该负责 SLO,这是您提到的 OIDC 会话管理规范中指定的。如果 RP 超出了你的控制范围,你就没有办法执行它。
| 归档时间: |
|
| 查看次数: |
5999 次 |
| 最近记录: |