Keycloak 将组设置为资源的所有者

Kir*_*bun 5 authorization abac keycloak

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

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

问题是——我可以将组设置为资源的所有者来检查策略中的这种关系吗?

如果有人在 keycloak 方面更有经验并且知道如何更好地表示这种模型,请提供帮助。

先感谢您。

Cyr*_*lle -1

在 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客户端的设备(您想要强制执行权限的任何类型的资源都是Keycloak 模型中的客户端): https://www.keycloak.org/docs/latest/server_admin/index.html#core-concepts-和项

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

指令已在 Keycloak 4.0.0 上测试。

对于每个设备,在 Keycloak 中创建相应的客户端(客户端菜单)。在新客户端的“权限”选项卡上打开“已启用权限” 。管理控制台权限列表将出现在切换按钮下方,例如查看权限。

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

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

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

  • 一旦“公司= Keycloak领域”,人们就应该停止阅读这个答案,因为这是完全有缺陷的。 (6认同)