ナビゲーションをスキップ

WebLogic Server のセキュリティ

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

Web ブラウザと HTTP クライアントによるシングル サインオンのコンフィグレーション

この章では、Security Assertion Markup Language 1.1 (SAML) に基づく認証を使用して、Web ブラウザまたはその他の HTTP クライアントによるシングル サインオン (SSO) を設定する方法について説明します。

 


SAML ベースのシングル サインオンの概要

WebLogic Server では Security Assertion Markup Language (SAML) の使用がサポートされています。SAML を使用すると、WebLogic Server ドメインで実行されている Web アプリケーションまたは Web サービスと、Web ブラウザまたはその他の HTTP クライアントの間でクロスプラットフォーム認証を実行できます。これにより、シングル サインオン (SSO) が実現されます。つまり、SSO コンフィグレーションに含まれるあるサイトで認証されたユーザは、同じ SSO コンフィグレーション内の他のサイトで新たにログインする必要がなくなります。

SAML SSO の仕組みは次のとおりです。

  1. Web ユーザが SAML ソース サイトの認証を受けます。
  2. SAML アサーションを介して認証を受け付けるようコンフィグレーションされている送り先サイトの対象リソースにユーザがアクセスしようとします。
  3. 1 つまたは複数の手順 (リダイレクトなど) を経て、ユーザはソース サイトのサイト間転送サービス (ITS) に到達します。ITS として動作するのは、WebLogic Server SAML 資格マッピング プロバイダです。ITS によって、ユーザを認証するセキュリティ アサーションが作成されます。
  4. 一連の HTTP 交換を経て、ユーザのブラウザが SAML 送り先サイトのアサーション コンシューマ サービス (ACS) に転送されます。ACS として動作するのは、WebLogic Server SAML ID アサーション プロバイダです。
  5. ソース サイトによって提供され、ユーザと対象リソースに関連付けられた SAML アサーションの情報が、プロトコル交換によってソース サイトから送り先サイトにコピーされます。
  6. 送り先サイトの ACS は、アサーションと対象リソース情報の両方を調べ、対象リソースへのアクセスを許可するかどうかを決定します。アクセスが認可されると、ソース サイトから発生したユーザが認証ユーザとして送り先サイトに受け付けられます。これによって、Web ベースの SSO が実現されます。

WebLogic Server による SAML の実装については、『WebLogic Security について』の「Web ブラウザと HTTP クライアント」と「SAML ソース サイトとして動作する WebLogic Server」を参照してください。Web サービスへのセキュリティの追加の詳細については、『WebLogic Web サービス プログラマーズ ガイド』の「セキュリティのコンフィグレーション」を参照してください。

SAML の詳細については、http://www.oasis-open.org を参照してください。

 


SAML でのシングル サインオン : 主な手順

WebLogic Server をコンフィグレーションして SAML シングル サインオンを使用するには、SAML ソース サイトと SAML 送り先サイトとしての役割のサポートをコンフィグレーションする必要があります。

WebLogic Server を SAML SSO のソース サイトとしてコンフィグレーションする主な手順は次のとおりです。

  1. 使用するセキュリティ レルムで SAML 資格マッピング プロバイダを作成し、コンフィグレーションします。「SAML 資格マッピング プロバイダのコンフィグレーション」を参照してください。
  2. サーバのソース サイト フェデレーション サービスをコンフィグレーションします。
  3. SAML アサーションが生成される SAML リライイング パーティを作成し、コンフィグレーションします。
  4. アサーション検索サービスへの接続に SSL 証明書を使用するように SAML リライイング パーティを設定する場合は、SAML 資格マッピング プロバイダの証明書レジストリに該当する証明書を追加します。

これらの手順の詳細は、「シングル サインオン用の SAML ソース サイトのコンフィグレーション」で説明されています。

