注册后,我想在自定义用户属性中存储信息(例如外部ID)。最终目标是在JWT令牌中包含此信息。
我在寻找正确的方法时遇到了麻烦。我认为这可能不是一个好的设计。
有关用例的更多详细信息:当用户在keycloak上注册时,我必须在外部应用程序上创建该用户,并且我想将此外部ID保存在keycloaK上。
我当时在考虑事件监听器SPI,并在注册后做一些事情,但是感觉有点过头了
用户注册后,你可以使用端点将外部ID添加为用户自定义属性:
PUT <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/<USER_ID>
与有效载荷 {"id":"<USER_ID>","attributes":{"ExternalID":["<THE_EXTERNAL_ID>"]}}
你可以从以下用户ID获取它:
GET <YOUR_KEYCLOAK_DOMAIN>/auth/admin/realms/<YOUR_REALM>/users/?username=<THE_USERNAME>
对于这两个端点,你都需要在标头中发送来自类似用户的管理员的令牌。
在Keycloak中,转到:
标签ExternalID可以将其替换为将要使用的标签。
这足以使外部ID进入JWT令牌中