2.7.3.3. 在管理接口中添加 RBAC
默认情况下禁用 RBAC 系统。它通过从 简单的 to rbac 更改 provider 属性来 启用。这可以通过管理 CLI 来完成。在运行的服务器上禁用或启用 RBAC 时,必须先重新加载服务器配置才能生效。
为管理接口启用 RBAC 时,分配给用户的角色决定了他们有权访问的资源,以及他们可使用资源属性执行的操作。只有 Administrator 或 SuperUser 角色的用户才能查看和更改访问控制系统。
在没有正确配置用户和角色的情况下启用 RBAC 可能会导致管理员无法登录到管理界面。
RBAC 在管理控制台中的影响
在管理控制台中,一些控件和视图被禁用,显示为灰显或根本不可见,具体取决于分配给用户的角色的权限。
如果用户对资源属性没有读取权限,则控制台中该属性将显示为空。例如,大多数角色无法读取数据源的用户名和密码字段。
如果用户具有读取权限,但没有对资源属性具有写入权限,则该属性将在资源的编辑表单中禁用。如果用户没有资源写入权限,则不会出现资源的编辑按钮。
如果用户没有访问资源或属性的权限,这意味着该角色无法寻址,则不会出现在该用户的控制台中。其中的一个示例是访问控制系统本身,它默认仅对几个角色可见。
管理控制台还为以下常见 RBAC 任务提供了一个接口:
- 查看和配置为每个用户分配或排除的角色。
- 查看并配置为每个组分配或排除哪些角色。
- 查看每个角色的组和用户成员资格。
- 每个角色配置默认成员资格。
- 创建有作用域角色。
目前无法在管理控制台中配置限制。
RBAC 对管理 CLI 或管理 API 的影响
启用 RBAC 时,管理 CLI 或管理 API 的用户的行为略有不同。
无法读取的资源和属性会根据结果进行过滤。如果过滤过的项目可以被角色寻址,则在结果的 response 。如果资源或属性不能被角色寻址,则它不会被列出。
-headers 部分中将其名称列为 filtered- attributes
尝试访问不可寻址的资源将导致 Resource Not Found 错误。
如果用户尝试写入或读取他们可以寻址的资源,但缺少适当的写入或读取权限,则返回 Permission Denied 错误。
管理 CLI 可以执行与管理控制台相同的所有 RBAC 任务,以及一些额外的任务:
- 启用和禁用 RBAC
- 更改权限组合策略
- 配置应用程序资源和资源敏感度限制
在 JMX 管理 Bean 上 RBAC 的影响
基于角色的访问控制通过三种方式应用到 JMX:
-
JBoss EAP 的管理 API 公开为 JMX 托管 Bean。这些受管 Bean 称为
核心组件,它们的访问会被控制和过滤,与底层管理 API 本身完全相同。 -
jmx子系统配置有敏感写入权限。这意味着只有Administrator和SuperUser 角色的用户才可以对该子系统进行更改。Auditor角色的用户也可以读取此子系统配置。 -
默认情况下,所有管理用户可以访问由已部署的应用程序和服务或非核心 MBeans 注册的 Bean,但只有
Maintainer、Operator、Administrator和SuperUser 角色的用户可以向其写入。
RBAC 身份验证
RBAC 与 JBoss EAP 附带的标准身份验证提供商一同工作:
- 用户名/密码
-
用户通过用户名和密码组合进行验证,该组合通过
ManagementRealm的设置进行验证,该设置可以使用本地属性文件或 LDAP。 - 客户端证书
- truststore 为客户端证书提供身份验证信息。
- 本地 jboss 用户
-
如果服务器在同一计算机上运行,则
进行身份验证。默认情况下,jboss-cli脚本会自动以本地 jboss 用户本地 jboss 用户是SuperUser组的成员。
无论使用了何种提供程序,JBoss EAP 均负责将角色分配给用户。通过 ManagementRealm 或 LDAP 服务器进行身份验证时,这些系统可以提供用户组信息。JBoss EAP 还可以使用此信息将角色分配给用户。