Keycloak将组设为资源所有者

时间:2017-06-29 13:37:17

标签: authorization keycloak abac

我是Keycloak的新手,我尝试在我的解决方案中将其用作身份验证服务器。

我有以下实体的型号:设备归某些用户所属的特定公司所有。具有角色 admin 的用户可以向普通用户授予查看某些设备的权限,但只能授予属于该管理员公司的设备。因此,除管理员之外的所有用户都只能查看公司中所有设备的子集。 基于这些要求,我决定将公司设为,将设备设为Keycloak的资源。为了评估权限,我选择了基于规则的策略

问题是 - 我可以将组设置为资源所有者以在策略中检查此关系吗?

如果某人对keycloak更有经验并且知道如何更好地代表这样的模型,请帮助。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

在Keycloak中,您可以将特定公司(或任何组织或组织单位)表示为领域https://www.keycloak.org/docs/latest/server_admin/index.html#core-concepts-and-terms 创建一个新的领域: https://www.keycloak.org/docs/latest/server_admin/index.html#_create-realm

然后将公司用户表示为公司Keycloak 领域中的用户 https://www.keycloak.org/docs/latest/server_admin/index.html#user-management

...和作为Keycloak Clients 的设备(您要强制执行权限的任何类型的资源都是Keycloak模型中的 Client ): https://www.keycloak.org/docs/latest/server_admin/index.html#core-concepts-and-terms

默认情况下,已经为每个角色定义了一个管理员角色(“角色”菜单)。

在Keycloak 4.0.0上测试过的指令。

对于每个设备,在Keycloak(“客户端”菜单)中创建相应的客户端。在新客户端的“权限”标签上打开已启用权限。管理控制台权限列表将显示在切换按钮的正下方,例如 view 权限。

然后,为了将设备的 view 权限分配给某些用户,管理员应点击刚才提到的 view 权限(链接),创建一个用户策略(“创建策略...”列表框),然后在“用户”字段中选择用户(受让人)。

为了将多个设备上的权限分配给同一组人员,请改用“组或角色策略”(之前将用户放在同一组中)。

为了将权限分配给设备组,请在每组设备中使用一个组/角色,然后将用户分配到组/角色。

答案 1 :(得分:0)

  • 在研究密钥斗篷时,我找不到任何方法来为特定资源设置多个所有者。
  • 我有另一种选择来授予所有者的资源访问权限。
  • 让我们说资源A 的所有者是 OWNER A ,现在又有两个用户 USER A USER B 。如果假设所有者A 已与 USER A 共享访问权限,并且 USER A 希望将资源A 共享给< strong> USER B 代表资源所有者,那么 USER A 应该如何与 USER B 共享资源范围?

答案

  • Keycloak提供了token exchangingimpersonation功能的便利。借助 USER A ,该用户可以代表 OWNER A(资源A的所有者) USER B 共享资源。
  • 参考:您只需要遵循此Keycloak Impersonation

如果您仍然遇到问题,请添加评论