11.3.2. 限制用户角色映射
您想要做的另一个操作是限制管理员被允许分配给用户的一组角色。继续我们的最后一个示例,让我们扩展"销售管理员"用户的权限集,以便他还能够控制允许哪些用户访问此应用程序。通过精细的权限,我们可以启用它,以便 sales-admin 只能分配授予对 销售应用程序 特定访问权限的角色。我们还可以限制它,使得管理员只能映射角色,而不执行任何其他用户管理类型。
sales-application 定义了三个不同的客户端角色。
销售应用程序角色
我们希望 sales-admin 用户能够将这些角色映射到系统中的任何用户。执行此操作的第一步是允许 admin 映射角色。如果点击 viewLeads 角色,您会看到此角色的 Permissions 选项卡。
查看领导角色权限选项卡
如果我们单击该选项卡并开启了" 权限"启用,您会看到我们可以将策略应用于多个操作。
查看领导权限
我们感兴趣的其中一项是 映射角色。单击此权限,再添加在先前示例中创建的同一用户策略。
map-roles 权限
我们所执行的操作是,sales-admin 可以映射 viewLeads 角色。我们尚未执行的操作是什么,指定管理员也可以映射此角色的用户。为此,我们必须进入此域的管理控制台的 Users 部分。单击 Users left 菜单项可进入域的用户界面。您应看到一个 权限选项卡。点击这个窗口并启用它。
用户权限
我们感兴趣的权限是 map-roles。这是限制性策略,其仅允许管理员将角色映射到用户。如果我们单击 map-roles 权限并再次添加我们为此创建的 User Policy,则 sales-admin 将可以将角色映射到任何用户。
我们要做的最后一件事是将 view-users 角色添加到 sales-admin。这样,管理员可以查看 realm 中的用户,希望将 sales-application 角色添加到其中。
添加 view-users
11.3.2.1. 测试它 复制链接链接已复制到粘贴板!
接下来,我们从 master 域注销,再使用 sales- admin 作为用户名重新登录 管理控制台。它位于 test 域的专用/auth/admin/test/console 下。
您将看到 sales-admin 可以查看系统中的用户。如果您选择了其中一个用户,您将看到每个用户详情页面都是只读的,但 Role Mappings 选项卡除外。转至此选项卡,您会发现 admin 没有可用的 角色来 映射到用户,除非浏览 sales-application 角色时除外。
添加 viewleads
我们仅指定 sales-admin 可以映射 viewLeads 角色。