Keycloak 如何避免将用户添加到具有资源的所有组

Keycloak 如何避免将用户添加到具有资源的所有组,keycloak,keycloak-services,keycloak-rest-api,Keycloak,Keycloak Services,Keycloak Rest Api,对使用keydape还不熟悉,我正在尝试理解如何将角色分配给用户。这是我使用的格式。我创建角色和用户,并创建具有特定角色的组。然后,我根据组中的角色将用户分配到组以获得权限。现在我在下面的例子中遇到了困难 假设我有4个资源A、B、C、D、2个角色R1、R2、2个组G1、G2和一个用户U R1有权限我使用这些授权范围:读、写、创建、删除以访问A、B。 R2仅具有访问A、B、C、D资源的权限。 G1分配了角色R1,G2分配了角色R2 现在,我创建了一个用户U,希望给他访问G1的权限,希望这个用户能够

对使用keydape还不熟悉,我正在尝试理解如何将角色分配给用户。这是我使用的格式。我创建角色和用户,并创建具有特定角色的组。然后,我根据组中的角色将用户分配到组以获得权限。现在我在下面的例子中遇到了困难

假设我有4个资源A、B、C、D、2个角色R1、R2、2个组G1、G2和一个用户U

R1有权限我使用这些授权范围:读、写、创建、删除以访问A、B。 R2仅具有访问A、B、C、D资源的权限。 G1分配了角色R1,G2分配了角色R2

现在,我创建了一个用户U,希望给他访问G1的权限,希望这个用户能够访问上面提到的2个资源。但事实并非如此,我注意到你没有获得4种资源中的任何一种。我还需要将该用户添加到G2,以访问所有4个资源,这不是我想要的

同样在另一种情况下,如果我想将用户添加到G2,我希望他能够访问所有4种资源。但是我注意到这个用户只能访问C,D。我应该将他添加到G1中,以便访问所有资源


我相信keydrope在分配权限时会以条件和方式进行检查。有没有一种方法可以定义资源相互独占的角色?

根据我使用KeyClope的经验,在没有完整配置的情况下,我建议将权限引入到图片中

注意:请注意,这只是一个个人建议,不是建议 硬-快方法

使用权限时,可以将决策策略设置为肯定。在您的情况下,似乎默认权限设置为一致,这意味着所有策略的计算结果都必须为true

我的做法是:

将角色分配给组与您所做的相同 G1->R1 G2->R2

将用户添加到与您所做的相同的组中

为R1Policy1和R2Policy2创建基于角色的策略

为每个资源PermA、PermB、PermC、PermD创建权限

将权限与所需的角色策略关联

以你为例

因为R2可以访问所有资源。将Policy2与所有4个渗透关联

因为R1可以访问A、B资源。仅将保单1与PermA、PermB关联

将决策策略保持为肯定的