WebSphere MQ パブリッシュ/サブスクライブでは、パブリッシュおよびサブスクライブの権限検査すべてはストリーム・キューに対して行われます。
- パブリッシュ元のアプリケーションには、メッセージをストリーム・キューに入れるための権限が必要です。
- さらに WebSphere MQ パブリッシュ/サブスクライブ・ブローカーは、ストリーム・キュー上をブラウズする
サブスクライブ元のアプリケーションの権限も検査します。
- サブスクライブ元のアプリケーションには、パブリケーションを受け取るために指定したキューにメッセージを書き込む権限が必要です。
同じ検査が WebSphere Message Broker ブローカーによって行われますが、サブスクライブ権限 (ブラウズ) は検査されなくなりました。
その代わりに、WebSphere Message Broker では、個々のトピック・レベルまで到達する階層的な方法で定義できるパブリッシュ・アクセスとサブスクライブ・アクセスの両方が可能です。
これを行うには、ワークベンチを使用してアクセス・コントロール・リスト (ACL) を作成します。
WebSphere MQ パブリッシュ/サブスクライブ・ブローカーを代わりの
WebSphere Message Broker にマイグレーションする前、または
WebSphere MQ パブリッシュ/サブスクライブ・アプリケーションが
WebSphere Message Broker で稼働するようにマイグレーションする前に、
以下のセキュリティー上の注意事項を検討してください。
下の図は、必要なストリーム権限を示しています。
この例では、プリンシパル PublicGroup のトピック・ルートにあるデフォルトの ACL を、パブリッシュ、
サブスクライブ、および永続配信の権限すべてを
deny に設定して更新していると想定します。
この例を使用して、以下のグループが定義されていると想定します。
- PDefault: デフォルト・ストリームにパブリッシュする許可を持つユーザーのグループ
- SDefault: デフォルト・ストリームにサブスクライブする許可を持つユーザーのグループ
- PStreamX: StreamX にパブリッシュする許可を持つユーザーのグループ
- SStreamX: StreamX にサブスクライブする許可を持つユーザーのグループ
- PStreamY: StreamY にパブリッシュする許可を持つユーザーのグループ
- SStreamY: StreamY にサブスクライブする許可を持つユーザーのグループ
ACL を以下のとおりに設定して、権限を認可または拒否しなければなりません。
- PDefault にはルートに対するパブリッシュ権限を付与する必要があり、
SDefault にはルートに対するサブスクライブ権限を付与する必要があります。
- PDefault には $SYS/STREAM/ に対するパブリッシュ権限を拒否する必要があり、
SDefault には $SYS/STREAM/ に対するサブスクライブ権限を拒否する必要があります。
これらの設定値は、デフォルト・ストリーム上のパブリッシャーおよびサブスクライバーが他のストリームにパブリッシュまたはサブスクライブできないようにします。
ACL はそれらの設定値を明示的にオーバーライドするように定義する必要があります。
- PStreamX には $SYS/STREAM/StreamX/ に対するパブリッシュ権限が必要であり、
SStreamX には $SYS/STREAM/StreamX/ に対するサブスクライブ権限を付与する必要があります。
これらの設定値は親トピックでのあらゆる設定をオーバーライドして、
パブリッシュおよびサブスクライブの活動をこれらの特定のグループ内にあるユーザーに制限します。
- PStreamY には $SYS/STREAM/StreamY/ に対するパブリッシュ権限が必要であり、
SStreamY には $SYS/STREAM/StreamY/ に対するサブスクライブ権限を付与する必要があります。
これらの設定値は親トピックでのあらゆる設定をオーバーライドして、
パブリッシュおよびサブスクライブの活動をこれらの特定のグループ内にあるユーザーに制限します。
この状態に対して例外をセットアップしたい場合、
適切なポイントで ACL を紹介することが必要です。
例えば、パブリッシャーに StreamX にパブリッシュするためのデフォルト・ストリーム (PDefault) に対する権限を認可したい場合、
明示的な ACL をポイント (3) で作成する必要があります。したがって、例示 (2) での否認をオーバーライドします。
このシナリオでは、ユーザー PDefault はまだ StreamY に対してパブリッシュすることができません。