識別と認証

識別 とは、システムのユーザー、またはシステムで実行するアプリケーションを一意的に識別する機能のことをいいます。 認証 とは、ユーザーまたはアプリケーションが本人または本物であることを証明する機能のことをいいます。

例えば、ユーザーが、ユーザー ID とパスワードを入力してシステムにログオンする場合を考えてみましょう。 システムは、ユーザー ID を使用してユーザーを識別します。 さらにシステムは、ログオン時に指定されたパスワードが正しいかどうかを確認してユーザーを認証します。

IBM MQ での識別と認証

アプリケーションが IBM® MQに接続すると、ユーザー ID は常に接続に関連付けられます。 ユーザー ID は、最初はアプリケーション・プロセスに関連付けられたオペレーティング・システム・ユーザー ID です。 多くの場合、この ID は、キュー・マネージャーと同じシステムでホストされているローカルにバインドされたアプリケーションには十分です。 ただし、キュー・マネージャーは、いくつかの方法で接続に関連付けられた ID を認証および変更することもできます。 信頼できるとは限らないクライアント・アプリケーションがネットワークを介してキュー・マネージャーに接続する場合は、接続に関連付けられた ID を認証することが重要です。

IBM MQ キュー・マネージャーへのアプリケーション接続に関連付けられた ID は、以下のいずれかのメカニズムを使用して確立できます。
  • アプリケーションは、キュー・マネージャーに接続するときに、ユーザー ID とパスワードを提供することができます。 キュー・マネージャーは、その構成に基づいて資格情報を検証します。 例えば、ユーザー ID とパスワードをキュー・マネージャーのオペレーティング・システム、または認証される LDAP サーバーに渡すことができます。
  • [MQ 9.4.0 2024 年 6 月]IBM MQ 9.4.0から、アプリケーションは外部の認証サーバから取得した認証トークンを提供することもできます。 認証トークンの詳細については、認証トークンを使うを参照してください。
  • クライアント・チャネルは、有効なデジタル証明書を使用して構成されている場合、TLS 相互認証を使用するように構成できます。 TLS 認証をチャネル認証 (CHLAUTH) 規則と組み合わせて、適切なユーザー ID を接続に関連付けることができます。 詳細については、TLSが識別、認証、機密性、完全性を提供する仕組みを参照してください、
  • チャネル認証 (CHLAUTH) 規則は、接続に関する情報に基づいて ID をオーバーライドできます。 例えば、チャネル認証規則は、クライアントの IP アドレスに基づいて、接続に関連付けられたユーザー ID を設定できます。
  • カスタム終了コードは、選択した基準に基づいて ID を設定できます。

ID と認証は、2 つのキュー・マネージャー間のチャネルにも適用できます。 これらのチャネルは、メッセージ・チャネルと呼ばれます。 メッセージ・チャネルの開始時に、チャネルの両端にあるメッセージ・チャネル・エージェント (MCA) は、そのパートナーを認証できます。 この手法のことを相互認証 といいます。 相互認証は、送信側の MCA に対して、メッセージの送信先のパートナーが本物であることを保証します。 同様に、受信側 MCA は、本物のパートナーからメッセージを受信しようとしていることが保証されます。

ID が確立され、必要に応じて認証されると、 IBM MQ はその ID をいくつかの方法で使用します。

  • 重要なのは、デフォルトでは、その後の認証チェックはすべてこのIDを使用して行われることである。 例えば、アプリケーションがキューにメッセージを書き込もうとすると、キュー・マネージャーは、アプリケーションに関連付けられている ID にキュー・オブジェクトに対する「put」権限があることを確認します。
  • さらに、すべてのメッセージに メッセージ・コンテキスト 情報を含めることができます。 この情報は、メッセージ記述子 (MQMD) に保持されます。 キュー・マネージャーは、アプリケーションがメッセージをキューに書き込むときに、メッセージ・コンテキストを自動的に生成することができます。 あるいは、アプリケーションに関連付けられているユーザー ID がメッセージ・コンテキストの提供を許可されている場合は、アプリケーションがそのメッセージ・コンテキストを提供することもできます。 メッセージ内のこのコンテキスト情報は、メッセージの発信元に関するメッセージ情報を受け取るアプリケーションに与えます。 例えば、コンテキスト情報には、メッセージを書き込んだアプリケーションの名前、およびそのアプリケーションに関連したユーザー ID が入っています。