【问题标题】:Keycloak SSO with JWT is this possible?带有 JWT 的 Keycloak SSO 这可能吗?
【发布时间】:2019-09-02 05:02:06
【问题描述】:

我们有一个使用 Keycloak 进行身份验证的 Web 应用程序。 我们需要添加 JWT 作为 SSO 的可能性。

Keycloak 让我们能够为主要进行某种 SAML 设置的客户相当轻松地设置 SSO。

然而,我们几乎向所有客户出售了一个新系统,该系统还声称提供单点登录。

但是我真的不明白,因为他们只是发送一个 JWT(Json Web 令牌)。

我看不出有任何方法可以将它们设置为身份提供者。

所以我想如果我们在浏览器登录流程中添加一些 JWT,然后请求帐户链接。

在管理控制台中设置看起来非常简单,就像这样

我想知道这样的事情是否可行?

如果是我如何将我的自定义身份验证器分配给我新创建的“Portal JWT”流。

我一直在阅读一些 keyclaok 服务器开发文档here

我还没有尝试编写任何代码,因为我不确定我的想法是否可行。

并且文档还提到要部署这个假定的自定义身份验证器,我必须简单地将它放在提供程序目录中。好像已经不存在了。

我意识到这个问题不包含代码,所以我在这里问它可能是错误的,但对我来说,这似乎是我所知道的最合适的堆栈交换。

请随时纠正我。

【问题讨论】:

    标签: java jwt single-sign-on keycloak


    【解决方案1】:

    我不是很清楚你的流程,但是当谈到“Keycloak 是否支持 SSO”时,答案肯定是肯定的。

    您可以通过多种方式使用 Keycloak:

    1. 作为身份提供者。 Keycloak 为您的组织维护身份和访问信息,并将其提供给受信任的第三方。这允许您的用户使用您的凭据访问该第三方的系统。
    2. 作为身份代理。 Keycloak 添加 1 个或多个第三方身份提供者作为受信任的身份来源。这允许来自受信任的第三方组织的用户使用他们的第三方凭据访问您的系统。

    Keycloak 支持 SAML 和 OIDC。 SAML 基于 XML。 OIDC 可能就是您所指的。 OIDC 使用签名的 JWT 令牌(访问令牌和 id 令牌)来传达身份信息。

    如果有人说“发送 JWT 令牌”,他们可能是在谈论 Keycloak-as-Identity-Broker 用例。为了将第 3 方身份提供者集成到您的 Keycloak 身份代理中,您需要的不仅仅是他们的 JWT 令牌。通常,您至少需要四件事:他们的身份验证端点、他们的令牌端点以及他们提供给您的 client_id 和 client_secret。这让您的 Keycloak 可以信任他们的第 3 方 IdP,这就是让 Keycloak 能够识别、验证和使用他们发布的 JWT 令牌的原因。

    【讨论】:

    • 好的,谢谢你清理它。我的意思是,当他们提供的只是一个公钥和一个令牌时,是否可以将这个其他软件设置为身份提供者。听起来好像不太可能。
    猜你喜欢
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2012-02-22
    • 2016-01-11
    • 2016-04-25
    • 2021-05-27
    相关资源
    最近更新 更多