我有一个应用程序,它是一个服务提供商。
是否可以使用 OpenID Connect 实现 Idp 发起的 SSO?
看起来对于 Idp 发起的 SSO 只能使用 SAML,对吗?或者有没有办法让 OpenID Connect 也能工作?
我正在考虑使用一些开源工具,如 Keycloak 或 OneLogin 工具包等。
非常感谢。
最佳答案
当前形式的 OpenID Connect 无法使用安全的 IDP 发起的 SSO。然而,有一个称为 3rd-party-initiated-SSO 的功能,它允许通过 3rd-party 启动身份验证过程,但仍然首先访问 RP。
以下是有关第三方发起的 SSO 的详细信息:
https://openid.net/specs/openid-connect-core-1_0.html#ThirdPartyInitiatedLogin
至于所描述的 IDP-init 建议:一个行为良好的 RP 应该防止这种情况发生 - 因为在技术上它启用 CSRF - 通过使用 state
参数或(作为不太受欢迎和不太安全的解决方案)通过将请求状态保存在 cookie 中,这使得 RP 仅在请求/响应往返期间容易受到 CSRF 的攻击。
有一项正在进行的工作描述了 - 除其他外 - 如何使用签名消息以安全的方式扩展 OpenID Connect 来实现真正的 IDP-init-SSO:https://tools.ietf.org/html/draft-bradley-oauth-jwt-encoded-state#section-4.3
关于authentication - OpenID Connect 和 IDP 发起的 SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050353/