Message Queue サービスは、各ブローカインスタンス用の認証および承認 (アクセス制御) をサポートし、暗号化もサポートしています。
認証により、検証されたユーザーだけがブローカとのコネクションを確立できるようにします。
承認により、リソースにアクセスし、特定の操作を実行する権限を持つユーザーまたはグループを指定します。
暗号化により、コネクションを通して配信されるときに改ざんされないよう、メッセージを保護します。
認証と承認は、メッセージングシステムのユーザーに関する情報、つまり名前、パスワード、グループ (group) メンバーシップなどを含むリポジトリによって異なります。また、ユーザーまたはグループによる特定の操作を承認するには、ブローカはユーザーまたはグループが実行できる操作を指定するアクセス制御プロパティーファイルをチェックする必要があります。ブローカがユーザーを認証してユーザーの操作を承認するために必要な情報は、管理者が設定する必要があります。
図 3–3は、ブローカが認証と承認を与えるために必要とするコンポーネントを示しています。
図 3–3 に示すように、Message Queue サービスに付属している単層型ファイルユーザーリポジトリにユーザーデータを保存するか、既存の LDAP リポジトリにプラグインすることができます。ブローカのプロパティーを設定して、自分の選択を指定します。
単層型ファイルリポジトリを選択する場合は、imqusermgr ユーティリティーを使用してリポジトリを管理する必要があります。これは、使いやすい組み込みユーティリティーです。
既存の LDAP サーバーを使用する場合は、LDAP ベンダーによって提供されているツールを使用して、ユーザーリポジトリの値の入力と管理を行います。また、ブローカが LDAP サーバーに対してユーザーおよびグループに関する情報を照会できるように、ブローカインスタンス設定ファイル内でプロパティーを設定する必要があります。
スケーラビリティーが重要な場合やさまざまなブローカでリポジトリを共有する必要がある場合は、LDAP オプションの方が適しています。ブローカクラスタを使用する場合などが、これに該当します。
クライアントがコネクションを要求する場合、ユーザー名とパスワードを入力する必要があります。ブローカは、指定されたユーザー名とパスワードをユーザーリポジトリ内に格納されているものと比較します。クライアントからブローカにパスワードが送信される場合、パスワードは、Base64 か、メッセージダイジェスト (MD5) ハッシュのどちらかを使用して暗号化されます。単層型ファイルリポジトリでは MD5 が使用され、LDAP リポジトリでは Base64 が必要です。LDAP を使用する場合は、セキュリティー保護された TLS プロトコルを使用する方がよいでしょう。ブローカのプロパティーを設定して各コネクションサービスで使用する暗号化のタイプを 1 つずつ設定するか、あるいはブローカ単位で暗号化を設定することができます。
ユーザーが何らかの操作を実行しようとすると、ブローカは、ユーザーリポジトリ内のユーザー名とグループのメンバーシップを、アクセス制御プロパティーファイル内にある、その操作へのアクセス権が与えられているユーザー名とグループのメンバーシップと照らし合わせます。アクセス制御プロパティーファイルでは、次の操作に対するユーザーまたはグループのアクセス権を指定します。
ブローカへの接続
送信先へのアクセス: 特定の送信先、またはすべての送信先に対してのコンシューマ、プロデューサ、またはキューブラウザの作成
送信先の自動作成
ブローカのプロパティーを設定して、次の情報を指定します。
クライアントとブローカ間で送信されるメッセージを暗号化するには、 Secure Socket Layer (SSL) 標準に基づいたコネクションサービスを使用する必要があります。SSL は、SSL 対応のブローカとクライアント間で暗号化されたコネクションを確立して、コネクションレベルのセキュリティーを提供します。
ブローカのプロパティーを設定して、使用する SSL キーストアのセキュリティープロパティーおよびパスワードファイルの名前と場所を指定できます。