WebLogic Server を SAML SSO の送り先サイトとしてコンフィグレーションする主な手順は次のとおりです。

  1. 使用するセキュリティ レルムで SAML ID アサーション プロバイダを作成し、コンフィグレーションします。「SAML ID アサーション プロバイダのコンフィグレーション」を参照してください。
  2. サーバの送り先サイト フェデレーション サービスをコンフィグレーションします。
  3. SAML アサーションが消費される SAML アサーティング パーティを作成し、コンフィグレーションします。
  4. ソース サイトの SSL 証明書を、SAML ID アサーション プロバイダが保持する証明書レジストリに登録することによって、信頼を確立します。「証明書レジストリ」を参照してください。

これらの手順の詳細は、「シングル サインオン用の SAML 送り先サイトのコンフィグレーション」で説明されています。

 


シングル サインオン用の SAML ソース サイトのコンフィグレーション

この節では、WebLogic Server を SAML ソース サイトとしてコンフィグレーションする方法について説明します。

SAML 資格マッピング プロバイダのコンフィグレーション

使用するセキュリティ レルムで、SAML 資格マッピング プロバイダ V2 のインスタンスを作成します。SAML 資格マッピング プロバイダは、デフォルト セキュリティ レルムの一部ではありません。「SAML 資格マッピング プロバイダのコンフィグレーション」を参照してください。

SAML 資格マッピング プロバイダを SAML 認証局としてコンフィグレーションするには、[発行者 URI]、[名前修飾子] などの属性を設定します。

ソース サイト フェデレーション サービスのコンフィグレーション

WebLogic を SAML ソース サイトとしてコンフィグレーションする前に、まず使用するセキュリティ レルムで、SAML 資格マッピング プロバイダ V2 のインスタンスを作成する必要があります。WebLogic Server インスタンスの SAML ソース サイトとしてのコンフィグレーションは FederationServicesMBean によって制御されます。FederationServicesMBean には、WebLogic Scripting Tool または Administration Console ([環境|サーバ|ServerName|コンフィグレーション|フェデレーション サービス|SAML 1.1 ソース サイト] ページ) を使用してアクセスできます。Administration Console オンライン ヘルプの「SAML ソース サービスのコンフィグレーション」を参照してください。

以下の SAML ソース サイト属性をコンフィグレーションします。

SAML ソース サイトの有効化

Source Site Enabled ([ソース サイトを有効化]) を true に設定して、WebLogic Server インスタンスが SAML ソース サイトとして動作するようにします。

ソース サイト URL とサービス URI

SAML ソース サイトの URL を設定します。これは、サイト間転送サービスおよびアサーション検索サービスをホストする URL です。ソース サイト URL は、ソース ID として 16 進数および Base64 でエンコードされます。ブラウザ/アーティファクト プロファイルの SAML アサーティング パーティをコンフィグレーションするときに、このエンコードされたソース ID を指定します。

サイト間転送サービスおよび (ブラウザ/アーティファクト プロファイルをサポートするために) アサーション検索サービスの URI も指定します。これらの URI は、アサーティング パーティのコンフィグレーションでも指定されます。

署名用の証明書

SAML ソース サイトでは、アサーションの署名に使用される信頼性のある証明書が必要になります。キーストアにこの証明書を追加して、この証明書へのアクセスに使用される資格 (エリアスとパスワード) を入力します。署名用のエリアスとパスワードが指定されていない場合、デフォルトではサーバの SSL ID キー/証明書が使用されます。

アサーション検索サービス用の SSL のコンフィグレーション

FederationServicesMBean.arsRequiresSSL を true に設定することで、アサーション検索サービスへのすべてのアクセスで SSL を使用するように設定できます。arsRequiresSSLARSRequiresTwoWaySSL の両方を true に設定することで、アサーション検索サービスに対する双方向 SSL 認証を要求できます。

リライイング パーティのコンフィグレーション

SAML リライイング パーティは、SAML ソース サイトによって生成される SAML アサーションの情報によって変わるエンティティです。WebLogic Server が SAML アサーションを生成する方法は、それらのアサーションを消費するパートナごとに別々にコンフィグレーションできます。フェデレーション サービス ソース サイトのコンフィグレーションではアサーション生成のデフォルトが設定されますが、こうしたデフォルトはリライイング パーティごとにオーバーライドできます。

