Menu Close

4.4. AMQ 管理コンソールの設定

ユーザーアクセスおよびブローカーのリソースへのアクセスを要求します。

4.4.1. Red Hat Single Sign-On を使用した AMQ 管理コンソールのセキュア化

前提条件

  • Red Hat Single Sign-On 7.4

手順

  1. Red Hat Single Sign-On を設定します。

    1. AMQ 管理コンソールのセキュア化に使用する Red Hat Single Sign-On のレルムに移動します。Red Hat Single Sign-On の各レルムには、Broker という名前のクライアントが含まれます。このクライアントは AMQ に関連しません。
    2. Red Hat Single Sign-Onで、artemis-consoleのような新しいクライアントを作成します。
    3. クライアント設定ページに移動し、以下を設定します。

      • AMQ 管理コンソール URL への 有効なリダイレクト URI の後に * が続きます。例を以下に示します。

        https://broker.example.com:8161/console/*
      • Web Origins は Valid Redirect URIs と同じ値に発行されます。Red Hat Single Sign-On では、+ を入力できます。これは、許可される CORS オリジンに Valid Redirect URIs の値が含まれていることを示します。
    4. クライアントのロールを作成します(例:guest)。
    5. AMQ Management Console へのアクセスが必要なすべてのユーザーには、Red Hat Single Sign-On グループなどを使用して上記のロールが割り当てられていることを確認してください。
  2. AMQ Broker インスタンスを設定します。

    1. <broker-instance-dir>/instances/broker0/etc/login.config ファイルに以下を追加して、AMQ Management Console が Red Hat Single Sign-On を使用するように設定します。

      console {
          org.keycloak.adapters.jaas.BearerTokenLoginModule required
              keycloak-config-file="${artemis.instance}/etc/keycloak-bearer-token.json"
              role-principal-class=org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal
          ;
      };

      この設定を追加すると、Red Hat Single Sign-On からベアラートークンの JAAS プリンシパルと要件が設定されます。次のステップで説明するように、Red Hat Single Sign-On への接続はkeycloak-bearer-token.jsonファイルで定義されます。

    2. 以下の内容で <broker-instance-dir>/etc/keycloak-bearer-token.json ファイルを作成し、ベアラートークンの交換に使用する Red Hat Single Sign-On への接続を指定します。

      {
        "realm": "<realm-name>",
        "resource": "<client-name>",
        "auth-server-url": "<RHSSO-URL>/auth",
        "principal-attribute": "preferred_username",
        "use-resource-role-mappings": true,
        "ssl-required": "external",
        "confidential-port": 0
      }
      <realm-name>
      Red Hat Single Sign-On のレルム名
      <client-name>
      Red Hat Single Sign-On のクライアントの名前
      <RHSSO-URL>
      Red Hat Single Sign-On の URL
    3. 以下の内容で <broker-instance-dir>/etc/keycloak-js-token.json ファイルを作成し、Red Hat Single Sign-On 認証エンドポイントを指定します。

      {
        "realm": "<realm-name>",
        "clientId": "<client-name>",
        "url": "<RHSSO-URL>/auth"
      }
    4. <broker-instance-dir>/etc/bootstrap.xmlファイルを編集して、セキュリティ設定を行います。

      たとえば、amq ロールを持つユーザーがメッセージを消費できるようにし、guest ロールを持つユーザーがメッセージを送信できるようにするには、以下を追加します。

               <security-setting match="Info">
                  <permission roles="amq" type="createDurableQueue"/>
                  <permission roles="amq" type="deleteDurableQueue"/>
                  <permission roles="amq" type="createNonDurableQueue"/>
                  <permission roles="amq" type="deleteNonDurableQueue"/>
                  <permission roles="guest" type="send"/>
                  <permission roles="amq" type="consume"/>
               </security-setting>
  3. AMQ Broker インスタンスを実行し、AMQ 管理コンソールの設定を検証します。