我们为许多管理员设置了模拟角色——它按预期工作。
出于审计目的,客户端应用程序希望在通过模拟发出令牌时收到通知 -- 有没有一种方法可以向客户端发送属性/声明,告知令牌是模拟用户的管理员?
答案 0 :(得分:0)
是的,Keycloak 将该信息存储在用户会话笔记中。信息可以通过内置映射器进行映射。
请按照以下步骤操作:
Clients -> <your client> -> Mappers
Add Builtin
Impersonator Username
和/或 Impersonator User ID
(取决于您希望用户名还是 ID 作为令牌中的声明)Add selected
就是这样。您的令牌包含如下所示的信息:
{
...
"sub": "9ab9bfd1-f95d-4aa1-a8b2-0d1fb06b365a",
"preferred_username": "test",
...
"impersonator": {
"id": "2d2f4b4a-716c-4428-97cd-22fa731c0d9a",
"username": "admin"
}
...
}