WebSphere® Application Server は、Web サービス SOAP 要求メッセージで SAML セキュリティー・トークンを使用してクライアント・セキュリティー・コンテキストを確立するための 2 つのポリシー・セット呼び出し元バインディングの構成オプションをサポートしています。この 2 つの構成オプションでは、ローカル・ユーザー・リポジトリー内のユーザー・エントリーへの SAML トークンのマッピング、および信頼関係に基づいた SAML トークンの表明を行います。
始める前に
このタスクは、
WebSphere Application Server SAML テクノロジーに精通していることを前提としています。
このタスクについて
このタスクでは、Web サービスの SOAP 要求メッセージ内にある SAML セキュリティー・トークンを使用してクライアントのセキュリティー・コンテキストを設定するための、
WebSphere Application Server ポリシー・セット呼び出し元バインディング構成オプションの設定について説明しています。
SAML トークンをローカル・ユーザー・リポジトリー内のユーザー・エントリーにマッピングするか、信頼関係に基づいて SAML トークンを表明することができます。この 2 番目の構成オプションの場合、ローカル・ユーザー・リポジトリーにアクセスする必要はありません。その代わりに、WS-Security ランタイム環境では、SAML セキュリティー・トークンの内容を使用して、すべてのクライアントのセキュリティー・コンテキストにデータを設定します。このプロセスは、SAML トークンの発行者との信頼関係に基づきます。
SAML トークンが sender-vouches サブジェクト確認メソッドを指定している場合、このプロセスは、メッセージの送信者との信頼関係に基づきます。
手順
- ポリシー・セットの呼び出し元バインディングを構成し、Web サービス・クライアント要求を表す SAML トークン・タイプを選択します。
- をクリックします。
- 呼び出し元構成を作成するため、「新規」をクリックします。
- 「名前」を指定します (例: caller)。
- 「呼び出し元識別ローカル・パーツ」の値を入力します。例えば、http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0 のようになります。これは、添付された WS-Security ポリシー内の CustomToken エレメントのローカル・パーツと一致している必要があります。
- 「適用」と「保存」をクリックします。
- オプション: SAML セキュリティー・トークンを、ローカル・ユーザー・リポジトリー内のユーザー・エントリーにマップします。 ユーザー・エントリーへのマッピングは、構成オプションを指定せずに呼び出し元バインディングを構成する場合のデフォルトの動作です。これを行う代わりに、オプションで以下のステップを実行して、構成オプションを明示的に選択することができます。
- 呼び出し元バインディングの構成ページで、コールバック・ハンドラー com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler を追加します。
- コールバック・ハンドラーのカスタム・プロパティー crossDomainIdAssertion を追加し、その値を false に設定します。
- オプション: 信頼関係に基づいて SAML セキュリティー・トークンを表明します。
- 呼び出し元バインディングの構成ページで、コールバック・ハンドラー com.ibm.websphere.wssecurity.callbackhandler.SAMLIdAssertionCallbackHandler を追加します。
- コールバック・ハンドラーのカスタム・プロパティー crossDomainIdAssertion を追加し、その値を true に設定します。
WebSphere Application Server バージョン 7.0 フィックスパック 7 以降のリリースでは、WS-Security ランタイム環境は外部のセキュリティー・レルム名を表す SAML トークン発行者名を使用します。
WS-Security は、ユーザー・セキュリティー名を表すために、SAML 2.0 セキュリティー・トークンの場合は NameID エレメントを使用し、SAML 1.1 セキュリティー・トークンの場合は NameIdentifier エレメントを使用します。また、ユーザー・セキュリティー名を表すために使用する SAML トークン属性を、明示的に指定することも可能です。さらに、ユーザー・グループのメンバーシップを表すために使用する SAML トークン属性を指定することもできます。
SAML トークン表明のトラスト・モデルおよびバインディング構成について詳しくは、『WebSphere Application Server セキュリティー・ドメイン間の SAML アサーション (SAML assertions across WebSphere Application Server security domains)』を参照してください。
バージョン 8.x は、SAML トークン内の com.ibm.websphere.security.cred.WSCredential の内容を伝搬することができます。Web サービス・クライアントの WS-Security バインディング構成で、tokenRequest カスタム・プロパティーのプロパティー値を issueByWSCredential に設定する必要があります。このバインディング・オプションについて詳しくは、SAML トークンの伝搬に関する記述を参照してください。バージョン 8.x では、crossDomainIdAssertion プロパティーが true に設定されていると、SAML トークンに SAML 属性 UniqueSecurityName が含まれており、その NameFormat エレメントの値が com.ibm.websphere.security.cred.WSCredential に設定されているかどうかが、WS-Security によって検査されます。WS-Security は、NameID エレメントまたは NameIdentifier エレメントの NameQualifier 属性値が見つかれば、これを使用してユーザー・セキュリティー・レルム名を表します。また WS-Security は、UniqueSecurityName 属性値または GroupIds 属性値を使用して、固有のユーザー名およびグループ・メンバーシップを表します。このデフォルト動作は、本製品のバージョン 7 とバージョン 8.x では異なります。CallbackHandler プロパティー IssuerNameForRealm を追加し、その値を true に設定することで、バージョン 7 での振る舞いを維持するようにバージョン 8.x を構成することができます。また、CallbackHandler プロパティー NameQualifierForRealm を追加し、その値を true に設定することで、常に NameQualifier 属性を使用してユーザー・セキュリティー・レルム名を表すように、バージョン 8.x を構成することもできます。
- WebSphere Application Server グローバル・セキュリティーを使用可能にし、構成します。
「セキュリティー構成」ウィザードを使用して、管理セキュリティーを有効にすることができます。また、アプリケーション・セキュリティーを有効にして、サンプル・アプリケーションがセキュリティー・コンテキストで認証済みユーザー・サブジェクトを使用して、SAML トークンを作成できるようにする必要があります。
このステップには、Web サービス・プロバイダー側での第三者信頼関係検査ポイントの構成が含まれます。
このステップは、アプリケーション・サーバーを使用してターゲット・セキュリティー・ドメインの Web サービス・プロバイダーをシミュレートにするために必要です。WebSphere Application Server V8.0 認証サブシステムでは、外部レルム名を持つユーザー ID のアサートがサポートされており、インバウンド・トラステッド認証レルムのリストに対して外部レルム名が検査されます。
この構成ステップを完了すると、WebSphere Application Server で、外部セキュリティー・レルム内にユーザー ID を持つクライアント呼び出し元サブジェクトを作成できます。
- トラステッド・セキュリティー・ドメインを構成します。
- 「グローバル・セキュリティー」パネルで、「使用可能なレルムの定義」の横にある「構成」ボタンをクリックします。
- 「トラステッド認証レルム - インバウンド」リンクをクリックします。
- 「下記のようにレルムをトラストする」オプションを選択します。
- 「外部レルムの追加」ボタンをクリックします。
- 「外部レルム名」に SAML アサーション発行者名を追加します。
SAML アサーション発行者名として、SAML アサーションの発行者に関する情報が提供されます。この情報は、SAML 2.0 アサーションの Issuer エレメント内か、SAML アサーションの Issuer 属性で指定されます。
タスクの結果
Web サービス SOAP 要求メッセージ内の SAML セキュリティー・トークンを使用してクライアント・セキュリティー・コンテキストを設定するように、Web サービスを構成しました。
例
以下の例は、
WSCredential に基づいて自己発行される SAML 1.1 アサーションの
NameIdentifier エレメントおよび
Attribute エレメントを示しています。
<saml:AttributeStatement>
<saml:Subject>
<saml:NameIdentifier NameQualifier="ldap.example.com:9080">uid=alice,dc=example,dc=com</saml:NameIdentifier>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Attribute AttributeName="UniqueSecurityName" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>uid=alice,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute AttributeName="GroupIds" AttributeNamespace="com.ibm.websphere.security.cred.WSCredential">
<saml:AttributeValue>cn=development,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=deployment,dc=example,dc=com</saml:AttributeValue>
<saml:AttributeValue>cn=test,dc=example,dc=com</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
以下の例は、
WSCredential に基づいて自己発行される SAML 2.0 アサーションの
NameID エレメントおよび
Attribute エレメントを示しています。
<saml2:AttributeStatement>
<saml2:Attribute Name="UniqueSecurityName" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>uid=alice,dc=example,dc=com</saml2:AttributeValue>
<saml2:Attribute>
<saml2:Attribute AttributeName="GroupIds" NameFormat="com.ibm.websphere.security.cred.WSCredential" />
<saml2:AttributeValue>cn=development,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=deployment,dc=example,dc=com</saml2:AttributeValue>
<saml2:AttributeValue>cn=test,dc=example,dc=com</saml2:AttributeValue>
</saml2:Attribute>
<saml2:AttributeStatement>
<saml2:NameID NameQualifier="ldap.example.com:9060">alice</saml2:NameID>