6.2.6. アドレスグループとサブグループの複数のセキュリティーの設定
以下は、broker.xml
ファイルのセキュリティーブロックの例です。この例に基づくさまざまな設定オプションについて、このセクションで説明します。
<security-setting match="globalqueues.europe.#"> 1 <permission type="createDurableQueue" roles="admin"/> 2 <permission type="deleteDurableQueue" roles="admin"/> 3 <permission type="createNonDurableQueue" roles="admin, guest, europe-users"/> 4 <permission type="deleteNonDurableQueue" roles="admin, guest, europe-users"/> 5 <permission type="send" roles="admin, europe-users"/> 6 <permission type="consume" roles="admin, europe-users"/> 7 </security-setting>
- 1
- 「#」 文字は単語の任意のシーケンスを意味します。単語は、「.」 文字で区切ります。ワイルドカード構文の完全な説明については、AMQ Broker ワイルドカード構文 を参照してください。上記のセキュリティーブロックは、文字列 globalqueues.europe で始まるすべてのアドレスに適用されます。
- 2 3
admin
ロールが割り当てられたユーザーのみが、文字列 globalqueues.europe で始まるアドレスにバインドされた永続キューを作成したり、削除したりできます。- 4 5
admin
ロール、guest
、またはeurope-users
ロールが割り当てられたユーザーは、文字列 globalqueues.europe で始まるアドレスにバインドされた一時キューを作成したり、削除したりできます。- 6 7
admin
ロールまたはeurope-users
ロールを持つすべてのユーザーは、これらのアドレスにメッセージを送信したり、文字列 globalqueues.europe で始まるアドレスにバインドされたキューからメッセージを消費したりできます。
ユーザー間のマッピングと、ユーザーに割り当てられたロールのマッピングは、セキュリティーマネージャー と呼ばれるコンポーネントによって処理されます。セキュリティーマネージャーは、ブローカーに保存されているプロパティーファイルからユーザーの認証情報を読み取ります。デフォルトでは、AMQ Broker は org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager
セキュリティーマネージャーを使用します。このデフォルトのセキュリティーマネージャーは、JAAS および Red Hat JBoss Enterprise Application Platform(JBoss EAP) のセキュリティーとの統合を提供します。
要件に応じて、各 XML ファイルに複数の security-setting
要素を含めることも、何も含めないこともできます。broker.xml
ファイルに、一連のアドレスに適用できる複数の security-setting 要素が含まれている場合には、最も一致率の高いものが優先されます。
この例について見てみましょう。ここに別の security-setting
ブロックがあります:
<security-setting match="globalqueues.europe.orders.#"> <permission type="send" roles="europe-users"/> <permission type="consume" roles="europe-users"/> </security-setting>
この security-setting
ブロックでは、globalqueues.europe.orders.#
の一致は、前の一致 'globalqueues.europe.\#' よりも一致する部分が多くなっています。したがって、globalqueues.europe.orders.\# に一致するアドレスは、後者の security-setting ブロックから のみ セキュリティー設定を取得します。
設定は以前のブロックから継承されないことに注意してください。すべての設定は、より一致部分の多いブロックから取得されるため、globalqueues.europe.orders.plastics
のアドレスの場合に、唯一存在するパーミッションは europe-users
ロールの send
と consume
です。createDurableQueue
、deleteDurableQueue
、createNonDurableQueue
、deleteNonDurableQueue
のパーミッションは、他の security-setting ブロックからは継承されません。
パーミッションは継承されないため、指定しないだけで、より限定的な security-setting ブロックのパーミッションを効果的に拒否することができます。それ以外の方法では、アドレスのサブグループのパーミッションを拒否することはできません。