2.5. ロールベースのアクセス制御

ロールベースのアクセス制御の基本は、JBoss EAP『 Security Architecture 』ガイドの「 ロールベースのアクセス制御 」と 「管理インターフェースへの RBAC の追加 」で説明されています。

2.5.1. ロールベースのアクセス制御の有効化

デフォルトでは、Role-Based Access Control (RBAC) システムが無効になっています。有効にするには、provider 属性を simple から rbac に変更します。provider は、management 要素の access-control 要素の属性です。これは、管理 CLI を使用するか、サーバーがオフラインの場合にはサーバー設定 XML ファイルを編集して実行できます。稼働中のサーバーで RBAC を無効化または有効化した場合、サーバー設定をリロードして変更を反映する必要があります。

警告

プロバイダーを rbac に変更する前に、RBAC ロールのいずれかにマッピングされるユーザーを含めるようにしてください (Administrator または SuperUser ロールのいずれかが望ましい)。シャットダウンして XML 設定を編集する以外に、インストールを管理する方法はありません。JBoss EAP に同梱される標準 XML 設定のいずれかで開始した場合、$local ユーザーは SuperUser ロールにマッピングされ、local 認証スキームが有効になります。これにより、JBoss EAP プロセスと同じシステムで CLI を実行するユーザーに、完全な管理パーミッションを付与できます。リモート CLI ユーザーと Web ベースの管理コンソールユーザーには、パーミッションが与えられません。

プロバイダーを rbac に切り替える前に、$local 以外のユーザーをマッピングすることが推奨されます。プロバイダーが simple に設定されている場合でも、rbac プロバイダーに関連付けられたすべての設定を実行できます。

一度有効にすると、無効化できるのは Administrator または SuperUser ロールのユーザーのみとなります。デフォルトでは、サーバーと同じマシンで実行される場合、管理 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
注記

スタンドアロンサーバーと同様に、変更を有効にするには、リロードまたは再起動が必要です。管理対象ドメインでは、ドメインのすべてのホストおよびサーバーは、マスタードメインコントローラーから、リロードまたは再起動する必要があります。

RBAC を無効にする管理 CLI コマンド

管理 CLI で RBAC を無効化にするには、アクセス承認リソースの write-attribute 操作で provider 属性を simple に設定します。

/core-service=management/access=authorization:write-attribute(name=provider, value=simple)
RBAC を有効または無効にする XML 設定

サーバーがオフラインの場合、XML 設定を編集して RBAC を有効または無効にすることができます。これを行うには、管理要素の access-control 要素の provider 属性を編集します。この値を rbac に設定して有効にし、simple で無効にします。

例: RBAC を有効または無効にする XML 設定

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