使用现有MySQL数据库进行用户身份验证的Keycloak用户联合

Sag*_*uri 5 mysql jboss openid-connect keycloak

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

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

我遵循了官方文档,但由于某种原因无法查看链接的内容。指向正确指南的任何有用链接都将非常有用。

tom*_*tom 9

您应该实现自己的用户存储 SPI 以将您的 MySQL 数据库集成为外部用户存储数据库

https://www.keycloak.org/docs/latest/server_development/index.html#_user-storage-spi


Bat*_*han 8

检查 Keycloak 自定义用户联盟

这意味着,在 Keycloak 用户名/密码登录时使用不同的数据源(或进程)

见 =>

  1. https://github.com/keycloak/keycloak-documentation/blob/master/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认同)

小智 7

我回答了有关现有数据库用户和 keycloak 身份验证的类似问题(链接此处

我将自己的解决方案发布为多 RDBMS 实现(oracle、mysql、postgresl、sqlserver),以解决简单的数据库联合需求,支持 bcrypt 和多种类型的哈希值。

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

它已经与新的 keycloak quarkus 部署兼容。

请随意克隆、分叉、贡献或做任何您需要解决问题的事情。

GitHub 仓库:

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