リライイング パーティは、Administration Console の [セキュリティ レルム|RealmName|プロバイダ|資格マッピング|SAMLCredentialMapperName|管理|リライイング パーティ] ページでコンフィグレーションできます。Administration Console オンライン ヘルプの「SAML リライイング パーティの作成」および「SAML リライイング パーティのコンフィグレーション」を参照してください。

WebLogic Scripting Tool を使用してリライイング パーティをコンフィグレーションすることもできます。「WLST を使用したリライイング パーティとアサーティング パーティのコンフィグレーション」を参照してください。

サポートされるプロファイルのコンフィグレーション

SAML リライイング パーティをコンフィグレーションするときに、SAML SSO 用としてアーティファクト プロファイルまたは POST プロファイルのサポートを指定できます。代わりに、Web サービス セキュリティ用として WSS/Holder-of-Key プロファイルまたは WSS/Sender-Vouches プロファイルをサポートするリライイング パーティをコンフィグレーションすることもできます。SAML 送り先サイトがサポートするプロファイルのサポートをコンフィグレーションしてください。

POST プロファイルをサポートする場合は、必要に応じて、リライイング パーティの POST プロファイル アサーションで使用するフォームを作成し、そのパス名を [POST フォーム] 属性に設定します。

アサーション コンシューマ パラメータ

各 SAML リライイング パーティに対して、送り先サイトへのリダイレクト時に ACS URL に付加される 1 つまたは複数のクエリ パラメータ (パートナ ID など) を任意でコンフィグレーションできます。POST プロファイルの場合、デフォルトの POST フォームの使用時にこれらのパラメータがフォーム変数として組み込まれます。カスタム POST フォームを使用する場合、パラメータは名前と値のマップとして使用できますが、そのフォームで POST されるデータにパラメータが含まれる場合とそうでない場合があります。

アサーション ストア

WebLogic Server では、単純なアサーション ストアを使用して、生成されるアサーションの永続性を保持します。このアサーション ストアを、weblogic.security.providers.saml.AssertionStoreV2 を実装するカスタム アサーション ストア クラスに置き換えることができます。FederationServicesMBean.AssertionStoreClassName 属性を使用して、デフォルトのクラスではなく、カスタム アサーション ストア クラスを使用するように WebLogic Server をコンフィグレーションします。FederationServicesMBean.AssertionStoreProperties 属性を使用して、カスタム アサーション ストア クラスの initStore() メソッドに渡されるプロパティをコンフィグレーションできます。これらの属性は、Administration Console の [環境|サーバ|ServerName|コンフィグレーション|フェデレーション サービス|SAML 1.1 ソース サイト] ページでコンフィグレーションできます。

 


シングル サインオン用の SAML 送り先サイトのコンフィグレーション

この節では、WebLogic Server を SAML 送り先サイトとしてコンフィグレーションする方法について説明します。

SAML ID アサーション プロバイダのコンフィグレーション

使用するセキュリティ レルムで、SAML ID アサーション プロバイダ V2 のインスタンスを作成し、コンフィグレーションします。SAML ID アサーション プロバイダは、デフォルト セキュリティ レルムの一部ではありません。「SAML ID アサーション プロバイダのコンフィグレーション」を参照してください。

送り先サイト フェデレーション サービスのコンフィグレーション

WebLogic を SAML 送り先サイトとしてコンフィグレーションする前に、まず使用するセキュリティ レルムで、SAML ID アサーション プロバイダ V2 のインスタンスを作成する必要があります。WebLogic Server インスタンスの SAML 送り先サイトとしてのコンフィグレーションは FederationServicesMBean によって制御されます。FederationServicesMBean には、WebLogic Scripting Tool または Administration Console ([環境|サーバ|ServerName|コンフィグレーション|フェデレーション サービス|SAML 1.1 送り先サイト] ページ) を使用してアクセスできます。

以下の SAML 送り先サイト属性をコンフィグレーションします。

