プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティの管理
12c (12.2.1.3.0)
E90347-06
目次へ移動
目次

前
次

23 SAML 1.1サービスの構成

SAML 1.1を使用するWebブラウザとHTTPクライアントでのシングル・サインオンの構成方法を学習します。

サードパーティのSAMLリライイング・パーティによって要求される固有のSAML 1.1アサーション属性に件名をマッピングするカスタムSAML名前マッパーを作成する方法に関する詳細は、前述の項で説明されるトピックに加え、『WebLogicセキュリティ・サービスによるアプリケーションの開発』の非WebLogic SAML 1.1リライイング・パーティ用アサーションの作成に関する項を参照してください。

この章には次のトピックが含まれます:

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.enableURLRewritingtrueに設定します。たとえば、これは、WebLogic Serverを起動するJavaコマンドで次のオプションを指定して行うことができます。

-Dweblogic.security.saml.enableURLRewriting=true

ソース・サイトの構成: 主なステップ

WebLogic Serverインスタンスをソース・サイトとして構成するには、次の主なステップを実行します:

  1. 使用するセキュリティ・レルムで、SAML資格証明マッピング・プロバイダV2を作成して構成します。
  2. レルム内でソース・サイトとして機能するサーバー・インスタンスのフェデレーション・サービスを構成します。
  3. 生成されるSAMLアサーションのリライイング・パーティを作成し、構成します。
  4. ソース・サイトへの接続にSSL証明書を使用するようにリライイング・パーティを設定する場合は、SAML資格証明マッピング・プロバイダの証明書レジストリにそれらの証明書を追加します。

宛先サイトの構成: 主なステップ

WebLogic Serverインスタンスを宛先サイトとして構成するには、次の主なステップを実行します:

  1. 使用するセキュリティ・レルムで、SAML IDアサーション・プロバイダV2を作成して構成します。
  2. レルム内で宛先サイトとして機能するサーバー・インスタンスのフェデレーション・サービスを構成します。
  3. 消費されるSAMLアサーションのアサーティング・パーティを作成し、構成します。
  4. 宛先サイトのSSL証明書を、SAML IDアサーション・プロバイダが保持する証明書レジストリに登録することによって、信頼を確立します。

シングル・サインオン用のSAML 1.1ソース・サイトの構成

WebLogic ServerインスタンスをSAML 1.1ソース・サイトとして構成する方法を学習します。

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の値は、表23-1に示されています。

    表23-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.arsRequiresSSLtrueに設定することで、アサーション検索サービスへのすべてのアクセスでSSLを使用するようにできます。arsRequiresSSLARSRequiresTwoWaySSLの両方を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ソース・サイト」ページで構成します。

シングル・サインオン用のSAML 1.1宛先サイトの構成

WebLogic ServerをSAML宛先サイトとして構成する方法を学習します。

SAML IDアサーション・プロバイダの構成

使用するセキュリティ・レルムで、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宛先サイトの有効化

「宛先サイトを有効化」をtrueに設定して、WebLogic ServerインスタンスがSAML宛先サイトとして動作するようにします。

アサーション・コンシューマURIの設定

SAMLアサーション・コンシューマ・サービスのURIを設定します。ソース・サイトからアサーションを受信するURLです。これにより、宛先サイトはアサーションを使用してユーザーを認証できます。アサーション・コンシューマURIは、リライイング・パーティの構成でも指定されます。

アサーション・コンシューマ・サービス用のSSLの構成

FederationServicesMBean.acsRequiresSSLtrueに設定することで、アサーション・コンシューマ・サービスへのすべてのアクセスでSSLを使用するように設定できます。

SSLクライアントID証明書の追加

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宛先サイト」ページで構成できます。

POSTプロファイルに対する受信者チェックの構成

必要に応じて、SAMLレスポンスの受信者はHTTPリクエスト内のURLに一致しなければならないように設定できます。これを行うには、「POST受信者チェックを有効化」属性を設定します。

アサーティング・パーティの構成

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プロファイルをサポートするアサーティング・パーティを構成することもできます。

ソース・サイトITSパラメータの構成

各SAMLアサーティング・パーティでは、ソース・サイトにリダイレクトするときに追加されるゼロ以上のオプション問合せパラメータを構成します。

別のWebLogic Serverインスタンスと通信するWebLogic ServerブラウザSSO構成の場合、アサーティング・パーティITSパラメータのSAMLリライイング・パーティのID (RPID)を設定する必要があります。

ブラウザ・プロファイル構成が機能するためにV2プロバイダとこのパラメータの併用が必要です。つまり、ITSはRPIDをリクエスト受信時のパラメータとして検索し、これを使用して他の処理を実行する前に構成を参照します。

また、RPIDパラメータを使用すると、WebLogic Server対WebLogic ServerブラウザSSO構成専用にターゲットURLパラメータを指定する必要がなくなります。ターゲットURLはWebサービスの構成に使用されます。

WLSTを使用したリライイング・パーティとアサーティング・パーティの構成

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プロバイダとこのパラメータの併用が必要です。

例23-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を設定しています。

例23-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()