5.4.2. ロールに基づく認証の設定


role-access 要素は、特定の MBean とその属性およびメソッドにロールをマップする方法を定義します。

手順

  1. BROKER_INSTANCE_DIR/etc/management.xml 設定ファイルを開きます。
  2. role-access 要素を検索し、設定を編集します。

    <role-access>
        <match domain="org.apache.activemq.artemis">
           <access method="list*" roles="view,update,amq"/>
           <access method="get*" roles="view,update,amq"/>
           <access method="is*" roles="view,update,amq"/>
           <access method="set*" roles="update,amq"/>
           <access method="*" roles="amq"/>
        </match>
    </role-access>
    • この場合、ドメイン名が org.apache.activemq.apache の MBean 属性を照合検索します。
    • 一致する MBean 属性に対する viewupdate、または amq ロールへのアクセスは、ロールを追加する list*get*set*is*、および * アクセスメソッドによって制御されます。method = "*"(ワイルドカード) 構文は、設定にリストされていない他の前メソッドをすべて指定する方法として使用されます。設定の各アクセスメソッドが MBean メソッド呼び出しに変換されます。
    • 呼び出された MBean メソッドは、設定に記載されているメソッドと照合されます。たとえば、ドメインが org.apache.activemq.artemis の MBean で listMessages というメソッドを呼び出すと、ブローカーは list メソッドの設定で定義されたロールと、アクセスの照合を行います。
    • MBean の完全なメソッド名を使用してアクセスを設定することもできます。以下に例を示します。

      <access method="listMessages" roles="view,update,amq"/>
  3. 次のコマンドを入力して、ブローカーを起動または再起動します。

    • Linux の場合: BROKER_INSTANCE_DIR/bin/artemis run
    • Windows の場合: BROKER_INSTANCE_DIR\bin\artemis-service.exe start

MBean プロパティーに一致する key 属性を追加して、ドメイン内の特定の MBean を照合することもできます。以下にいくつかの例を示します。

ロールのドメインのすべてのキューへのマッピング

この例は、key 属性を使用して、指定したドメインのすべてのキューにロールをマッピングする方法を示しています。

<match domain="org.apache.activemq.artemis" key="subcomponent=queues">
   <access method="list*" roles="view,update,amq"/>
   <access method="get*" roles="view,update,amq"/>
   <access method="is*" roles="view,update,amq"/>
   <access method="set*" roles="update,amq"/>
   <access method="*" roles="amq"/>
</match>

ドメインの特定のキューへのロールのマッピング

この例は、key 属性を使用して、特定の名前付きキューにロールをマッピングする方法を示しています。この例では、名前付きキューは exampleQueue です。

<match domain="org.apache.activemq.artemis" key="queue=exampleQueue">
   <access method="list*" roles="view,update,amq"/>
   <access method="get*" roles="view,update,amq"/>
   <access method="is*" roles="view,update,amq"/>
   <access method="set*" roles="update,amq"/>
   <access method="*" roles="amq"/>
</match>

指定の接頭辞を含むすべてのキュー名へのロールのマッピング

以下の例は、指定した接頭辞が含まれるすべてのキューにロールをマップする方法を示しています。この例では、ワイルドカード演算子 (*) を使用して、接頭辞 example で始まるすべてのキュー名を照合します。

<match domain="org.apache.activemq.artemis" key="queue=example*">
   <access method="list*" roles="view,update,amq"/>
   <access method="get*" roles="view,update,amq"/>
   <access method="is*" roles="view,update,amq"/>
   <access method="set*" roles="update,amq"/>
   <access method="*" roles="amq"/>
</match>

さまざまなロールのさまざまなキューセットへのマッピング

同じ属性を組み合わせた各種セット (例: さまざまなキューのセット) に対して、異なるロールをマッピングする場合などです。これを実現するために、設定ファイルに複数の match 要素を含めることができます。ただし、この場合、同じドメインに複数の一致が存在する可能性があります。

たとえば、以下のように設定された 2 つ <match> 要素について考えてみましょう。

<match domain="org.apache.activemq.artemis" key="queue=example*">

および

<match domain="org.apache.activemq.artemis" key="queue=example.sub*">

この設定を基して、org.apache.activemq.artemis ドメインの example.sub.queue という名前のキューは、両方のワイルドカードキーの式にマッチします。したがって、ブローカーは、最初の match 要素で指定されたロール、または 2 番目の match 要素で指定されたロールなど、キューにマップするロールのセットを決定するための優先順位付けスキームを必要とします。

同じドメインに複数の一致がある場合、ブローカーはロールのマッピング時に以下の優先順位スキームを使用します。

  • 完全一致がワイルドカードの一致よりも優先される
  • ワイルドカードのより長い一致が、より短いワイルドカード一致よりも優先されます。

この例では、長いワイルドカード式が example.sub.queue のキュー名と一致するため、ブローカーは 2 番目の <match> 要素に設定された role-mapping を適用します。

注記

default-access 要素は、role-access または whitelist 設定で処理されないすべてのメソッド呼び出しをすべて受け入れる要素です。default-access 要素および role-access 要素には、match 要素と同じセマンティクスがあります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.