SAML 送り先サイトの有効化

Destination Site Enabled ([送り先サイトを有効化]) を true に設定して、WebLogic Server インスタンスが SAML 送り先サイトとして動作するようにします。

アサーション コンシューマ URI

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

アサーション コンシューマ サービス用の SSL のコンフィグレーション

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

SSL クライアント ID 証明書

SAML 送り先サイトでは、POST プロファイル応答の署名に使用される信頼性のある証明書が使用されます。キーストアにこの証明書を追加して、この証明書へのアクセスに使用される資格 (エリアスとパスワード) を入力します。

使い捨てポリシーと使用済みアサーション キャッシュ

必要に応じて、各 POST プロファイル アサーションの使用を 1 回のみに設定できます。アサーションの使い捨てポリシーをサポートできるように、WebLogic Server には使用済みのアサーションのキャッシュが保持されています。このアサーション キャッシュを、weblogic.security.providers.saml.SAMLUsedAssertionCache を実装するカスタム アサーション キャッシュ クラスに置き換えることができます。FederationServicesMBean.SAMLUsedAssertionCache 属性を使用して、デフォルトのクラスではなく、カスタム アサーション キャッシュ クラスを使用するように WebLogic Server をコンフィグレーションします。FederationServicesMBean.UsedAssertionCacheProperties 属性を使用して、カスタム アサーション キャッシュ クラスの initCache() メソッドに渡されるプロパティをコンフィグレーションできます。これらの属性は、Administration Console の [環境|サーバ|ServerName|コンフィグレーション|フェデレーション サービス|SAML 1.1 送り先サイト] ページでコンフィグレーションできます。

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

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

アサーティング パーティのコンフィグレーション

SAML アサーティング パーティは、信頼性のある SAML 認証局 (SAML アサーションの形式でセキュリティ情報をアサートする権限を持つエンティティ) です。アサーティング パーティは、Administration Console の [セキュリティ レルム|RealmName|プロバイダ|資格マッピング|SAMLCredentialMapperName|管理|アサーティング パーティ] ページでコンフィグレーションできます。Administration Console オンライン ヘルプの「SAML アサーティング パーティの作成」および「SAML アサーティング パーティのコンフィグレーション」を参照してください。

WebLogic Scripting Tool を使用してアサーティング パーティをコンフィグレーションすることもできます。「WLST を使用したリライイング パーティとアサーティング パーティのコンフィグレーション」を参照してください。

サポートされるプロファイルのコンフィグレーション

SAML アサーティング パーティをコンフィグレーションするときに、SAML SSO 用としてアーティファクト プロファイルまたは POST プロファイルのサポートを指定できます。代わりに、Web サービス セキュリティ用として WSS/Holder-of-Key または WSS/Sender-Vouches プロファイルをサポートするアサーティング パーティをコンフィグレーションすることもできます。

ソース サイト ITS パラメータ

各 SAML アサーティング パーティに対して、ソース サイトへのリダイレクト時に ITS URL に付加されるゼロまたはそれ以上のクエリ パラメータ (パートナ ID など) を任意でコンフィグレーションできます。

WLST を使用したリライイング パーティとアサーティング パーティのコンフィグレーション

SAML パートナ (リライイング パーティとアサーティング パーティ) はレジストリに保持されます。WebLogic Administration Console または WebLogic Scripting Tool を使用して SAML パートナをコンフィグレーションできます。次の例では、WLST をオンライン モードで使用して 2 つのリライイング パーティをコンフィグレーションする方法を示します。

コード リスト 7-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('bar')
rp.setSSLClientCertAlias('demoidentity')
rp.setEnabled(true)
cm.addRelyingParty(rp)
disconnect()
exit()

次の例では、既存のアサーティング パーティを編集する方法を示します。この例では、アサーティング パーティ ID を使用してアサーティング パーティを取得し、アサーション検索 URL を設定しています。

コード リスト 7-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()

 

フッタのナビゲーションのスキップ  ページの先頭 前 次