Keycloak - Resource based Role

时间:2019-01-18 18:13:45

标签: keycloak

My resources are events. Each event should be assigned to users with roles (Admin, Manager, Guest). There should always be the same roles available.

Examples:

  • User1 can access on event1 as Admin
  • User2 can access on event1 as Manager
  • User3 is admin on event2 but can't see event1

Now to the actual question:

How can you map this in Keycloak with Policy, Permission and role? Honestly, I have not found a good definition for scopes, maybe someone has a good example of their use.

2 个答案:

答案 0 :(得分:0)

有了Keycloak授权, 事件(event1和event2)应该是您的资源。

管理员,经理,来宾应该是您的角色

然后,您需要在“授权”下创建策略,以相应地授予对“用户/角色”的访问权限

作用域通常指示使用给定资源可以执行的操作。范围的示例包括查看,编辑,删除等。但是,范围也可以与资源提供的特定信息有关。例如,您的事件可以具有属性,例如来源,其值包括CPU,网络,内存等。您可以根据事件源定义策略和权限。

您可以从here

获取更多信息。

答案 1 :(得分:0)

  1. 创建角色Admin和Manager
  2. 创建用户(User1和User2),然后将这些用户分配给角色
  3. 通过选择必要的角色来创建基于角色的策略
  4. 通过关联创建的资源和策略来创建权限

根据Keycloak文档的范围范围资源的范围是可以对资源执行的有限访问范围。在授权策略术语中,范围是可以在逻辑上应用于资源的潜在多个动词之一。 它通常指示使用给定资源可以执行的操作。范围的示例包括查看,编辑,删除等。但是,范围也可以与资源提供的特定信息有关。在这种情况下,您可以拥有一个项目资源和一个成本范围,其中成本范围用于定义特定的策略和权限,以供用户访问项目的成本。

您可以创建范围,并且这些范围可以与资源关联。您还可以创建基于范围的权限。