始める前に
WebサービスIDプロバイダ・パートナまたはサービス・プロバイダ・パートナを構成する場合、パートナのルックアップ文字列を指定する必要があります。この文字列(エンドポイントURLを指定)は、生成や検証が必要なSAML 2.0アサーションに関連付けられているパートナをWebLogic Serverで検出する際に実行時に必要となります。
たとえば、Webサービス・クライアントはアサーションが必要な場合に、ターゲットWebサービスのエンドポイントをSAML 2.0資格証明マッピング・プロバイダに渡します。SAML 2.0資格証明マッピング・プロバイダは、そのエンドポイントに一致するルックアップ文字列が構成されているパートナ・エントリを検索して適切なWebサービス・サービス・プロバイダ・パートナをルックアップしてから、検出されるパートナに必要なアサーションを生成します。
同様の方法で、サービス・プロバイダの役割で構成されているWebLogic Serverインスタンスは、Webサービス・クライアントからの呼出しを受け取ると、アサーションおよび呼び出されたエンドポイントをSAML 2.0 IDアサーション・プロバイダに渡します。SAML 2.0 IDアサーション・プロバイダは、そのエンドポイントに一致するルックアップ文字列が構成されているパートナを検索して適切なWebサービスIDプロバイダ・パートナをルックアップしてから、検出されるパートナに対してアサーションを検証します。
また、WebLogic Serverでは、パートナのルックアップ文字列を構成して特定のエンドポイントがオーディエンスのURIとして機能するように設定することもできます。そのため、オーディエンスのURI属性は2つの関連する別々の機能(アサーションに含まれる必要のあるオーディエンスのURIの指定と、パートナのルックアップ文字列の指定)を実行するためにオーバーロードされます(IDプロバイダ・パートナを構成する場合、パートナのルックアップ文字列およびオーディエンスのURIは、エンドポイントURLがSAML 2.0 IDアサーション・プロバイダに渡される方法のために、別々のエントリで指定する必要があります)。
パートナのルックアップ文字列がSAML 2.0 Webサービス・パートナに構成されていない場合、そのパートナは実行時に検出されず、そのパートナに必要なアサーションを生成または検証することができません。
パートナのルックアップ文字列の一般的な構文はIDプロバイダ・パートナとサービス・プロバイダ・パートナの両方で同じですが、構文の指定方法は、WebLogic Serverによる受信エンドポイントURLの処理方法のために異なります。WebLogic Serverでは、パートナのルックアップ文字列で次の2つの基本形式がサポートされています。
パートナA
の完全一致のルックアップ文字列としてhttp://www.abc.com/xxx/yyy/zzz
を指定した場合、そのURLと完全に同一のエンドポイントが適切なSAML 2.0セキュリティ・プロバイダに渡される場合にのみ、パートナA
が一致として選択されます。WebLogic Serverでは、完全一致のパートナのルックアップ文字列を2つの方法で指定できます。すなわち、特定のURLをオーディエンスのURIとしてアサーションに含めたり、アサーションから除外することができます。このメカニズムにより、サービス・プロバイダ・パートナを構成する場合に、特定のURLをオーディエンスのURIとして、およびパートナのルックアップ文字列として重複指定する必要がなくなります。
パートナA
で最初の文字列一致のルックアップ文字列としてhttp://www.abc.com/xxx
を指定した場合、http://www.abc.com/xxx
で始まるエンドポイントが渡されるとパートナA
が一致として選択されます。http://www.abc.com/xxx/yyy/zzz
やhttp://www.abc.com/xxx/aaa/bbb
などのエンドポイントも、このパートナに一致するものとされます。パートナのルックアップ文字列の構文は次のとおりです。
[target:char:]<endpoint-url>
上記の構文において、target:char:
はパートナ・ルックアップ文字列の指定に使用されるプレフィックスです。ここで、charはハイフン、プラス記号、アスタリスク(-
、+、*
)の3つの特殊文字のいずれか1つを表します。このプレフィックスはパートナ・ルックアップが実行される方法を以下のように判断します。
target:-:<endpoint-url>
は、パートナのルックアップが、URL <endpoint-url
>の完全一致に対して実行されることを指定します。この形式のパートナのルックアップ文字列では、アサーションに含まれるオーディエンスのURIとしてそのエンドポイントURLを含めないことを指定します。target:+:<endpoint-url>
は、パートナのルックアップが、URL <endpoint-url>
の完全一致に対して実行されること、およびそのエンドポイントURLがアサーションのオーディエンスのURIとしても追加されることを指定します。ノート: IDプロバイダ・パートナでこの形式のパートナのルックアップ文字列を指定すると、一致がほとんど発生しないため、この形式では指定しないでください。target:*:<endpoint-url>
は、パートナのルックアップが、URL <endpoint-url>
の最初の文字列パターン一致に対して実行されることを指定します。この動作により、サービス・プロバイダ・サイトを構成する場合に、ドメイン内のWebサービスをホストするすべてのマシンに渡って、転送プロトコルのバリエーション(HTTPかHTTPS)、ホスト名、IPアドレスおよびポート情報に関係なく、同じWebサービスのすべてのアサーションの検証に使用できる単一のIDプロバイダ・パートナを構成することができます。
したがって、IDプロバイダ・パートナのルックアップ文字列に構成するエンドポイントURLには、URLのホストとポートに続く部分のみを含める必要があります。たとえば、target:*:/myserver/xxx
などと指定します。target:*:/
target:*:http://
target:*:https://