我怎样才能让 keycloak 允许访问具有两种不同权限的资源,一种允许访问资源,另一种拒绝访问资源?

时间:2021-04-19 00:56:58

标签: permissions keycloak keycloak-rest-api

我对 resourceA 有 permisionA 和 policyA(roleA 的基于角色的策略)和同一个资源的 permissionB 和 policyB(roleB 的基于角色的策略)。

PemissionA 允许我访问资源 A,而权限 B 拒绝访问资源 A,当我在 keycloak 管理控制台上为具有角色 A 的用户评估时,keycloak 不允许访问资源 A。

我希望 keycloak 在至少一个权限允许访问时允许用户访问资源?

1 个答案:

答案 0 :(得分:0)

如果您在 Keycloak 中有多个策略,您可以聚合这些策略并创建一个策略。

https://www.keycloak.org/docs/latest/authorization_services/index.html#_policy_aggregated

或者举个简单的例子,如果用户拥有管理员权限超级管理员,他/她可以访问这种场景的资源,我们可以使用它。

这里是可能有助于实现的小型 JSON 实现:

{
        "name" : "PemissionA or PemissionB or PemissionC",
        "type" : "aggregate",
        "logic" : "POSITIVE",
        "decisionStrategy" : "AFFIRMATIVE",
        "config" : {
          "applyPolicies" : "[\"PemissionA\",\"PemissionB\",\"PemissionC\"]"
        }
相关问题