Menu Close
Settings Close

Language and Page Formatting Options

2.7.3.3. 在管理接口中添加 RBAC

默认情况下禁用 RBAC 系统。它通过从 简单的 to rbac 更改 provider 属性来 启用。这可以通过管理 CLI 来完成。在运行的服务器上禁用或启用 RBAC 时,必须先重新加载服务器配置才能生效。

为管理接口启用 RBAC 时,分配给用户的角色决定了他们有权访问的资源,以及他们可使用资源属性执行的操作。只有 AdministratorSuperUser 角色的用户才能查看和更改访问控制系统。

警告

在没有正确配置用户和角色的情况下启用 RBAC 可能会导致管理员无法登录到管理界面。

RBAC 在管理控制台中的影响

在管理控制台中,一些控件和视图被禁用,显示为灰显或根本不可见,具体取决于分配给用户的角色的权限。

如果用户对资源属性没有读取权限,则控制台中该属性将显示为空。例如,大多数角色无法读取数据源的用户名和密码字段。

如果用户具有读取权限,但没有对资源属性具有写入权限,则该属性将在资源的编辑表单中禁用。如果用户没有资源写入权限,则不会出现资源的编辑按钮。

如果用户没有访问资源或属性的权限,这意味着该角色无法寻址,则不会出现在该用户的控制台中。其中的一个示例是访问控制系统本身,它默认仅对几个角色可见。

管理控制台还为以下常见 RBAC 任务提供了一个接口:

  • 查看和配置为每个用户分配或排除的角色。
  • 查看并配置为每个组分配或排除哪些角色。
  • 查看每个角色的组和用户成员资格。
  • 每个角色配置默认成员资格。
  • 创建有作用域角色。
注意

目前无法在管理控制台中配置限制。

RBAC 对管理 CLI 或管理 API 的影响

启用 RBAC 时,管理 CLI 或管理 API 的用户的行为略有不同。

无法读取的资源和属性会根据结果进行过滤。如果过滤过的项目可以被角色寻址,则在结果的 response -headers 部分中将其名称列为 filtered- attributes。如果资源或属性不能被角色寻址,则它不会被列出。

尝试访问不可寻址的资源将导致 Resource Not Found 错误。

如果用户尝试写入或读取他们可以寻址的资源,但缺少适当的写入或读取权限,则返回 Permission Denied 错误。

管理 CLI 可以执行与管理控制台相同的所有 RBAC 任务,以及一些额外的任务:

  • 启用和禁用 RBAC
  • 更改权限组合策略
  • 配置应用程序资源和资源敏感度限制

RBAC 对 Jakarta 管理的 Bean 的影响

基于角色的访问控制通过三种方式应用到 Jakarta 管理:

  1. JBoss EAP 的管理 API 公开为 Jakarta 管理 Bean。这些受管 Bean 称为 核心组件, 它们的访问会被控制和过滤,与底层管理 API 本身完全相同。
  2. jmx 子系统配置有敏感写入权限。这意味着只有 AdministratorSuperUser 角色的用户 才可以对该子系统进行更改。Auditor 角色的用户也可以读取此子系统配置。
  3. 默认情况下,所有管理用户可以访问由已部署的应用程序和服务或非核心 MBeans 注册的 Bean,但只有 MaintainerOperatorAdministratorSuperUser 角色的用户 可以向其写入。

RBAC 身份验证

RBAC 与 JBoss EAP 附带的标准身份验证提供商一同工作:

用户名/密码
用户通过用户名和密码组合进行验证,该组合通过 ManagementRealm 的设置进行验证,该设置可以使用本地属性文件或 LDAP。
客户端证书
truststore 为客户端证书提供身份验证信息。
本地 jboss 用户
如果服务器在同一计算机上运行,则 jboss-cli 脚本会自动以本地 jboss 用户 进行身份验证。默认情况下,本地 jboss 用户SuperUser 组的成员。

无论使用了何种提供程序,JBoss EAP 均负责将角色分配给用户。通过 ManagementRealm 或 LDAP 服务器进行身份验证时,这些系统可以提供用户组信息。JBoss EAP 还可以使用此信息将角色分配给用户。