keycloak中的用户数据存储在哪里?以及如何阅读?

问题描述 投票:0回答:1
  1. 我按照本指南设置了 Keycloak:https://hub.docker.com/r/jboss/keycloak/。我使用MySQL作为数据库。我认为使用 attributes 可以将附加数据存储在 Keycloak 中,并且使用映射器可以将其与客户端关联起来。我的问题是:以这种方式存储用户数据是一个好的做法吗?和。数据应该附加到哪里?因为可以将属性附加到访问令牌id 令牌用户信息。所有这些都是可选的,并提出了更多问题,这引出了我的第二个问题。

  2. 当访问令牌已向用户颁发时,可以更改/添加属性。这意味着,客户端将无法通过正在使用的令牌立即访问这些属性,因为用户可能仍然拥有旧令牌,而新属性未附加到该旧令牌上。我的问题是:如何处理这个问题?我做错了什么根本上错了吗?

我找到了一个相关主题:如何通过id获取其他用户信息(用户名,名字)? [钥匙斗篷]。但这表明客户端是管理员用户或具有其他权限(是服务帐户)。

keycloak user-data keycloak-rest-api
1个回答
3
投票

问题1:将额外的数据放入用户属性中是绝对可以的。这就是这些属性的目的。使用声明映射器,您可以完全自由地定义哪些属性属于哪些标记。与客户端范围相结合,可以轻松地与多个客户端重复使用相同的声明映射。

问题 2:通常您会同时使用访问令牌和刷新令牌,并且访问令牌的有限生命周期很短(例如 1-5 分钟)。当访问令牌过期时,刷新令牌将用于检索新的访问令牌。在 Keycloak 中,创建此类新的访问令牌会再次应用所有声明映射器,因此用户属性的任何更改都将反映在新的访问令牌中。因此,最终,访问令牌的配置过期时间决定了等待更改的属性通过访问令牌对应用程序可见的最长时间。

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