WebLogic Server のセキュリティ

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

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

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

 


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

Security Assertion Markup Language (SAML) を使用すると、WebLogic Server ドメインで実行されている Web アプリケーションまたは Web サービスと、Web ブラウザまたはその他の HTTP クライアントの間でクロスプラットフォーム認証を実行できます。WebLogic Server では SAML に基づくシングル サインオン (SSO) がサポートされています。シングル サインオン (SSO) コンフィグレーションに参加する 1 つのサイトでユーザが認証されると、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 について』の「SAML の使用による Web ブラウザと HTTP クライアント」と「SAML ソース サイトとして動作する WebLogic Server」を参照してください。Web サービスへのセキュリティの追加の詳細については、『WebLogic Web サービス プログラマーズ ガイド』の「セキュリティのコンフィグレーション」を参照してください。

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

 


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

SAML でのシングル サインオンを有効にするには、WebLogic Server を SAML ソース サイトおよび SAML 送り先サイトとしてコンフィグレーションします。この節では主な手順を概説します。詳細については、「シングル サインオン用の SAML ソース サイトのコンフィグレーション」と「シングル サインオン用の SAML 送り先サイトのコンフィグレーション」で説明します。

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

 


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

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

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

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

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

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

WebLogic Server インスタンスの SAML ソース サイトとしてのコンフィグレーションは FederationServicesMBean によって制御されます。FederationServicesMBean には、WebLogic Scripting Tool または Administration Console ([環境 : サーバ : ServerName : コンフィグレーション : フェデレーション サービス : SAML 1.1 ソース サイト] ページ) を使用してアクセスします。Administration Console オンライン ヘルプの「SAML ソース サービスのコンフィグレーション」を参照してください。

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

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

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 送り先サイトの有効化

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

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

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

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

FederationServicesMBean.acsRequiresSSL を 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()

  ページの先頭       前  次