Impersonation - 表示它是令牌的模拟的属性

时间:2021-07-13 17:40:54

标签: keycloak

我们为许多管理员设置了模拟角色——它按预期工作。

出于审计目的,客户端应用程序希望在通过模拟发出令牌时收到通知 -- 有没有一种方法可以向客户端发送属性/声明,告知令牌是模拟用户的管理员?

1 个答案:

答案 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"
  }
  ...
}