Keycloak 与 IDP 和 SSO 的集成
Posted
技术标签:
【中文标题】Keycloak 与 IDP 和 SSO 的集成【英文标题】:Keycloak integration with an IDP and SSO 【发布时间】:2021-12-02 16:14:12 【问题描述】:我的问题在这一点上更具理论性。
我有一个用例,我必须将我的应用程序(应用程序 1)与 Keycloak 和 Keycloak 与外部身份提供程序集成。在这种情况下,Keycloak 只是一个经纪人。在该外部 IDP 上还注册了其他应用程序。
场景 1:用户既没有登录 App 1,也没有登录 IDP
当用户尝试访问 App 1 时,它最终被重定向到 外部 IDP 登录表单和身份验证后,它将是 重定向回应用程序。这是一个简单的流程。
场景 2: 用户已经登录 IDP
当用户已经登录 IDP 时会发生什么, 会话处于活动状态,现在可以访问 App 1。它还会显示 登录表单,否则它最终会重定向到 App 1 而没有 提示输入用户名和密码?
只有在可能的情况下,真正的 SSO 才是可能的,因为并非每个应用都必须 通过相同的 Keycloak(可能有一些应用程序直接 与外部 IDP 集成)
【问题讨论】:
【参考方案1】:应用程序通常会重定向到 Keycloak 进行身份验证。 Keycloak 检测到有效的 IDP 会话(来自 cookie),它直接返回代码/令牌而不询问用户凭据。
但像往常一样“这取决于”。您的应用程序中可能有奇怪的“SSO”实现(例如直接授权流程),您可能在您的应用程序/登录中使用 iframe,您可能在 Keycloak 中配置了自定义身份验证流程,......所有这些都可能会破坏默认 SSO行为。但默认情况下 SAML/OIDC 是 SSO 协议。
【讨论】:
以上是关于Keycloak 与 IDP 和 SSO 的集成的主要内容,如果未能解决你的问题,请参考以下文章
使用 Keycloak 和 Azure Active Directory 的 SSO