我遇到过这样的情况:用户需要通过 Okta 登录到代理,我在其中配置了具有 SAML IDP 发起的 SSO 的 keycloak 实例。
Broker 需要在成功登录后重定向到每个租户中安装的 10 个 KeyCloak 实例之一。我已在代理 KeyCloak 和租户 KeyCloak OpenID Connect (OIDC) SSO 之间进行配置。
现在我正在寻找一种将其两端连接的方法,以便 Okta 的用户获得成功的 SAML SSO,并在成功登录后通过 OIDC 重定向到租户 KeyCloak。
我正在寻找有关如何操作或使用哪些功能的建议或提示。不太可能有说明,但如果您知道它们并可以分享,我将非常感激
在 Okta 中,创建一个新的 SAML 2.0 应用程序。配置 SAML 设置,包括单点登录 URL 和受众 URI 以匹配您的 Broker Keycloak 实例。
之后,在您的 Broker Keycloak 实例中,导航到身份提供商。选择 SAML v2.0 并添加新的身份提供商。输入 Okta SAML 应用程序中的必要信息(SSO URL、颁发者和 X.509 证书)。根据需要配置属性映射。
然后我们需要为每个租户创建 OIDC 客户端。在您的 Broker Keycloak 中,导航至 Clients。为每个租户Keycloak实例创建一个新客户端。将客户端 ID 和客户端协议设置为 openid-connect。 设置根 URL、有效重定向 URI 和基本 URL 以指向相应的租户 Keycloak 实例。根据需要配置其他客户端设置(例如,需要同意、启用标准流程等)。
然后我们需要配置 Broker Keycloak 和 Tenant Keycloak 之间的身份代理。在每个租户 Keycloak 实例中,导航到身份提供商。选择 OpenID Connect v1.0 并添加新的身份提供商。 从 Broker Keycloak 中相应的 OIDC 客户端配置中输入必要的信息(客户端 ID、客户端密钥、授权 URL、令牌 URL、用户信息 URL)。根据需要配置属性映射和其他设置。
接下来我们需要在Broker Keycloak中配置重定向逻辑。在 Broker Keycloak 中实现自定义身份验证器,以确定适合用户的租户 Keycloak 实例。自定义身份验证器可以使用用户属性、组或其他上下文信息来决定将用户重定向到哪个租户。在 Broker Keycloak 的身份验证流程中配置身份验证器。