使用现有MySQL数据库进行用户认证的Keycloak用户联合。

15

我正在为我们的组织设置Keycloak服务器,有几个问题。

  1. 如何使用现有的用户数据库进行身份验证 - 用户联合。 Keycloak只提供了LADP / Kerberos选项。是否有任何自定义插件可用于MySQL用户身份验证,或者我们可以通过某个适配器使用现有的连接器(LDAP / Kerberos)进行数据库身份验证?
  2. 在Keycloak环境中是否可以拥有多个身份提供程序 - (将Keycloak作为少数服务的IDP,而将Keycloak Google作为其他服务的IDP)。

我已经按照官方文档进行操作,但出于某些原因无法查看链接的内容。任何有用的指南链接都将非常好。

3个回答

11
检查Keycloak自定义用户联合
这意味着在Keycloak用户名/密码登录时使用不同的数据源(或过程)。
参见=>
  1. https://github.com/keycloak/keycloak/blob/main/docs/documentation/server_development/topics/user-storage/simple-example.adoc
  2. https://tech.smartling.com/migrate-to-keycloak-with-zero-downtime-8dcab9e7cb2c github => (https://github.com/Smartling/keycloak-user-migration-provider)
第一个链接 => 解释如何将外部数据库配置到Keycloak。
第二个链接(需要更改)=> 这些示例可以进行更改,如下所示,
  • 你可以创建一个自定义的联邦实现,
  • 它将调用你的服务,
  • 你的服务将查询你的数据库,
  • 你的服务将响应你的结果。

第二个例子(我的建议)是将你的自定义代码(联邦过程,你的服务)和Keycloak抽象出来。Keycloak只调用你的服务,其他所有的实现都是你的责任。


3
你的第一个链接已经不再可用了... 显然是一年后 :) - Jean-Rémy Revy
对于任何看到这条消息的人,我在2023年08月11日更新了第一个链接。 - undefined

10

7

我曾经回答过一个关于现有数据库用户和keycloak认证的类似问题(链接在这里)。

我发布了自己的解决方案,实现了多个RDBMS(Oracle、MySQL、PostgreSQL、SQLServer)来满足简单的数据库联邦需求,支持bcrypt和几种类型的哈希。

它是一个可配置的keycloak自定义提供程序,您只需要设置一些SQL查询即可使用。

它已经兼容新版keycloak quarkus部署。

请随意克隆、派生、贡献或任何您需要解决的问题。

GitHub仓库:

https://github.com/opensingular/singular-keycloak-database-federation


谁在寻找与Keycloak的DB连接,这个答案是非常宝贵的。 - maxivis
@Vinicius Uriel,我的Keycloak实例已经部署在云端(phasetwo),我该如何使用Keycloak IHM上传JAR文件?因为我无法访问服务器文件... - James
错误 [org.keycloak.services.error.KeycloakErrorHandler] (默认任务-1):未捕获的服务器错误:java.lang.NoClassDefFoundError: org/hibernate/dialect/Dialect - James
嗨James,试着在github上开个问题,写上更多的细节,这样会更容易帮到你。 - Vinicius Uriel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接