5.2. 基于角色的策略


您可以使用这类策略为允许一组或多个角色访问对象的权限定义条件。

默认情况下,添加到此策略的角色没有根据需要指定,如果请求访问的用户被授予了任何这些角色,则策略将授予访问权限。但是,如果要强制执行特定的角色,您可以根据需要指定一个特定的角色为 required。您还可以组合所需的和非必需的角色,无论它们是 realm 或 client 角色。

当您需要更多限制基于角色的访问控制(RBAC)时,角色策略很有用,其中必须强制执行特定的角色来授予对对象的访问权限。例如,您可以强制用户必须同意允许客户端应用程序(代表用户执行操作)才能访问用户的资源。您可以使用红帽构建的 Keycloak Client Scope Mapping 来启用同意页面,甚至强制客户端在从红帽构建的 Keycloak 服务器获取访问令牌时显式提供范围。

要创建基于角色的新策略,请从策略类型列表中选择 Role

添加角色策略

Add Role Policy

5.2.1. Configuration

  • Name

    描述该策略的人类可读和唯一字符串。最佳实践是使用与您的业务和安全要求密切相关的名称,以便您可以更轻松地识别它们。

  • 描述

    包含此策略详情的字符串。

  • realm Roles

    指定哪些 realm 角色被这个策略允许。

  • 客户端角色

    指定哪些 client 角色被这个策略允许。若要启用此字段,必须首先选择一个 客户端

  • logic

    评估其他条件后应用此策略的逻辑。

5.2.2. 根据需要定义角色

在创建基于角色的策略时,您可以将特定的角色指定为 Required。当这样做时,只有在用户请求访问被授予了所有 required 角色时才会授予访问权限。realm 和 client 角色都可以配置,如:

所需角色示例

Example of a required role

要根据需要指定角色,请根据需要选择您要配置的角色 所需的 复选框。

当策略定义了多个角色时,所需的角色很有用,但只有其中一个角色才是必需的。在这种情况下,您可以组合 realm 和 client 角色,以便为应用程序启用更加精细的基于角色的访问控制(RBAC)模型。例如,您可以拥有特定于客户端的策略,并且需要与该客户端关联的特定客户端角色。或者,您可以强制仅在存在特定域角色的情况下授予该访问权限。您还可以组合同一策略中的两个方法。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat