我是Keycloak的新手,我尝试在我的解决方案中将其用作身份验证服务器。
我有以下实体的型号:设备归某些用户所属的特定公司所有。具有角色 admin 的用户可以向普通用户授予查看某些设备的权限,但只能授予属于该管理员公司的设备。因此,除管理员之外的所有用户都只能查看公司中所有设备的子集。 基于这些要求,我决定将公司设为组,将设备设为Keycloak的资源。为了评估权限,我选择了基于规则的策略。
问题是 - 我可以将组设置为资源所有者以在策略中检查此关系吗?
如果某人对keycloak更有经验并且知道如何更好地代表这样的模型,请帮助。
提前谢谢。
答案 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)
token exchanging
或impersonation
功能的便利。借助 USER A ,该用户可以代表 OWNER A(资源A的所有者)与 USER B 共享资源。 如果您仍然遇到问题,请添加评论