JMSサーバは認証サポートおよびアクセス制御を提供します。認証は、ユーザがJMS接続を作成する際に使用されます。 アクセス制御は、接続時にプロデューサ、コンシューマ、およびキューブラウザが作成される際、およびJMSサーバの管理機能にアクセスする場合に使用されます。
セキュリティはSecurity Administration Remote APIを使用して環境設定および管理されます。APIは、ユーザやグループの管理およびアクセス制御リスト(ACL)の管理に使用されます。 次のセクションでは、JMSのセキュリティの対処方法について説明します。
APIによりプリンシパル(ユーザとグループ)を作成、削除、および参照します。プリンシパルには、「匿名」ユーザ、「管理者」グループ、および「ワールド」グループという3種類の組込みプリンシパルがあります。
管理者グループに属する別のプリンシパルは、msgsvc.properties
ファイルで指定されたデータベースユーザ名およびパスワードを使用して作成されます。
JMS接続をユーザ名およびパスワードを使用して作成すると、ユーザが認証され、そのIDが確立されます。パスワードが提供されていない場合、ユーザIDは「匿名」に設定されます。
JMSでACLの作成に使用できる許可は、次のとおりです。
CONSUME_PERMISSION
- メッセージの受信またはキューのブラウズ、 およびトピックメッセージの購読の許可。PRODUCE_PERMISSION
- メッセージをトピックに送信および発行する許可。MANAGE_PERMISSION
- サーバを管理する許可。現在のリリースでは、管理者グループに属するユーザにだけMANAGE_PERMISSION
があります。APIによってJMSサーバのデータベースにあるALCを作成します。ACLは、宛先プロパティでACL名を指定することにより宛先に設定できます。 宛先プロパティについては、こちらを参照してください。
前に説明したとおり、msgsvc.properties
ファイルには、msgsvc.security.enable
ブールプロパティが含まれます。このプロパティの値は、ACLチェックが行われるかどうか、およびサーバを管理できるユーザのグループを示します。
デフォルトでは、セキュリティは無効です。つまり、ACLチェックは行われず、任意のユーザ(匿名ユーザを含む)がJMSサーバを管理します。 セキュリティが有効な場合、管理者グループのユーザのみがJMSQサーバを管理し、ACLチェックが行われます。