7.2. 宛先のセキュリティー保護
メッセージングサーバーへのリモート接続のセキュリティーを保護する他に、特定の宛先のセキュリティーを設定することもできます。この設定をする場合は、security-setting
設定要素を使用してセキュリティー制約を追加します。JBoss EAP メッセージングには、以下の管理 CLI コマンドの出力のような security-setting
がデフォルトで設定されています。
security-setting
オプションでは、name
フィールドにワイルドカードを使用して、セキュリティー制約を適用する宛先を指定できます。#
1 つでアドレスが任意であることを表します。セキュリティー制約でのワイルドカードの使用に関する詳細は、アドレスのロールベースのセキュリティー を参照してください。
7.2.1. アドレスのロールベースのセキュリティー リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP メッセージングでは、アドレスに基づいてキューにセキュリティーを適用する、柔軟なロールベースのセキュリティーモデルを採用しています。
コア JBoss EAP メッセージングサーバーは、主にアドレスにバインドされたキューのセットで設定されます。メッセージをアドレスに送信すると、サーバーはまずそのアドレスにバインドされたキューのセットをルックアップし、そのメッセージをバインドされたキューに転送します。
JBoss EAP メッセージングには、アドレスに基づいてキューに適用できる一連のパーミッションがあります。アドレスの文字列の完全一致を使用することができます。または、ワイルドカード文字 #
と *
を使用したワイルドカード一致を使用することも可能です。ワイルドカード構文の使用方法の詳細は、アドレス設定 を参照してください。
security-setting
ごとに複数のロールを作成できます。またロールに適用できるパーミッション設定は 7 つあります。利用可能なパーミッションの全リストは次のとおりです。
-
create-durable-queue
は、一致するアドレスの永続キューの作成をロールに許可します。 -
delete-durable-queue
は、一致するアドレスの永続キューの削除をロールに許可します。 -
create-non-durable-queue
は、一致するアドレスの非永続キューの作成をロールに許可します。 -
delete-non-durable-queue
は、一致するアドレスの非永続キューの削除をロールに許可します。 -
Send
は、一致するアドレスへのメッセージの送信をロールに許可します。 -
consume
は、一致するアドレスにバインドされたキューからのメッセージの消費をロールに許可します。 -
manage
は、管理アドレスに管理メッセージを送信して管理操作を起動することをロールに許可します。
ロールベースのセキュリティーの設定
security-setting
にロールベースのセキュリティーを使用するには、最初に security-setting を作成する必要があります。たとえば、次のように news.europe.#
の security-setting
を作成します。これは news.europe.fr
や news.europe.tech.uk
などの news.europe.
から始まる宛先に適用されます。
/subsystem=messaging-activemq/server=default/security-setting=news.europe.#:add() {"outcome" => "success"}
/subsystem=messaging-activemq/server=default/security-setting=news.europe.#:add()
{"outcome" => "success"}
次に、作成した security-setting
にロールを追加し、そのロールのパーミッションを宣言します。以下の例では、dev
ロールが作成され、キューからの消費とキューへの送信のパーミッションが付与されます。また非永続キューの作成と削除も同様です。デフォルトは false
であるため、オンにするパーミッションのみを JBoss EAP に指示する必要があります。
/subsystem=messaging-activemq/server=default/security-setting=news.europe.#/role=dev:add(consume=true,delete-non-durable-queue=true,create-non-durable-queue=true,send=true) {"outcome" => "success"}
/subsystem=messaging-activemq/server=default/security-setting=news.europe.#/role=dev:add(consume=true,delete-non-durable-queue=true,create-non-durable-queue=true,send=true)
{"outcome" => "success"}
パーミッションの使用方法を詳しく説明すると、以下の例では admin
ロールを作成し、manage
パーミッションをオンにして管理メッセージを送信できるようにします。永続的なキューの作成と削除を行うためのパーミッションもオンにします。
/subsystem=messaging-activemq/server=default/security-setting=news.europe.#/role=admin:add(manage=true,create-durable-queue=true,delete-durable-queue=true) {"outcome" => "success"}
/subsystem=messaging-activemq/server=default/security-setting=news.europe.#/role=admin:add(manage=true,create-durable-queue=true,delete-durable-queue=true)
{"outcome" => "success"}
security-setting
の設定を確認するには、管理 CLI を使用します。recursive=true
オプションを使用して、パーミッションの全体表示を指定することを忘れないでください。
上記の例では、文字列 news.europe.
から始まるアドレスのパーミッションはすべて、管理 CLI で表示されます。要約すると、admin
ロールを持つユーザーのみが永続キューの作成または削除を行うことができます。また、dev
ロールを持つユーザーのみが非永続キューの作成または削除を行うことができます。さらに、dev
ロールを持つユーザーは、メッセージを送信または消費できますが、admin
ユーザーはできません。ただし、manage
パーミッションが true
に設定されているため、管理メッセージは送信できます。
アドレスのセットに複数の一致が当てはまる場合は、より限定的な一致が優先されます。たとえば、news.europe.tech.uk.#
アドレスは news.europe.tech.#
よりも限定的です。パーミッションは継承されないため、指定しないだけで、より限定的な security-setting
ブロックのパーミッションを効果的に拒否することができます。それ以外の方法では、アドレスのサブグループのパーミッションを拒否することはできません。
ユーザーと、ユーザーが持つロールのマッピングは、セキュリティーマネージャーが管理します。JBoss EAP には、ディスク上のファイルからユーザーの認証情報を読み取るユーザーマネージャーが含まれています。ユーザーマネージャーは JAAS または JBoss EAP セキュリティーにプラグインすることもできます。
セキュリティーマネージャーの設定の詳細は、JBoss EAP セキュリティーアーキテクチャー ガイドを参照してください。
7.2.1.1. レガシーセキュリティーサブシステムを使用した非認証クライアントのゲストロールの許可 リンクのコピーリンクがクリップボードにコピーされました!
認証されていないクライアントを JBoss EAP に自動許可させる必要がある場合、guest
ロールでは以下の 2 つの変更を行います。
新しい
module-option
をother
セキュリティードメインに追加します。新しいオプションのunauthenticatedIdentity
は、認証されていないクライアントにguest
アクセスを許可するよう JBoss EAP に指示します。これは管理 CLI を使用して実施することを推奨します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを発行した後にサーバーのリロードが必要なことに注意してください。以下の管理 CLI コマンドを使用すると新しいオプションを確認できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow またサーバー設定ファイルは、コマンドの実行後に以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow #
文字を削除し、application-roles.properties
ファイルの以下の行をコメント解除します。ファイルはEAP_HOME/standalone/configuration/
またはEAP_HOME/domain/configuration/
のいずれかにあります。これは、スタンドアロンサーバー、ドメインコントローラーのいずれを使用しているかに応じて異なります。#guest=guest
#guest=guest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、リモートクライアントは認証せずにサーバーにアクセスできるようになりました。guest
ロールに関連するパーミッションが付与されます。