WebLogic Server のセキュリティ
![]() |
![]() |
![]() |
![]() |
この章では、Security Assertion Markup Language 1.1 (SAML) に基づく認証を使用して、Web ブラウザまたはその他の HTTP クライアントによるシングル サインオン (SSO) を設定する方法について説明します。
WebLogic Server では Security Assertion Markup Language (SAML) の使用がサポートされています。SAML を使用すると、WebLogic Server ドメインで実行されている Web アプリケーションまたは Web サービスと、Web ブラウザまたはその他の HTTP クライアントの間でクロスプラットフォーム認証を実行できます。これにより、シングル サインオン (SSO) が実現されます。つまり、SSO コンフィグレーションに含まれるあるサイトで認証されたユーザは、同じ SSO コンフィグレーション内の他のサイトで新たにログインする必要がなくなります。
WebLogic Server による SAML の実装については、『WebLogic Security について』の「Web ブラウザと HTTP クライアント」と「SAML ソース サイトとして動作する WebLogic Server」を参照してください。Web サービスへのセキュリティの追加の詳細については、『WebLogic Web サービス プログラマーズ ガイド』の「セキュリティのコンフィグレーション」を参照してください。
SAML の詳細については、http://www.oasis-open.org を参照してください。
WebLogic Server をコンフィグレーションして SAML シングル サインオンを使用するには、SAML ソース サイトと SAML 送り先サイトとしての役割のサポートをコンフィグレーションする必要があります。
WebLogic Server を SAML SSO のソース サイトとしてコンフィグレーションする主な手順は次のとおりです。
これらの手順の詳細は、「シングル サインオン用の SAML ソース サイトのコンフィグレーション」で説明されています。
WebLogic Server を SAML SSO の送り先サイトとしてコンフィグレーションする主な手順は次のとおりです。
これらの手順の詳細は、「シングル サインオン用の SAML 送り先サイトのコンフィグレーション」で説明されています。
この節では、WebLogic Server を 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 ソース サイト属性をコンフィグレーションします。
Source Site Enabled ([ソース サイトを有効化]) を true に設定して、WebLogic Server インスタンスが SAML ソース サイトとして動作するようにします。
SAML ソース サイトの URL を設定します。これは、サイト間転送サービスおよびアサーション検索サービスをホストする URL です。ソース サイト URL は、ソース ID として 16 進数および Base64 でエンコードされます。ブラウザ/アーティファクト プロファイルの SAML アサーティング パーティをコンフィグレーションするときに、このエンコードされたソース ID を指定します。
サイト間転送サービスおよび (ブラウザ/アーティファクト プロファイルをサポートするために) アサーション検索サービスの URI も指定します。これらの URI は、アサーティング パーティのコンフィグレーションでも指定されます。
SAML ソース サイトでは、アサーションの署名に使用される信頼性のある証明書が必要になります。キーストアにこの証明書を追加して、この証明書へのアクセスに使用される資格 (エリアスとパスワード) を入力します。署名用のエリアスとパスワードが指定されていない場合、デフォルトではサーバの SSL ID キー/証明書が使用されます。
FederationServicesMBean
.arsRequiresSSL
を true に設定することで、アサーション検索サービスへのすべてのアクセスで SSL を使用するように設定できます。arsRequiresSSL
と ARSRequiresTwoWaySSL
の両方を 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 ソース サイト] ページでコンフィグレーションできます。
この節では、WebLogic Server を SAML 送り先サイトとしてコンフィグレーションする方法について説明します。
使用するセキュリティ レルムで、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 送り先サイト属性をコンフィグレーションします。
Destination Site Enabled ([送り先サイトを有効化]) を true に設定して、WebLogic Server インスタンスが SAML 送り先サイトとして動作するようにします。
SAML アサーション コンシューマ サービスの URI を設定します。これは、ソース サイトからアサーションを受信する URL です。これにより、送り先サイトはアサーションを使用してユーザを認証できます。アサーション コンシューマ URI は、リライイング パーティのコンフィグレーションでも指定されます。
FederationServicesMBean
.arsRequiresSSL
を true に設定することで、アサーション コンシューマ サービスへのすべてのアクセスで SSL を使用するように設定できます。
SAML 送り先サイトでは、POST プロファイル応答の署名に使用される信頼性のある証明書が使用されます。キーストアにこの証明書を追加して、この証明書へのアクセスに使用される資格 (エリアスとパスワード) を入力します。
必要に応じて、各 POST プロファイル アサーションの使用を 1 回のみに設定できます。アサーションの使い捨てポリシーをサポートできるように、WebLogic Server には使用済みのアサーションのキャッシュが保持されています。このアサーション キャッシュを、weblogic.security.providers.saml.SAMLUsedAssertionCache
を実装するカスタム アサーション キャッシュ クラスに置き換えることができます。FederationServicesMBean.SAMLUsedAssertionCache
属性を使用して、デフォルトのクラスではなく、カスタム アサーション キャッシュ クラスを使用するように WebLogic Server をコンフィグレーションします。FederationServicesMBean.UsedAssertionCacheProperties
属性を使用して、カスタム アサーション キャッシュ クラスの initCache()
メソッドに渡されるプロパティをコンフィグレーションできます。これらの属性は、Administration Console の [環境|サーバ|ServerName|コンフィグレーション|フェデレーション サービス|SAML 1.1 送り先サイト] ページでコンフィグレーションできます。
必要に応じて、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 プロファイルをサポートするアサーティング パーティをコンフィグレーションすることもできます。
各 SAML アサーティング パーティに対して、ソース サイトへのリダイレクト時に ITS URL に付加されるゼロまたはそれ以上のクエリ パラメータ (パートナ ID など) を任意でコンフィグレーションできます。
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()
![]() ![]() |
![]() |
![]() |