5.2. 基于角色的策略
您可以使用这类策略为您的权限定义条件,其中允许一组或多个角色访问对象。
默认情况下,不会根据需要指定添加到此策略中的角色,如果被授予了任何这些角色的用户请求访问权限,策略将授予访问权限。但是,如果要强制执行特定的角色,您可以根据需要指定一个特定的角色为 required。您还可以组合所需的和非必需角色,无论它们是 realm 还是客户端角色。
当您需要更受限的基于角色的访问控制(RBAC)时,角色策略很有用,其中必须强制特定的角色才能授予对象访问权限。例如,您可以强制用户同意允许客户端应用程序(代表用户)访问用户的资源。您可以使用 Red Hat Single Sign-On Client Scope 映射来启用同意页面,甚至强制客户端在从 Red Hat Single Sign-On 服务器获取访问令牌时显式提供范围。
若要创建新的基于角色的策略,可在策略列表右上角的项列表中选择 Role。
添加角色策略
5.2.1. Configuration
Name
描述该策略的人类可读和唯一字符串。最佳实践是使用与您的业务和安全要求密切相关的名称,以便您可以更轻松地识别它们。
描述
包含此策略详情的字符串。
realm Roles
指定哪些 realm 角色被这个策略允许。
客户端角色
指定哪些 client 角色被这个策略允许。要启用此字段,必须首先选择一个
Client
。逻辑
在评估其他条件后应用此策略的逻辑。
其他资源
5.2.2. 根据需要定义角色
在创建基于角色的策略时,您可以根据需要指定特定角色 。
当这样做时,只有在用户请求访问被授予了所有 required 角色时才会授予访问权限。域和客户端角色都可以配置,例如:
所需角色示例
要根据需要指定角色,请根据需要选中您要配置的角色 所需的
复选框。
当您的策略定义了多个角色,但只强制要求其中的一部分时,所需的角色就很有用。在这种情况下,您可以组合域和客户端角色,为您的应用程序启用更精细的角色访问控制(RBAC)模型。例如,您可以有特定于客户端的策略,并需要与该客户端关联的特定客户端角色。或者,您可以强制仅被授予特定域角色的访问权限。您还可以在同一策略中组合这两种方法。