サードパーティのSAMLリライイング・パーティによって要求される固有のSAML 1.1アサーション属性に件名をマッピングするカスタムSAML名前マッパーを作成する方法に関する詳細は、前述の項で説明されるトピックに加え、『WebLogicセキュリティ・サービスによるアプリケーションの開発』の非WebLogic SAML 1.1リライイング・パーティ用アサーションの作成に関する項を参照してください。
この章の内容は次のとおりです。
SAMLによるシングル・サインオンを有効にするには、以下の手順に従って、WebLogic Serverをソース・サイトまたは宛先サイトとして構成します。
注意:
WebLogic Serverのこのリリースでは、SAML 1.1実装が変更され、SAMLレスポンスでのHttpServletResponse URL再書込みは使用されなくなりました。このため、JSESSIONIDはSAMLレスポンスに追加されません。また、この変更により、cookieをサポートしないブラウザではSAML 1.1が使用できなくなります。
HttpServletResponse URL再書込みを有効にするには、Javaシステム・プロパティweblogic.security.saml.enableURLRewriting
をtrue
に設定します。たとえば、これは、WebLogic Serverを起動するJavaコマンドで次のオプションを指定して行うことができます。
-Dweblogic.security.saml.enableURLRewriting=true
WebLogic Serverインスタンスをソース・サイトとして構成するには、次の主な手順を実行します:
以下の節では、WebLogic ServerインスタンスをSAML 1.1ソース・サイトとして構成する方法について説明します。
使用するセキュリティ・レルムで、SAML資格証明マッピング・プロバイダV2のインスタンスを作成します。SAML資格証明マッピング・プロバイダは、デフォルト・セキュリティ・レルムの一部ではありません。「SAML 1.1用のSAML資格証明マッピング・プロバイダの構成」を参照してください。
SAML資格証明マッピング・プロバイダをSAML認証局として構成するには、「発行者URI」、「名前修飾子」などの属性を設定します。
SAML 1.1ソース・サイトとしてのWebLogic Serverインスタンスの構成は、FederationServicesMBean
によって制御されます。FederationServicesMBean
には、WebLogic Scripting ToolまたはWebLogic Server管理コンソール(「環境」→「サーバー」→「サーバー名」→「構成」→「フェデレーション・サービス」→「SAML 1.1ソース・サイト」ページ)を使用してアクセスします。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAML 1.1ソース・サービスの構成に関する項を参照してください。
SAMLソース・サイトの属性は以下のように構成します。
SAMLソース・サイトを有効にします。Source Site Enabled (「ソース・サイトを有効化」)をtrueに設定して、WebLogic ServerインスタンスがSAMLソース・サイトとして動作するようにします。
ソース・サイトのURLとサービスURIを設定します。SAMLソース・サイトのURLを設定します。これは、サイト間転送サービスおよびアサーション検索サービスをホストするURLです。ソース・サイトURLは、ソースIDとして16進数およびBase64でエンコードされます。ブラウザ/アーティファクト・プロファイルのSAMLアサーティング・パーティを構成するときに、このエンコードされたソースIDを指定します。
サイト間転送サービスおよび(ブラウザ/アーティファクト・プロファイルをサポートするために)アサーション検索サービスのURIを指定します。(また、リライイング・パーティを構成するときには、サイト間転送サービスURIも指定します。)
デフォルトURIのFederationServicesMBean.IntersiteTransferURIs
の値は、表22-1に示されています。
表22-1 サイト間転送URI
デフォルトURI値 | 説明 |
---|---|
/samlits_ba/its |
BASIC認証、POSTまたはアーティファクト・プロファイル |
/samlits_ba/its/post |
BASIC認証、POSTプロファイル |
/samlits_ba/its/artifact |
BASIC認証、アーティファクト・プロファイル |
/samlits_cc/its |
クライアント証明書認証、POSTまたはアーティファクト・プロファイル |
/samlits_cc/its/post |
クライアント証明書認証、POSTプロファイル |
/samlits_cc/its/artifact |
クライアント証明書認証、アーティファクト・プロファイル |
サイト間転送URIテキスト・ボックスを使用すると、デフォルト値をそのまま使用するか、または選択内容に応じて値を変更できます。各URIにはアプリケーション・コンテキストが含まれ、後には/its
、/its/post
、または/its/artifact
が続きます。提供されるアプリケーション・コンテキストは、/samlits_ba
(BASIC認証)または/samlits_cc
(クライアント証明書認証)です。必要に応じて、/yourapplication/its
などのアプリケーション固有のコンテキストも指定できますが、たいていの場合はデフォルトが最も使いやすい構成オプションです。
これらのURIを/samlits_ba/its
に指定し、リダイレクトが発生してソース・サイト上のユーザー・セッションがタイムアウトした場合、BASIC認証ダイアログが表示されます。かわりにFORMダイアログを使用する場合、URIは、ユーザーを認証して実際のITS URIに転送するカスタムWebアプリケーションを示します。
署名用の証明書を追加します。SAMLソース・サイトでは、アサーションの署名に使用する信頼性のある証明書が必要になります。キーストアにこの証明書を追加して、この証明書へのアクセスに使用される資格証明(別名とパスワード)を入力します。署名用の別名とパスワードが指定されていない場合、デフォルトではサーバーのSSL IDキー/証明書が使用されます。
アサーション検索サービス用のSSLを構成します。FederationServicesMBean.arsRequiresSSL
をtrue
に設定することで、アサーション検索サービスへのすべてのアクセスでSSLを使用するようにできます。arsRequiresSSL
とARSRequiresTwoWaySSL
の両方をtrue
に設定することで、アサーション検索サービスに対する双方向SSL認証を要求できます。
SAMLリライイング・パーティは、SAMLソース・サイトによって生成されるSAMLアサーションの情報によって変わるエンティティです。WebLogic Serverで各リライイング・パーティに対し別個にSAMLアサーションを生成する方法を構成するか、フェデレーション・サービス・ソース・サイトの構成で設定されたデフォルトを使用してアサーションを生成します。
リライイング・パーティは、WebLogic Server管理コンソールの「セキュリティ・レルム」→「RealmName」→「プロバイダ」→資格証明マッパー→「SAMLCredentialMapperName」→「管理」→「リライイング・パーティ」ページで構成します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAML 1.1リライイング・パーティの作成に関する項とSAML 1.1リライイング・パーティの構成に関する項を参照してください。
WebLogic Scripting Toolを使用してリライイング・パーティを構成することもできます。「WLSTを使用したリライイング・パーティとアサーティング・パーティの構成」を参照してください。
次のトピックでは、リライイング・パーティを構成する方法を説明します。
SAMLリライイング・パーティを構成するときに、SAML SSO用としてアーティファクト・プロファイルまたはPOSTプロファイルのサポートを指定できます。かわりに、Webサービス・セキュリティ用としてWSS/Holder-of-KeyプロファイルまたはWSS/Sender-Vouchesプロファイルをサポートするリライイング・パーティを構成することもできます。SAML宛先サイトがサポートするプロファイルのサポートを構成してください。
POSTプロファイルをサポートする場合は、必要に応じて、リライイング・パーティのPOSTプロファイル・アサーションで使用するフォームを作成し、そのパス名を「POSTフォーム」属性に設定します。
各SAMLリライイング・パーティに対して、宛先サイトへのリダイレクト時にACS URLに付加される1つまたは複数の問合せパラメータを任意で構成できます。POSTプロファイルの場合、用時にこデフォルトのPOSTフォームの使れらのパラメータがフォーム変数として組み込まれます。カスタムPOSTフォームの使用中は、パラメータは名前と値のマップとして使用可能になりますが、フォームがPOSTされるデータにパラメータが含まれるように作成される場合と、そうでない場合があります。
別のWebLogic Serverインスタンスと通信するWebLogic ServerブラウザSSO構成の場合、リライイング・パーティACSパラメータのSAMLアサーティング・パーティのID (APID)を設定します。
ブラウザ・プロファイル構成が機能するためにV2プロバイダとこのパラメータの併用が必要です。つまり、ACSはアサーティング・パーティID (APID)をリクエスト受信時のパラメータとして検索し、これを使用して他の処理を実行する前に構成を参照します。
また、APIDパラメータを使用すると、ブラウザSSOのターゲットURLパラメータを指定する必要がなくなります。ターゲットURLはWebサービスの構成に使用されます。
WebLogic Serverでは、単純なアサーション・ストアを使用して、生成されるアサーションの永続性を保持します。このアサーション・ストアを、weblogic.security.providers.saml.AssertionStoreV2
を実装するカスタム・アサーション・ストア・クラスに置き換えることができます。FederationServicesMBean.AssertionStoreClassName
属性を使用して、デフォルトのクラスではなく、カスタム・アサーション・ストア・クラスを使用するようにWebLogic Serverを構成します。FederationServicesMBean.AssertionStoreProperties
属性を使用して、カスタム・アサーション・ストア・クラスのinitStore()
メソッドに渡されるプロパティを構成できます。これらの属性は、WebLogic Server管理コンソールの「環境: サーバー」→「ServerName」→「構成」→「フェデレーション・サービス」→「SAML 1.1ソース・サイト」ページで構成します。
以下の節では、WebLogic ServerをSAML宛先サイトとして構成する方法について説明します。
使用するセキュリティ・レルムで、SAML IDアサーション・プロバイダV2のインスタンスを作成し、構成します。SAML IDアサーション・プロバイダは、デフォルト・セキュリティ・レルムの一部ではありません。「SAML 1.1用のSAML IDアサーション・プロバイダの構成」を参照してください。
WebLogicをSAML宛先サイトとして構成する前に、まず使用するセキュリティ・レルムで、SAML IDアサーション・プロバイダV2のインスタンスを作成する必要があります。SAML宛先サイトとしてのWebLogic Serverインスタンスの構成はFederationServicesMBean
によって制御されます。FederationServicesMBean
には、WebLogic Scripting ToolまたはWebLogic Server管理コンソール(「環境: サーバー」→「ServerName」→「構成」→「フェデレーション・サービス」→「SAML 1.1宛先サイト」ページ)を使用してアクセスします。
SAML宛先サイトの属性は次のように構成します。
SAMLアサーション・コンシューマ・サービスのURIを設定します。ソース・サイトからアサーションを受信するURLです。これにより、宛先サイトはアサーションを使用してユーザーを認証できます。アサーション・コンシューマURIは、リライイング・パーティの構成でも指定されます。
FederationServicesMBean.acsRequiresSSL
をtrue
に設定することで、アサーション・コンシューマ・サービスへのすべてのアクセスでSSLを使用するように設定できます。
SSLクライアントIDは、アーティファクト・プロファイルのソース・サイトでARSにアクセスするために使用します。キーストアにこの証明書を追加して、この証明書へのアクセスに使用される資格証明(別名とパスワード)を入力します。
必要に応じて、各POSTプロファイル・アサーションの使用を1回のみに設定できます。アサーションの使い捨てポリシーをサポートできるように、WebLogic Serverには使用済みのアサーションのキャッシュが保持されています。このアサーション・キャッシュを、weblogic.security.providers.saml.SAMLUsedAssertionCache
を実装するカスタム・アサーション・キャッシュ・クラスに置き換えられます。FederationServicesMBean.SAMLUsedAssertionCache
属性を使用して、デフォルトのクラスではなく、カスタム・アサーション・キャッシュ・クラスを使用するようにWebLogic Serverを構成します。FederationServicesMBean.UsedAssertionCacheProperties
属性を使用して、カスタム・アサーション・キャッシュ・クラスのinitCache()
メソッドに渡されるプロパティを構成できます。これらの属性は、WebLogic Server管理コンソールの「環境」→「サーバー」→「ServerName」→「構成」→「フェデレーション・サービス」→「SAML 1.1宛先サイト」ページで構成できます。
SAMLアサーティング・パーティとは、信頼できるSAMLオーソリティです(SAMLアサーションの形式でセキュリティ情報を厳格にアサートできるエンティティ)。
アサーティング・パーティは、WebLogic Server管理コンソールの「セキュリティ・レルム」→「RealmName」→「プロバイダ」→「認証」→「SAMLIdentityAsserterV2」→「管理: アサーティング・パーティ」ページで構成します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプのSAML 1.1アサーティング・パーティの作成に関する項およびSAML 1.1アサーティング・パーティの構成に関する項を参照してください、
WebLogic Scripting Toolを使用してアサーティング・パーティを構成することもできます。「WLSTを使用したリライイング・パーティとアサーティング・パーティの構成」を参照してください。
次のトピックでは、サーティング・パーティの構成についての詳細を説明します。
SAMLアサーティング・パーティを構成するときに、SAML SSO用としてアーティファクト・プロファイルまたはPOSTプロファイルのサポートを指定できます。かわりに、Webサービス・セキュリティ用としてWSS/Holder-of-KeyプロファイルまたはWSS/Sender-Vouchesプロファイルをサポートするアサーティング・パーティを構成することもできます。
各SAMLアサーティング・パーティでは、ソース・サイトにリダイレクトするときに追加されるゼロ以上のオプション問合せパラメータを構成します。
別のWebLogic Serverインスタンスと通信するWebLogic ServerブラウザSSO構成の場合、アサーティング・パーティITSパラメータのSAMLリライイング・パーティのID (RPID)を設定する必要があります。
ブラウザ・プロファイル構成が機能するためにV2プロバイダとこのパラメータの併用が必要です。つまり、ITSはRPIDをリクエスト受信時のパラメータとして検索し、これを使用して他の処理を実行する前に構成を参照します。
また、RPIDパラメータを使用すると、WebLogic Server対WebLogic ServerブラウザSSO構成専用にターゲットURLパラメータを指定する必要がなくなります。ターゲットURLはWebサービスの構成に使用されます。
SAMLパートナ(リライイング・パーティとアサーティング・パーティ)はレジストリに保持されます。WebLogic Server管理コンソールまたはWebLogic Scripting Toolを使用してSAMLパートナを構成できます。次の例では、WLSTをオンライン・モードで使用して2つのリライイング・パーティを構成する方法を示します。
この例では、リライイング・パーティのアサーション・コンシューマ・サービスのパラメータにSAMLアサーティング・パーティのID (APID)を設定しています。別のWebLogic Serverインスタンスと通信するWebLogic ServerブラウザSSO構成の場合、リライイング・パーティACSパラメータのSAMLアサーティング・パーティのID (APID)を設定する必要があります。(アサーティング・パーティITSパラメータにSAMLリライイング・パーティのID (RPID)も設定します。)
この例で参照される証明書の別名demoidentity
は、ドメインのソース・サイトのデモSSL IDからのものです。
APIDは、WebLogic Server対WebLogic ServerブラウザSSO構成にのみ必要になります。ブラウザ・プロファイル構成が機能するためにV2プロバイダとこのパラメータの併用が必要です。
例22-1 WLSTを使用したリライイング・パーティの作成
connect('weblogic','weblogic','t3://localhost:7001') rlm=cmo.getSecurityConfiguration().getDefaultRealm() cm=rlm.lookupCredentialMapper('samlv2cm') rp=cm.newRelyingParty() rp.setDescription('test post profile') rp.setProfile('Browser/POST') rp.setAssertionConsumerURL('http://domain.example.com:7001/saml_destination/acs') rp.setAssertionConsumerParams(array(['APID=ap_00001'],String)) rp.setSignedAssertions(true) rp.setEnabled(true) cm.addRelyingParty(rp) rp=cm.newRelyingParty() rp.setDescription('test artifact profile') rp.setProfile('Browser/Artifact') rp.setAssertionConsumerURL('http://domain.example.com:7001/saml_destination/acs') rp.setAssertionConsumerParams(array(['APID=ap_00002'],String)) rp.setARSUsername('foo') rp.setARSPassword('password') rp.setSSLClientCertAlias('demoidentity') rp.setEnabled(true) cm.addRelyingParty(rp) disconnect() exit()
次の例では、既存のアサーティング・パーティを編集する方法を示します。この例では、アサーティング・パーティIDを使用してアサーティング・パーティを取得し、アサーション検索URLを設定しています。
例22-2 WLSTを使用したアサーティング・パーティの編集
connect('weblogic','weblogic','t3://localhost:7001') rlm=cmo.getSecurityConfiguration().getDefaultRealm() ia=rlm.lookupAuthenticationProvider('samlv2ia') ap=ia.getAssertingParty('ap_00002') ap.setAssertionRetrievalURL('https://hostname:7002/samlars/ars') ia.updateAssertingParty(ap) disconnect() exit()