How to avoid adding user to all groups with a resource
刚开始使用 Keycloak,我正在尝试了解如何为用户分配角色。这是我使用的格式。我创建角色和用户,并创建具有某些角色的组。然后,我根据组中的角色将用户分配到组以具有权限。现在我在以下情况下遇到了困难。
假设我有 4 个资源
现在我创建了一个用户
在另一种情况下,如果我想将用户添加到
我相信 keycloak 在分配权限时会使用
根据我使用 Keycloak 的经验,如果您没有完整的配置,我建议您将权限纳入图片。
https://www.keycloak.org/docs/latest/authorization_services/#_permission_overview
NOTE: Please note that this is just a PERSONAL recommendation, not a
hard-fast approach.
在使用权限时,可以将决策策略设置为肯定。 (在您的情况下,默认权限似乎设置为一致,这意味着所有策略都必须评估为真)
(https://www.keycloak.org/docs/latest/authorization_services/#_permission_decision_strategies)
我的处理方法是:
为组分配角色(与您所做的相同)
G1 -> R1
G2 -> R2
将用户添加到组(与您所做的相同)
为 R1(Policy1) 和 R2(Policy2) 创建基于角色的策略。
为每个资源创建权限(PermA、PermB、PermC、PermD)
将权限与所需的角色策略关联
(以你为例)
因为 R2 可以访问所有资源。将 Policy2 与所有 4 个权限关联。
因为 R1 可以访问 A、B 资源。仅将 Policy1 与 PermA、PermB 关联。
将决策策略保持为肯定。