首页 > 解决方案 > 可以使用 Keyclock 作为用户数据库吗?

问题描述

我们正在使用微服务方法构建一个应用程序,我们希望使用 keycloack 作为我们的身份验证/授权服务。我们的应用程序需要来自用户的大量个人数据(地址、电话、不同的个人证书、保险等),我们需要存储这些数据——我们可以/应该扩展 keycloack 以存储所有这些用户数据吗?这种方法的优点/缺点是什么?

如果我们将所有数据都保存在 keycloack 中,我们的一些微服务是否会查询 keycloack 以获取其他用户的数据?(例如,角色“代理”用户想要签出 10 个最近的用户及其提交的数据)——或者我们应该只在 keyclock 中存储最少的数据并为所有用户数据设计一个单独的服务?

标签: architecturemicroserviceskeycloak

解决方案


我不会使用 keycloak 作为数据库来存储用户的信息。

Keycloak 提供接口(https://www.keycloak.org/docs/latest/server_development/index.html#_user-storage-spi),您可以轻松制作自定义用户存储SPI,可以连接到您的应用程序的数据库

优点是:

  • 您可以使用映射器将用户属性映射到用户的令牌
  • 你不需要接触 keycloak 数据库(它应该只被 keycloak 使用)
  • 可扩展性(对于每个领域,您可以有不同的用户存储 SPI

推荐阅读