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

问题描述 投票:0回答:3

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

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

我已遵循官方文档,但由于某种原因无法查看链接的内容。任何有帮助的正确指南链接都会很棒。

mysql jboss openid-connect keycloak
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只调用你的服务,其他一切都是你的实现。


10
投票

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

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


7
投票

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

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

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

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

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

GitHub 存储库:

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

© www.soinside.com 2019 - 2024. All rights reserved.