11.3. 精细的管理权限


注意

精细管理权限 是技术预览,不被完全支持。此功能默认为禁用。

使用 -Dkeycloak.profile=preview-Dkeycloak.profile.feature.admin_fine_grained_authz=enabled 来启用服务器。如需了解更多详细信息,请参阅 配置文件

有时,management-realmmanage-users 等角色过于起见,而且您希望创建具有更细化权限的受限 admin 帐户。Red Hat Single Sign-On 允许您定义和分配用于管理域的受限访问策略。比如:

  • 管理一个特定客户端
  • 管理属于特定组的用户
  • 管理组成员资格
  • 有限的用户管理。
  • 精细模拟控制
  • 可以为用户分配一组特定的受限角色。
  • 能够将特定的受限角色集合分配给复合角色。
  • 能够将特定的受限角色集合分配给客户端的范围。
  • 用于查看和管理用户、组、角色和客户端的新常规策略。

请注意有关精细的 admin 权限的一些重要事项:

  • 细致的管理权限是在授权服务之上 实施。强烈建议您先读取这些功能,然后再进入相关权限。
  • 精细的权限只能在 专用 admin 控制台和 那些域中定义的管理员中可用。您无法定义跨域细调权限。
  • 细粒度权限用于授予额外权限。您无法覆盖在 admin 角色中构建的默认行为。

11.3.1. 管理一个特定客户端

首先,让我们看一个管理员仅管理一个客户端和一个客户端。在我们的示例中,我们有一个名为 test 的域,以及名为 sales-application 的客户端。在域测试中,我们将为该域权限授予用户,以便仅管理该应用程序。

重要

您不能进行跨域细致权限。master 域中的管理员仅限于前面章节中定义的预定义 admin 角色。

11.3.1.1. 权限设置

我们首先必须登录 Admin Console,以便我们能够为该客户端设置权限。我们导航到客户端的管理部分,为.

客户端管理

fine grain client

您应看到一个名为 Permissions 的选项卡菜单项。点击该选项卡。

客户端权限选项卡

fine grain client permissions tab off

默认情况下,每个客户端都未启用才能进行细化权限。因此,将 Permissions Enabled 切换到 on 以初始化权限。

重要

如果将 Permissions Enabled 切换为 off,它将删除任何权限以及您为这个客户端定义的所有权限。

客户端权限选项卡

fine grain client permissions tab on

当您将 Permissions Enabled 切换到 on 时,它会使用授权服务 初始化幕后的各种权限对象。https://access.redhat.com/documentation/en-us/red_hat_single_sign-on/7.5/html-single/authorization_services_guide/在本示例中,我们对客户端 的管理权限 感兴趣。单击该按钮,将您重定向到处理客户端 管理权限 的权限。所有授权对象都包含在 realm-management 客户端的 Authorization 选项卡中。

客户端管理权限

fine grain client manage permissions

当第一次初始化时,管理权限没有关联任何策略。您将需要创建一个策略选项卡。若要快速获取,可单击以上镜像中显示的 授权 链接。然后点击 policy 选项卡。

本页中有一个名为 Create policy 的下拉菜单。您可以定义多个策略。您可以定义与角色或组关联的策略,或者在 JavaScript 中定义规则。对于这个简单示例,我们将 创建用户策略

用户策略

fine grain client user policy

此策略将与用户数据库中硬编码的用户匹配。在本例中,它是 sales-admin 用户。然后,我们必须返回 sales-application 客户端的管理权限页面,并将策略分配给权限对象。

分配用户策略

fine grain client assign user policy

sales-admin 用户现在可以有管理 sales-application 客户端的权限。

我们还需要做得再做。前往 Role Mappings 选项卡,并将 query-clients 角色分配给 sales-admin

分配查询客户端

fine grain assign query clients

您为何要执行此操作?此角色告知 Admin Console 哪个菜单项目在 sales-admin 访问管理控制台时要呈现出来。query-clients 角色告知 Admin Console,它应该为 sales-admin 用户呈现客户端菜单。

重要信息如果没有设置 query-clients 角色,则 sales-admin 等受限管理员不会在用户登录管理控制台时看到任何菜单选项

11.3.1.2. 测试它

接下来,我们从 master 域注销,再使用 sales- admin 作为用户名重新登录 test 域的专用 管理控制台。它位于 /auth/admin/test/console 下。

销售管理员登录

fine grain sales admin login

此管理员现在可以管理这个一个客户端。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat