5.6. セキュリティーマネージャーの指定


ブローカーは、セキュリティーマネージャー と呼ばれるコンポーネントを使用して認証および承認を処理します。

AMQ Broker には 2 つのセキュリティーマネージャーが含まれています。

  • ActiveMQJAASSecurityManager セキュリティーマネージャー。このセキュリティーマネージャーは、JAAS および Red Hat JBoss Enterprise Application Platform(JBoss EAP) のセキュリティーとの統合を提供します。これは、AMQ Broker によって使用される デフォルト のセキュリティーマネージャーです。
  • ActiveMQBasicSecurityManager セキュリティーマネージャー。この基本セキュリティーマネージャーは JAAS をサポートしません。代わりに、ユーザー名とパスワードの認証情報による認証および承認をサポートします。このセキュリティーマネージャーは、管理 API を使用したユーザーの追加、削除、および更新をサポートします。ユーザーとロールデータはブローカーバインディングジャーナルに保存されます。つまり、ライブブローカーに加えられた変更はバックアップブローカーでも利用できることになります。

含まれるセキュリティーマネージャーの代わりに、システム管理者はブローカーセキュリティーの実装をより詳細に制御することを推奨します。このような場合には、ブローカー設定で カスタム セキュリティーマネージャーを指定することもできます。カスタムセキュリティーマネージャーは、org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager5 インターフェイスを実装するユーザー定義のクラスです。

以下のサブセクションの例では、使用するブローカーを設定する方法を示しています。

  • デフォルトの JAAS セキュリティーマネージャーではなく基本セキュリティーマネージャー
  • カスタムセキュリティーマネージャー

5.6.1. 基本的なセキュリティーマネージャーの使用

AMQ Broker には、デフォルトの ActiveMQJAASSecurityManager セキュリティーマネージャーの他に、ActiveMQBasicSecurityManager セキュリティーマネージャーも含まれています。

基本的なセキュリティーマネージャーを使用する場合には、すべてのユーザーおよびロールデータはバインディングジャーナル (または JDBC 永続性を使用している場合は バインディング テーブル ) に保存されます。したがって、ライブバックアップブローカーグループを設定している場合、ライブブローカーで peform というユーザー管理は、フェイルオーバー時にバックアップブローカーに自動的に反映されます。これにより、LDAP サーバーを個別に管理する必要がなくなりました。これは、この動作を達成する代替方法です。

基本的なセキュリティーマネージャーを設定して使用する前に、以下の点に留意してください。

  • 基本的なセキュリティーマネージャーは、デフォルトの JAAS セキュリティーマネージャーのようにプラグ可能でありません。
  • 基本的なセキュリティーマネージャーは JAAS をサポートしません。代わりに、ユーザー名とパスワードの認証情報による認証および承認のみをサポートします。
  • AMQ 管理コンソールには JAAS が必要です。そのため、基本的なセキュリティーマネージャーを使用し、コンソールを使用する必要がある場合は、ユーザーおよびパスワード認証用の login.config 設定ファイルも設定する必要があります。ユーザーおよびパスワード認証の設定に関する詳細は、「基本的なユーザーとパスワード認証の設定」 を参照してください。
  • AMQ Broker では、ユーザー管理 はブローカー管理 API によって提供されます。この管理には、ユーザーとロールを追加、リスト表示、更新、および削除する機能が含まれます。これらの機能は、JMX、管理メッセージ、HTTP(Jolokia または AMQ 管理コンソール) および AMQ Broker コマンドラインインターフェイスを使用して実行できます。ブローカーはこのデータを直接格納するため、ユーザーを管理するためにブローカーを実行する必要があります。バインディングデータを手動で変更する方法はありません。
  • HTTP(Jolokia または AMQ 管理コンソールを使用するなど) による管理アクセスは、コンソール JAAS ログインモジュールによって処理されます。JConsole またはその他のリモート JMX ツールによる MBean アクセスは、基本的なセキュリティーマネージャーによって処理されます。管理メッセージは、基本的なセキュリティーマネージャーによって処理されます。

5.6.1.1. 基本的なセキュリティーマネージャーの設定

以下の手順は、基本的なセキュリティーマネージャーを使用するようにブローカーを設定する方法を説明します。

手順

  1. <broker-instance-dir>/etc/boostrap.xml 設定ファイルを編集します。
  2. security-manager 要素の class-name 属性に、ActiveMQBasicSecurityManager クラス名をすべて指定します。

    <broker xmlns="http://activemq.org/schema">
       ...
       <security-manager class-name="org.apache.activemq.artemis.spi.core.security.ActiveMQBasicSecurityManager">
       </security-manager>
       ...
    </broker>
  3. ユーザーおよびロールデータを保持するバインディングデータを手動で変更することはできず、ブローカーを実行してユーザーを管理する必要があるため、初回起動時にブローカーのセキュリティーを保護することを推奨します。これを行うには、認証情報を使用して他の ユーザーを追加できるブートストラップ ユーザーを定義します。

    security-manager 要素に bootstrapUserbootstrapPassword、および bootstrapRole プロパティーを追加し、値を指定します。以下に例を示します。

    <broker xmlns="http://activemq.org/schema">
       ...
       <security-manager class-name="org.apache.activemq.artemis.spi.core.security.ActiveMQBasicSecurityManager">
            <property key="bootstrapUser" value="myUser"/>
            <property key="bootstrapPassword" value="myPass"/>
            <property key="bootstrapRole" value="myRole"/>
       </security-manager>
       ...
    </broker>
    bootstrapUser
    ブートストラップユーザーの名前。
    bootstrapPassword
    boostrap ユーザーの Passsword。暗号化したパスワードを指定することもできます。
    bootstrapRole

    boostrap ユーザーのロール。

    注記

    設定でブートストラップユーザーの前述のプロパティーを定義する場合、ブローカーの実行中に加える変更に関係なく、これらの認証情報はブローカーを起動するたびに設定されます。

  4. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  5. broker.xml 設定ファイルで、activemq.management# アドレス一致に対してデフォルトで定義される address-setting 要素を見つけます。これらのデフォルトアドレス設定を以下に示します。

    <address-setting match="activemq.management#">
        <dead-letter-address>DLQ</dead-letter-address>
        <expiry-address>ExpiryQueue</expiry-address>
        <redelivery-delay>0</redelivery-delay>
        <!--...-->
        <max-size-bytes>-1</max-size-bytes>
        <message-counter-history-day-limit>10</message-counter-history-day-limit>
        <address-full-policy>PAGE</address-full-policy>
        <auto-create-queues>true</auto-create-queues>
        <auto-create-addresses>true</auto-create-addresses>
        <auto-create-jms-queues>true</auto-create-jms-queues>
        <auto-create-jms-topics>true</auto-create-jms-topics>
    </address-setting>
  6. activemq.management# アドレス一致向けのアドレス設定内に、この手順で以前に指定したブートストラップロール名に対して、以下の必要なパーミッションを追加します。

    • createNonDurableQueue
    • createAddress
    • consume
    • manage
    • send

    以下に例を示します。

    <address-setting match="activemq.management#">
        ...
        <permission type="createNonDurableQueue" roles="myRole"/>
        <permission type="createAddress" roles="myRole"/>
        <permission type="consume" roles="myRole"/>
        <permission type="manage" roles="myRole"/>
        <permission type="send" roles="myRole"/>
    </address-setting>

関連情報

5.6.2. カスタムセキュリティーマネージャーの指定

以下の手順では、ブローカー設定でカスタムセキュリティーマネージャーを指定する方法を説明します。

手順

  1. <broker_instance_dir>/etc/boostrap.xml 設定ファイルを編集します。
  2. security-manager 要素の class-name 属性に、org.apache.activemq.artemis.spi.core.security.ActiveMQSecurityManager5 インターフェイスのユーザー定義の実装であるクラスを指定します。以下に例を示します。

    <broker xmlns="http://activemq.org/schema">
       ...
       <security-manager class-name="com.myclass.MySecurityManager">
          <property key="myKey1" value="myValue1"/>
          <property key="myKey2" value="myValue2"/>
       </security-manager>
       ...
    </broker>

関連情報

  • ActiveMQSecurityManager5 インターフェイスの詳細は、ActiveMQ Artemis Core API ドキュメントの Interface ActiveMQSecurityManager5 を参照してください。

5.6.3. カスタムセキュリティーマネージャーのサンプルプログラムの実行

AMQ Broker には、カスタムセキュリティーマネージャーの実装方法を実証するサンプルプログラムが含まれています。この例では、カスタムセキュリティーマネージャーは認証および承認の詳細をログに記録してから、その詳細を ActiveMQJAASSecurityManager (デフォルトのセキュリティーマネージャー) のインスタンスに渡します。

以下の手順は、カスタムセキュリティーマネージャーのサンプルプログラムを実行する方法を示しています。

前提条件

  • AMQ Broker サンプルプログラムを実行するようにマシンを設定する必要があります。詳細については、AMQ Broker のサンプルの実行 を参照してください。

手順

  1. カスタムセキュリティーマネージャーの例が含まれるディレクトリーに移動します。

    $ cd <install_dir>/examples/features/standard/security-manager
  2. サンプルを実行します。

    $ mvn verify
注記

サンプルプログラムの実行時にブローカーインスタンスを手動で作成して起動する場合は、前の手順のコマンドを mvn -PnoServer verify に置き換えてください。

関連情報

  • ActiveMQJAASSecurityManager クラスの詳細は、ActiveMQ Artemis Core API ドキュメントの Class ActiveMQJAASSecurityManager を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.