2.5. 基于角色的访问控制
基于角色的访问控制的基础知识包括在 JBoss EAP 安全架构 指南中的管理接口小节 中。
2.5.1. 启用基于角色的访问控制 复制链接链接已复制到粘贴板!
默认情况下,禁用基于角色的访问控制(RBAC)系统。它通过从 简单的 to rbac 更改 provider 属性来 启用。提供程序 是管理元素的 access-control 元素的属性 。这可以通过管理 CLI 或编辑服务器配置 XML 文件来完成(如果服务器脱机)。在运行的服务器上禁用或启用 RBAC 时,必须先重新加载服务器配置才能生效。
在更改提供程序 to rbac 之前,请确保您的配置有一个将映射到其中一个 RBAC 角色的用户,最好是具有 管理员 或 SuperUser 角色中的至少一个角色。否则,您的安装将无法管理,除非将它关闭并编辑 XML 配置。如果您已经使用 JBoss EAP 附带的一个标准 XML 配置,$local 用户将映射到 SuperUser 角色,并且将启用 本地 身份验证方案。这将允许用户在与 JBoss EAP 流程相同的系统上运行 CLI,以获得完整的管理权限。远程 CLI 用户和基于 Web 的管理控制台用户将没有权限。
建议至少在切换供应商 to rbac 前映射 $local 外的至少一个用户。您可以执行与 the rbac 供应商关联的所有配置,即使提供程序设置为 simple。
启用后,只能由 管理员 或 超级用户角色 的用户禁用它。默认情况下,如果管理 CLI 在与服务器相同的计算机上运行,则管理 CLI 作为 SuperUser 角色运行。
CLI 启用 RBAC
若要通过管理 CLI 启用 RBAC,请使用访问授权资源的 write-attribute 操作来设置 provider 属性 to rbac。
/core-service=management/access=authorization:write-attribute(name=provider, value=rbac)
{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}
reload
在受管域中,访问控制配置是域范围配置的一部分,因此资源地址与上方相同,但管理 CLI 连接到主域控制器。
/core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
},
"result" => undefined,
"server-groups" => {"main-server-group" => {"host" => {"master" => {
"server-one" => {"response" => {
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}},
"server-two" => {"response" => {
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}}
}}}}
}
reload --host=master
与单机服务器一样,需要重新加载或重新启动更改才能生效。在受管域中,从主域控制器开始,域中的所有主机和服务器都需要重新加载或重新启动。
管理 CLI 命令以禁用 RBAC
若要通过管理 CLI 禁用 RBAC,请使用访问授权资源的 write-attribute 操作,将 provider 属性设置为 simple。
/core-service=management/access=authorization:write-attribute(name=provider, value=simple)
XML 配置以启用或禁用 RBAC
如果服务器离线,则可以编辑 XML 配置来启用或禁用 RBAC。为此,可编辑管理元素的 access-control 元素的 provider 属性。将 to rbac 值设置为 enable,并且 简写 为 disable。
示例:启用或禁用 RBAC 的 XML 配置
<management>
<access-control provider="rbac">
<role-mapping>
<role name="SuperUser">
<include>
<user name="$local"/>
</include>
</role>
</role-mapping>
</access-control>
</management>