java - 使用 JWT 的 Keycloak SSO 这可能吗?

标签 java jwt single-sign-on keycloak

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

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

然而,我们几乎所有客户都购买了新系统,该系统还声称提供单点登录。

但是我不太明白,因为他们只是发送 JWT(Json Web token )。

我看不出有什么方法可以将它们设置为身份提供商。

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

看起来在管理控制台中设置起来非常简单,如下所示 test browser changes

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

如果是的话,我该如何将自定义身份 validator 分配给我新创建的“Portal JWT”流程。

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

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

并且文档还提到,要部署这个所谓的自定义身份 validator ,我必须将其简单地放置在提供程序目录中。似乎不再存在了。

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

仍然可以随时纠正我。

最佳答案

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

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

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

为了实现上述任一目的,Keycloak 支持 SAML 和 OIDC。 SAML 基于 XML。 OIDC 可能就是您所指的。 OIDC 使用签名的 JWT token (访问 token 和 id token )来传达身份信息。

如果有人说“发送 JWT token ”,他们可能正在谈论 Keycloak-as-Identity-Broker 用例。为了将第三方身份提供商集成到您的 Keycloak 身份代理中,您需要的不仅仅是他们的 JWT token 。通常,您至少需要四件事:身份验证端点、 token 端点以及它们提供给您的 client_id 和 client_secret。这允许您的 Keycloak 信任他们的第 3 方 IdP,并且允许 Keycloak 识别、验证和使用他们颁发的 JWT token 。

关于java - 使用 JWT 的 Keycloak SSO 这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55634533/

相关文章:

java - 访问附加的 jboss 日志文件

java - 在 Tomcat Application 中设置 krb5.conf 的路径

ruby-on-rails - RSPEC:如何测试 Controller 操作是否返回了 JSON Web token

ruby - 如何在 Ruby 中生成有效的 ES256 签名

java - SSO 中的显式身份验证

java.lang.IllegalArgumentException : Wrong FS: hdfs://localhost:9000 expected: file:///异常

java - 独特的java对象-运行和调试时的不同行为

node.js - 基于 sailsjs jwt token 的身份验证示例

iphone - SSO 需要多次尝试登录

java - 应手动或以编程方式更改 SAML 元数据