可以使用JWT的Keycloak SSO吗?

时间:2019-04-11 14:08:33

标签: java jwt single-sign-on keycloak

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

Keycloak使我们能够为主要拥有某种SAML设置的客户轻松地设置SSO。

然而,新系统几乎卖给了我们所有的客户,但该系统也声称可以提供sso。

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

仅此而已,我看不出将其设置为身份提供者的任何方法。

所以我认为,也许我们将一些JWT添加到浏览器登录流程中,然后请求帐户链接。

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

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

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

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

我还没有尝试对此进行编码,因为我不确定我的想法是否可行。

并且文档还提到要部署此假定的自定义身份验证器,我只需将其放置在providers目录中即可。似乎已经不存在了。

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

仍然愿意纠正我。

1 个答案:

答案 0 :(得分:0)

我对您的流程并不十分清楚,但是当涉及到“ Keycloak是否支持SSO”时,答案肯定是肯定的。

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

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

要执行上述任一操作,Keycloak都支持SAML和OIDC。 SAML是基于XML的。  OIDC可能就是您所指的。 OIDC使用签名的JWT令牌(访问令牌和ID令牌)来传达身份信息。

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