Keycloak 角色是如何管理的?

How are Keycloak roles managed?

Keycloak 是一个很棒的工具,但它缺少适当的文档。

所以我们有 Realm.roles、Client.roles 和 User.roles

使用特定客户端访问应用程序时,这 3 个如何协同工作?

此致,

在 KeyCloak 中,我们有这 3 个角色:

  1. 领域 角色
  2. 客户 角色
  3. 复合 角色

KeyCloak 中没有用户角色。您很可能将其与用户角色映射混淆,后者基本上是将角色(领域、客户端或复合)映射到特定用户

为了弄清楚这些角色实际上是如何工作的,让我们首先看一下我创建的一个简单的 Realm 模型。如下图所示,每个 Realm 都有一个或多个 Clients。每个 Client 都可以有多个 Users 附加到它。

现在应该很容易得出角色映射的工作原理。

领域角色:它是一个全局角色,属于那个特定的领域。您可以从任何客户端访问它并映射到任何用户。 前角色: 'Global Admin, Admin'

客户角色:这是一个只属于特定客户的角色。您无法从不同的客户端访问该角色。您只能将其映射到该客户端的用户。 前角色: 'Employee, Customer'

复合角色:它是一个角色,具有与其相关联的一个或多个角色(领域或客户端角色)。