Menu Close
Settings Close

Language and Page Formatting Options

3.5. 基于角色的访问控制

基于角色的访问控制的基础知识涵盖了 基于角色的访问控制,以及将 RBAC 添加到 JBoss EAP 安全架构指南中的 管理界面部分。

3.5.1. 启用基于角色的访问控制

默认情况下禁用基于角色的访问控制(RBAC)系统。它通过将 provider 属性从 simple 改为 rbac 来启用。providermanagement 元素的 access-control 元素的属性。这可通过管理 CLI 或编辑服务器配置 XML 文件(如果服务器离线)完成。当在运行的服务器上禁用或启用 RBAC 时,必须重新加载服务器配置才能生效。

警告

在将供应商更改为 rbac 之前,请确保您的配置具有映射到其中一个 RBAC 角色的用户,最好拥有至少一个 AdministratorSuperUser 角色。除关闭并编辑 XML 配置外,否则您的安装将无法管理。如果您使用 JBoss EAP 附带的一个标准 XML 配置启动,$ local 用户将映射到 SuperUser 角色,并且将启用本地身份验证方案。这将允许用户在与 JBoss EAP 进程相同的系统上运行 CLI,具有完整的管理权限。远程 CLI 用户和基于 Web 的管理控制台用户将没有权限。

建议在将提供程序切换到 rbac 之前,至少映射一个用户,而不是 $local。您可以执行与 rbac 提供程序关联的所有配置,即使提供程序设置为 simple

启用后,只能被具有 AdministratorSuperUser 角色的用户禁用。默认情况下,如果管理 CLI 与服务器在同一计算机上运行,则作为 SuperUser 角色运行。

启用 RBAC 的 CLI

要使用管理 CLI 启用 RBAC,请使用访问授权资源的 write-attribute 操作将 provider 属性设置为 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)
用于启用或禁用 RBAC 的 XML 配置

如果服务器离线,则编辑 XML 配置以启用或禁用 RBAC。为此,请编辑 management 元素的 access-control 元素的 provider 属性。将值设为 rbac 以启用,而 simple 设置为 disable。

示例:启用或禁用 RBAC 的 XML 配置

<management>
  <access-control provider="rbac">
    <role-mapping>
      <role name="SuperUser">
        <include>
          <user name="$local"/>
        </include>
      </role>
    </role-mapping>
  </access-control>
</management>