授予用户仅查看部分realm用户权限的可行性咨询
配置方案(适用于Keycloak 15+全版本)
完全可以实现,你需要用到Keycloak内置的细粒度授权能力,针对组级别做用户查看权限的范围限制即可,具体步骤如下:
1. 配置组级用户查看资源
- 进入目标realm的「客户端」管理页,选中内置的
realm-management客户端,该客户端管控所有realm级别的管理操作权限 - 切换到「授权」标签,进入「资源」管理页,新建自定义资源:
- 资源名可自定义,比如
group_1_member_view - 资源类型选择
user - 授权范围勾选
view - 资源条件添加规则:
groups 包含 /group_1(如果group_1有上层父组,按实际层级填写完整组路径即可)
- 资源名可自定义,比如
2. 为user_1绑定专属权限
- 在同一「授权」标签下进入「权限」页,新建资源类型权限:
- 关联上一步创建的
group_1_member_view资源 - 策略选择「用户策略」,指定授权对象为
user_1 - 决策逻辑设置为「允许」,保存生效
- 关联上一步创建的
3. 移除全局用户查看权限
- 回到
realm-management客户端的「角色」管理页,检查user_1的角色分配,移除其持有的view-users全局角色 - 若之前给
user_1分配过manage-users等更高权限的全局角色,也需要一并移除,避免全局权限覆盖细粒度规则
效果验证
使用user_1账号登录realm管理控制台,或者调用用户查询接口GET /admin/realms/{你的realm名称}/users,返回的用户列表仅包含group_1的成员,访问group_2的成员信息接口会直接返回403拒绝。
补充说明:如果需要同时给
user_1开放group_1内用户的编辑、删除等管理权限,只需要在第一步创建资源时额外勾选对应的manage、delete等授权范围即可,其余配置逻辑无需调整。
内容的提问来源于stack exchange,提问作者Dmirii Berrington
相关产品推荐
相关产品推荐

