メッセージブローカは、ユーザおよびグループが実行可能な操作を制御(アクセス制御)することができます。
アクセス制御する場合は、アクセス制御プロパティファイルの規則に従って、ユーザおよびグループの操作にアクセス権が付与されます。
アクセス制御しない場合は、adminグループにadmin接続サービスへのアクセス権が付与され、すべてのグループにjms接続サービスへのアクセス権が付与されます。
アクセス制御するかどうかは、imq.accesscontrol.enabledプロパティで設定します。デフォルトでは、アクセス制御します。
imq.accesscontrol.enabledプロパティの詳細については、「8.7.5 セキュリティに関するプロパティ」を参照してください。
メッセージブローカは、以下の操作を行った時に、アクセス制御プロパティファイルをチェックしてアクセス制御します。
メッセージブローカへの接続
物理格納先へのアクセス
特定の物理格納先、またはすべての物理格納先に対するコンシューマ/プロデューサ/キューブラウザの作成
物理格納先の自動生成
アクセス制御プロパティファイルは、以下に格納されており、メッセージブローカごとに定義します。
[Java EE 7共通ディレクトリ]\domains\domain1\imq\instances\<メッセージブローカインスタンス名>\etc\accesscontrol.properties
[Java EE 7共通ディレクトリ]/domains/domain1/imq/instances/<メッセージブローカインスタンス名>/etc/accesscontrol.properties
アクセス制御プロパティファイルでは、以下のアクセス制御を行う規則を指定できます。
メッセージブローカへの接続のアクセス制御
物理格納先のアクセス制御
物理格納先の自動生成のアクセス制御
注意
アクセス制御プロパティファイルのversionプロパティは、変更しないでください。
アクセス制御プロパティファイルは、Interstage Java EE 7 DASサービス/メッセージブローカを停止してから編集してください。
以降では、以下について説明します。
アクセス制御プロパティファイルに記述する規則の基本構文
アクセス制御プロパティでアクセス制御の規則を記述するための基本構文は、要素をドット(.)で連結して記述します。
リソースタイプがconnectionの場合
リソースタイプ.リソース名.アクセス種別.対象種別=対象者
リソースタイプがqueue/topic の場合
アクセス規則の種類がcreate以外の場合
リソースタイプ.リソース名.アクセス規則の種類.アクセス種別.対象種別=対象者
アクセス規則の種類がcreateの場合
リソースタイプ.アクセス規則の種類.アクセス種別.対象種別=対象者
各要素について、以下に説明します。
要素 | 意味 | 設定値 |
---|---|---|
リソースタイプ | 規則を適用するリソースのタイプを指定します。 | 以下のいずれかを指定します。
|
リソース名 | リソースタイプで指定したリソースを特定する名前を指定します。 | リソース名/ワイルドカードを指定します。
|
アクセス規則の種類 | リソースに対するアクセス規則の種類を指定します。リソースタイプがqueue/topicの場合にだけ指定します。 | 以下のいずれかを指定します。
(注)リソースタイプがqueueの場合にだけ指定可能です。 |
アクセス種別 | 対象者に対して、アクセスを許可するか、許可しないかを指定します。 | 以下のいずれかを指定します。
|
対象種別 | アクセス権の付与対象が、ユーザかグループかを指定します。 | 以下のいずれかを指定します。
|
対象者 | アクセス権の付与対象を指定します。カンマ(,)で区切ることにより、複数のユーザ/グループを指定できます。 |
|
注意
アクセス制御プロパティファイルには、ASCIIコード以外を記述できません。ASCIIコードではない文字列を含むアクセス制御プロパティファイルを使用する場合、Unicodeエスケープ文字(\uXXXX)を使用してください。
アクセス制御プロパティファイルの定義規則
アクセス制御プロパティファイルのアクセス制御の定義規則について、以下に説明します。
アクセス制御プロパティファイルに未記載のアクセス権は、拒否されます。
同一条件のアクセス規則が複数存在する場合は、最後に記述されたアクセス規則が有効となります。
例
以下の定義の場合、「queue.q1.consume.allow.user=user3」のアクセス規則が有効となります。
: : queue.q1.consume.allow.user=user1,user2 queue.q1.consume.allow.user=user3
アクセス規則が複数存在し、かつアクセス種別(allow、deny)以外のアクセス規則の条件が同一である場合、それらのアクセス規則の定義は無効となります。
例
以下の定義の場合、定義(2)および(3)は無効となり、定義(1)だけが有効となります。
queue.*.consume.allow.user=user1 (1) queue.q1.consume.allow.user=user1 (2) queue.q1.consume.deny.user=user1 (3)
アクセス規則の優先度を以下に示します。
定義 | 優先度 |
---|---|
リソース名 |
|
対象種別/対象者 |
|
例
優先度 | リソース「connection」 | リソース名「queue」 |
---|---|---|
高 | connection.NORMAL.allow.user=user1 | queue.q1.consume.allow.user=user1 |
connection.NORMAL.allow.group=user | queue.q1.consume.allow.group=user | |
connection.NORMAL.allow.user=* | queue.q1.consume.allow.user=* | |
connection.NORMAL.allow.group=* | queue.q1.consume.allow.group=* | |
低 | connection.*.allow.user=user1 | queue.*.consume.allow.user=user1 |
connection.*.allow.group=user | queue.*.consume.allow.group=user | |
connection.*.allow.user=* | queue.*.consume.allow.user=* | |
connection.*.allow.group=* | queue.*.consume.allow.group=* |
リソースタイプがconnectionの場合の注意事項
デフォルトでは、すべてのユーザにNORMAL接続サービスへのアクセス権を付与し、adminグループに所属するユーザにADMIN接続サービスへのアクセス権を付与します。
connection.NORMAL.allow.user=* connection.ADMIN.allow.group=admin
リソースタイプがqueueまたはtopicの場合の注意事項
デフォルトでは、すべてのユーザ/グループが、任意の物理格納先(queueまたはtopic)のアクセス権を保持しています。
queue.*.produce.allow.user=* queue.*.consume.allow.user=* queue.*.browse.allow.user=* topic.*.produce.allow.user=* topic.*.consume.allow.user=*
また、リソースタイプがqueue/topicの場合、物理格納先を自動生成するかどうかのアクセス制御を指定可能です。自動生成に関するアクセス制御のデフォルトは、すべてのユーザ/グループに、メッセージブローカに物理格納先を自動作成させるアクセス権を保持しています。
物理格納先の自動生成については、「2.19.3 物理格納先の管理」を参照してください。
queue.create.allow.user=* topic.create.allow.user=*
注意
物理格納先の自動作成のアクセス規則と、物理格納先のアクセス規則が一致している必要があります。