Security Identity Propagation サンプルは、IBM Integration Bus に含まれるいくつかの ID セキュリティー機能の使い方を示すものです。
実際のセキュリティー実装環境は、識別や与信を定義する、全国規模の外部のセキュリティー・プロバイダーに依存しているので、このサンプルはセキュリティー強化を実現するものではありません。事前にビルドされたサンプルは、MQInput および HTTPInput ノードでセキュリティー資格情報をメッセージから抽出する方法、ESQL を使用してセキュリティー資格情報を取り扱う方法、およびそれらのレポートを作成してオプションでマップする方法を示します。 サンプルには、MQOutput および HTTPRequest ノードを使用して ID を伝搬する方法も示されています。
『サンプルの拡張』のセクションでは、外部セキュリティー・プロバイダーをサンプルに組み込む方法の詳細が提供されます。
Security Identity Propagation サンプルでは、以下のタスクを示します。
以下の図は、Security Propagation Sample のメイン・メッセージ・フロー (SecurityIdentitySampleFlowProject 統合プロジェクトの SecurityIdentitySampleFlow.msgflow) を示しています。 このメッセージ・フローは、1 つの HTTPInput ノードと、共通のサブフローを起動する 2 つの MQInput ノードから構成されています。
HTTP_ID という名前の HTTPInput ノードは、HTTP 基本認証ヘッダーの中で渡される ID を抽出します。それは着信要求からユーザー名とパスワード・トークンをエンコードしたものです。HTTPInput ノードは、提供されている BAR ファイル SecurityIdentityPropagation.bar において、セキュリティー・プロファイルに「デフォルトの伝搬」という設定値を持つように構成されています。
MQ_ID MQInput ノードは、着信メッセージの WebSphere MQ MQMD メッセージ・ヘッダーの中で渡される、ユーザー名のみを持つ ID を抽出します。MQ_ID ノードは、提供されている BAR ファイル SecurityIdentityPropagation.bar において、セキュリティー・プロファイルに「デフォルトの伝搬」という設定値を持つように構成されています。
MSG_ID MQInput ノードは、ユーザー名とパスワードの両方から成る ID 資格情報の組を抽出します。MSG_ID ノードの「セキュリティー」プロパティーは、ID 資格情報が WebSphere MQ メッセージの本体の中で渡されるように構成されています。MSG_ID ノードは、提供されている BAR ファイル SecurityIdentityPropagation.bar において、セキュリティー・プロファイルに「デフォルトの伝搬」という設定値を持つように構成されています。
次の図は、Security Identity Propagation サブフロー SecurityIdentitySubFlow.msgflow を示しています。これは各入力ノードによって呼び出されます。
このサブフローは MapIdentity と呼ばれる 1 つの Compute ノードを含んでいます。このノードは、入力メッセージの内容が「マップ ID」の設定を要求している場合に、メッセージのプロパティー・フォルダーに「マップ ID」を設定することができます。HTTP_ReqAsID と呼ばれる HTTPRequest ノードは、プロパティー・フォルダー中のソース ID またはマップ ID のいずれかを用いて、SecurityIdentityReportFlow メッセージ・フローに要求を発行します。このノードはメッセージ・ツリーを、そのフローからの要求で置き換えます。HTTPRequestNode は、提供されている BAR ファイル SecurityIdentityPropagation.bar において、「デフォルトの伝搬」のセキュリティー・プロファイルを持つように構成されているので、マップ ID のソースを伝搬します。ClearHdrs という最後の Compute ノードは、メイン・フローが WebSphere MQ を介して応答メッセージを送信する場合に、HTTP 要求ヘッダーをクリアするために備えられています。
次の図は、サブフローによって呼び出される、SecurityIdentityReportFlow.msgflow と呼ばれる Security Propagation Sample Report Identity メッセージ・フローを示しています。このメッセージ・フローは、関連する ID を伝搬します。
Security Propagation Sample Report Identity メッセージ・フロー中の、Report Identity Compute ノードは、body フォルダーが存在する場合、メッセージの BODY 要素フィールドの中で受け取った ID を報告します。
Security Propagation サンプルを実行するために、次の 3 つの入力メッセージが用意されています。
<?xml version="1.0" encoding="UTF-8"?> <Envelope> <Body> </Body> </Envelope>Simple.xml、Security_Identity_MQ_ID.mbtest を参照してください。
<?xml version="1.0" encoding="UTF-8"?> <Envelope> <Body> <MessageIdentity> <Username>IdInMsg</Username> <Password>PwdInMsg</Password> <IssuedBy>InMsgIssuer</IssuedBy> </MessageIdentity> </Body> </Envelope>Security_Identity_MSG_ID.mbtest を参照してください。
<?xml version="1.0" encoding="UTF-8"?> <Envelope> <Body> <MapIdentity>true</MapIdentity> </Body> </Envelope>Security_Identity_Mapped.mbtest を参照してください。