プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティの管理 12.2.1
12c (12.2.1)
E70000-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

9 資格証明マッピング・プロバイダの構成

この章では、WebLogic Serverが提供する資格証明マッピング・プロバイダの構成方法について説明します。

次の内容について説明します。

WebLogic資格証明マッピング・プロバイダの構成

資格証明マッピングとは、リモート・システム(既存のシステムやアプリケーションなど)の認証および認可メカニズムによって適切な資格証明セットを取得して、ターゲットのWebLogicリソースにアクセスしようとするリモート・ユーザーを認証するプロセスです。WebLogic資格証明マッピング・プロバイダは、WebLogic Serverサブジェクトを、リソースへのアクセス時に使用されるユーザー名とパスワードのペアにマップします。

デフォルトでは、WebLogic資格証明マッピング・プロバイダの構成オプションの大部分が定義されています。weblogic-jwt-tokenトークン・タイプの期限切れ間隔を調整するオプションがあり、ドメインで実行されている他のアプリケーションのREST呼出しのアイデンティティを伝播するために、内部的に使用されます。デフォルトでは、この期限切れ間隔は5分に設定されています。ただし、間隔は、このセキュリティ・プロバイダの「プロバイダ固有」構成ページから調整できます。


注意:

WebLogic Serverでは、「資格証明マッピング・デプロイメントを有効化」オプションを使用して、この資格証明マッピング・プロバイダがリソース・アダプタのデプロイメント記述子(weblogic-ra.xmlファイル)からセキュリティ・レルムに資格証明マップをインポートするかどうかを指定できます。ただし、このオプションは現在では非推奨になっています。資格証明マップをweblogic-ra.xmlファイルからデプロイする方法は、WebLogic Serverではサポートされません。

「資格証明マッピング・デプロイメントを有効化」をサポートするには、資格証明マッピング・プロバイダにDeployableCredentialProvider SSPIを実装する必要があります。資格証明マッピング情報は組込みLDAPサーバーに格納されます。

関連項目:

PKI資格証明マッピング・プロバイダの構成

WebLogic ServerのPKI (公開鍵インフラストラクチャ)資格証明マッピング・プロバイダは、WebLogic Serverのサブジェクト(イニシエータ)とターゲット・リソース(および必要であれば資格証明アクション)を、ターゲット・リソースへのアクセス時にアプリケーションで使用できるキー・ペアまたは公開証明書にマップします。PKI資格証明マッピング・プロバイダは、サブジェクトとリソース名を使用して対応する資格証明をキーストアから検索します。

PKI資格証明マッピング・プロバイダを使用するには、次を行う必要があります:

  1. 適切なキーを持つキーストアを構成し、そのキーストアをWebLogic Serverクラスタ内のすべてのマシンに配布します。キーストアのセット・アップは、WebLogic Serverの機能ではありません。キーストアの設定の詳細は、次の場所にあるJava keytoolユーティリティのヘルプを参照してください。

    UNIX:

    http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
    

    Windows:

    http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html
    

    また、WebLogic Serverのキーストアとキーの詳細は、第29章「キーストアの構成」を参照してください。

  2. PKI資格証明マッピング・プロバイダを構成します。PKI資格証明マッピング・プロバイダは、デフォルト・セキュリティ・レルム(myrealm)には構成されていません。「PKI資格証明マッピング属性」と、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ資格証明マッピング・プロバイダの構成に関する項を参照してください。

  3. 資格証明マッピングを作成します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプPKI資格証明マッピングの作成に関する項を参照してください。

PKI資格証明マッピング属性

PKI資格証明マッピング・プロバイダを構成するには、次の属性の値を設定します。Oracle WebLogic Server管理コンソール・オンライン・ヘルプ資格証明マッピング・プロバイダの構成に関する項を参照してください。

  • 「キーストア・プロバイダ」 - Java Security API用のキーストア・プロバイダ。値が指定されていない場合、デフォルトのプロバイダ・クラスが使用されます。

  • 「キーストアの種類」 - JKS (デフォルト)またはPKCS12。

  • 「キーストアのパスフレーズ」 - キーストアへのアクセスに使用するパスワード。

  • 「キーストア・ファイル名」 - サーバーが起動したディレクトリを基準としたキーストアの場所。

さらに、以下の2つの属性を任意で指定すると、一致するリソースまたはサブジェクトが存在しない場合、PKI資格証明マッピング・プロバイダが資格証明マッピングをどのように検索するかを指定できます。

  • 「リソース階層を使用」 - リソースの種類ごとにリソース階層を上ることによって資格証明が検索されます。すべてのPKI資格証明の検索は特定のリソースから開始し、リソース階層を上ってすべての一致を見つけ出します。この属性はデフォルトで有効になっています。

  • 「イニシエータ・グループ名を使用」 - サブジェクトがPKI資格証明マッピング・プロバイダに渡されると、イニシエータがメンバーであるグループを調べることによって資格証明が検索されます。デフォルトでは、これは有効になっています。

資格証明アクション

必要な場合、資格証明マッピングに資格証明アクションというラベルを付けることができます。これは、資格証明マッピングの作成時にWebLogic Server管理コンソールで行えます。資格証明アクションとは、様々な環境で使用される資格証明マッピングを区別する任意の文字列です。たとえば、ある資格証明マッピングでリモート・リソースからのメッセージを復号化し、別の資格証明マッピングで同じリソースへ送られるメッセージに署名するとします。これらの2つの資格証明マッピングを区別するには、サブジェクト・イニシエータとターゲット・リソースでは不十分です。この場合、資格証明アクションを使用して、一方の資格証明マッピングにdecrypt、他方にsignというラベルを付けます。こうすると、PKI資格証明マッピング・プロバイダを呼び出すコンテナが、目的の資格証明アクション値をContextHandlerに指定してプロバイダに渡せるようになります。

PKI資格証明マッピングへの資格証明アクションの追加については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプPKI資格証明マッピングの作成に関する項を参照してください。

SAML 1.1用のSAML資格証明マッピング・プロバイダの構成

WebLogic Serverのこのリリースには、2種類のSAML資格証明マッピング・プロバイダが用意されています。SAML資格証明マッピング・プロバイダ・バージョン2は構成オプションが大幅に拡張されており、新しいデプロイメントにはこのバージョンの使用をお薦めします。SAML資格証明マッピング・プロバイダ・バージョン1はWebLogic Server 9.1で非推奨になりました。セキュリティ・レルムに複数のSAML資格証明マッピング・プロバイダを含めることはできません。また、セキュリティ・レルムにSAML資格証明マッピング・プロバイダとSAML IDアサーション・プロバイダの両方が含まれる場合は、両方のバージョンが同じでなければなりません。バージョン2のSAMLプロバイダと同じセキュリティ・レルム内でバージョン1のSAMLプロバイダを使用しないでください。SAML資格証明マッピング・プロバイダ・バージョン1の構成については、WebLogic Server 9.0ドキュメントの『WebLogic Serverの保護』のSAML資格証明マッピング・プロバイダの構成に関する項(http://docs.oracle.com/docs/cd/E13222_01/wls/docs90/secmanage/providers.html#SAML_cred)を参照してください。

WebLogic ServerのSAMLのサポートについては、『Oracle WebLogic Serverセキュリティの理解』のSAML (Security Assertion Markup Language)に関する項およびWebLogicセキュリティ・フレームワークによるシングル・サインオンに関する項を参照してください。SAML資格証明マッピング・プロバイダをSAMLシングル・サインオン構成で使用する方法は、第21章「SAMLを使用するWebブラウザとHTTPクライアントでのシングル・サインオンの構成」を参照してください。

アサーションの存続期間の構成

SAMLのアサーションの有効性は通常、期間で限定されます。SAML資格証明マッピング・プロバイダで生成されるアサーションのデフォルトの存続時間は、DefaultTimeToLive属性に指定されています。生成されたアサーションのデフォルトの存続時間は、様々なSAMLリライイング・パーティにおいてオーバーライドできます。

通常のアサーションは、NotBefore時間(デフォルトではそのアサーションが生成された(おおよその)時間に設定)から、NotOnOrAfter時間(NotBefore + TimeToLiveで計算)が経過するまで有効です。資格証明マッピング・プロバイダでソース・サイトと宛先サイト間のクロックの差を補うようにするには、SAML資格証明マッピング・プロバイダのDefaultTimeToLiveDelta属性を構成します。この存続時間オフセット値は、アサーションのNotBefore値を「現在の時間」の前後何秒に設定する必要があるのかを示す正の整数または負の整数です。DefaultTimeToLiveDeltaに値を設定すると、アサーションの存続期間は引続き(NotBefore + TimeToLive)として計算されますが、NotBefore値は(now + TimeToLiveDelta)に設定されます。たとえば、次のように設定したとします。

DefaultTimeToLive = 120
DefaultTimeToLiveDelta = -30

この場合アサーションが生成されると、存続期間は2分(120秒)になり、生成される30秒前から開始されます。

リライイング・パーティ・レジストリ

WebLogic ServerをSAMLセキュリティ・アサーションのソースとして機能するように構成する場合には、SAMLアサーションの生成をリクエストできるパーティを登録する必要があります。各SAMLリライイング・パーティに対して、使用するSAMLプロファイル、そのリライイング・パーティの詳細、およびそのリライイング・パーティに対するアサーションで予想される属性を指定できます。詳細は、以下を参照してください。

SAML 2.0用のSAML 2.0資格証明マッピング・プロバイダの構成

WebLogic Serverに含まれているSAML 2.0資格証明マッピング・プロバイダは、以下の用途でIDをアサートするために使用できるSAML 2.0アサーションを生成します。

  • SAML 2.0 Web SSOプロファイル

  • WS-Security SAMLトークン・プロファイル・バージョン1.1

表9-1に、SAML 2.0資格証明マッピング・プロバイダで生成されるアサーション・タイプをまとめます。

表9-1 SAML 2.0資格証明マッピング・プロバイダでサポートされるアサーション・タイプ

アサーション・タイプ 説明
bearer

アサーションのサブジェクトはアサーションを伝達するベアラー。ただし、アサーションの<SubjectConfirmationData>要素に含まれている属性を使用して確認を行うためのオプション制約が適用されます。

SAML 2.0 WebブラウザSSOプロファイルおよびWS-Security SAMLトークン・プロファイル1.1で生成されるすべてのアサーションに使用します。

sender-vouches

サブジェクトとは異なるIDプロバイダが、サブジェクトの検証を保証します。受信側がIDプロバイダとの信頼関係を確立している必要があります。

Webサービス・セキュリティSAMLトークン・プロファイル1.1でのみ使用されます。

holder-of-key

アサーション内で表現されるサブジェクトが、受信側で信頼されていない可能性のあるX.509証明書をサブジェクトで使用して、リクエスト・メッセージの整合性を確保します。

Webサービス・セキュリティSAMLトークン・プロファイル1.1でのみ使用されます。


WebLogic ServerのSAML 2.0のサポートについては、『Oracle WebLogic Serverセキュリティの理解』のSAML (Security Assertion Markup Language)に関する項およびWebLogicセキュリティ・フレームワークによるシングル・サインオンに関する項を参照してください。SAML2.0資格証明マッピング・プロバイダをSAML2.0シングル・サインオン構成で使用する方法は、第21章「SAMLを使用するWebブラウザとHTTPクライアントでのシングル・サインオンの構成」を参照してください。Webサービス用のサービス・プロバイダ・パートナ用に生成されたアサーションの確認方法の指定については、『Oracle WebLogic Server WebLogic Webサービスの保護』のSecurity Assertion Markup Language (SAML)トークンのIDとしての使用に関する項を参照してください。

SAML 2.0資格証明マッピング・プロバイダの属性

SAML 2.0資格証明マッピング・プロバイダの構成は、SAML2CredentialMapperMBeanの属性を設定することで制御できます。SAML2CredentialMapperMBeanにアクセスするには、WebLogic Scripting Tool (WLST)を使用するか、WebLogic Server管理コンソールの「セキュリティ・レルム」「レルム名」「プロバイダ」「資格証明マッピング」ページでSAML2CredentialMapperを作成または選択します。これらの属性の詳細は、Oracle WebLogic Server MBeanリファレンスSAML2CredentialMapperMBeanに関する項を参照してください。

SAML 2.0資格証明マッピング・プロバイダを構成するには、以下の属性を設定します。

  • 発行者URI

    このセキュリティ・プロバイダの名前です。サーバーごとのSAML 2.0プロパティを構成できる「SAML 2.0全般」ページでエンティティIDとして指定されている値と一致させる必要があります。

  • 名前修飾子

    名前マッパー・クラスで、サブジェクトの名前を修飾するセキュリティ・ドメインまたは管理ドメインとして使用します。名前修飾子を使用することで、サブジェクト名の競合を回避しながら、まったく別のユーザー・ストアから名前を結合することが可能になります。

  • アサーションの存続期間

    生成されたアサーションが使用される可能性がある存続期間を制限する値です。有効期限を過ぎたアサーションは使用できなくなります。

  • キーの別名とパスワードに署名するWebサービス・アサーション

    生成されたアサーションに署名するために使用します。

  • カスタム名前マッパー・クラス

    SAML 2.0資格証明マッピング・プロバイダのデフォルトの名前マッパー・クラスをオーバーライドするカスタムJavaクラスです。サブジェクトを、アサーションに含まれるID情報にマップします。

  • 属性の生成

    生成するアサーションに、認証済みのサブジェクトに関連付けられているグループ・メンバーシップ情報を含めるかどうかを指定します。

サービス・プロバイダ・パートナ

WebLogic ServerをIDプロバイダとして機能するように構成する場合は、SAML 2.0アサーションを生成するサービス・プロバイダ・パートナを作成して構成する必要があります。IDプロバイダ・サイトでアサーションを生成する必要が生じたときには、アサーションを生成すべきサービス・プロバイダ・パートナがSAML 2.0資格証明マッピング・プロバイダによって特定され、そのサービス・プロバイダ・パートナの構成に従ってアサーションが生成されます。

サービス・プロバイダ・パートナを構成する方法、およびそのパートナに構成する固有の情報は、パートナをWebシングル・サインオンに使用するかWebサービスに使用するかによって変わってきます。Webシングル・サインオン用のサービス・プロバイダ・パートナの場合は、パートナのメタデータ・ファイルをインポートし、そのパートナに関する以下のような基本情報を追加で指定する必要があります。

  • SAMLドキュメント(認証レスポンス、SAMLアーティファクト、アーティファクト・リクエストなど)に署名する必要があるかどうか

  • このパートナから受け取った署名付きドキュメントの検証に使用する証明書

  • SAMLアーティファクトをこのパートナに送信するために使用するバインディング

  • このパートナがローカル・サイトのバインディングに接続する際に使用するクライアントのユーザー名とパスワード

Webシングル・サインオン用のサービス・プロバイダ・パートナの構成については、以下を参照してください。

Webサービス用のサービス・プロバイダ・パートナの構成ではメタデータ・ファイルは使用しませんが、そのパートナに関する次の情報を指定する必要があります。

  • オーディエンスURI。このパートナ用に生成されるアサーションに含めるオーディエンス制約を指定します。

    WebLogic Serverでは、Webサービス・ランタイムがパートナの検索に使用するパートナ検索文字列を保持する必要もあるため、オーディエンスURI属性がオーバーロードされています。「Webサービス・パートナに必要なパートナ検索文字列」を参照してください。

  • デフォルトの名前マッパーをオーバーライドするカスタム名前マッパー・クラス。このマッパー・クラスは、このパートナでのみ使用します。

  • このパートナ用に生成されるアサーションの有効期間属性を指定する値。

  • このパートナから受け取ったアサーションの確認方法。

Webサービス用のサービス・プロバイダ・パートナの構成の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプSAML 2.0 Webサービス・サービス・プロバイダ・パートナの作成に関する項を参照してください。

Webサービス・パートナに必要なパートナ・ルックアップ文字列

Webサービス用のサービス・プロバイダ・パートナの場合は、オーディエンスURIも構成します。WebLogic Serverでは、以下のまったく異なる2つの用途に使用できるよう、オーディエンスURI属性がオーバーロードされています。

  • OASIS SAML 2.0仕様に従って、ターゲット・サービスのURLからなるオーディエンス制約を指定します。

  • パートナ・ルックアップ文字列を保持します。WebLogic Serverでは、実行時にこのルックアップ文字列を使用して、SAML 2.0アサーションの生成に使用するサービス・プロバイダ・パートナを見つけます。

パートナ・ルックアップ文字列には、パートナ・ルックアップに使用するエンドポイントURLを指定します。必要に応じて、生成するアサーションに含めるオーディエンスURI制約として使用することもできます。オーディエンスURIとしても使用できるパートナ・ルックアップ文字列を指定することで、特定のターゲットURLを2箇所(検索とオーディエンス制約)に指定する必要がなくなります。


注意:

パートナ・ルックアップ文字列は、Webサービス・ランタイムが実行時にサービス・プロバイダ・パートナを見つけられるように構成する必要があります。

ルックアップ文字列の構文

パートナ・ルックアップ文字列の構文は次のとおりです。

[target:char:]<endpoint-url>

この構文で、target:char:はパートナ・ルックアップ文字列を指定する接頭辞、charはハイフン(-)、プラス記号(+)、またはアスタリスク(*)のいずれか1つの特殊文字を表します。表9-2に示すように、この接頭辞によってパートナ・ルックアップの実行方法が決まります。

表9-2 サービス・プロバイダ・パートナ・ルックアップ文字列の構文

ルックアップ文字列 説明
target:-:<endpoint-url>

URL <endpoint-url>に完全に一致するパートナを検索します。たとえば、target:-:http://www.avitek.com:7001/myserver/myservicecontext/myservice-endpointの場合は、アサーションの生成に使用するサービス・プロバイダに一致する可能性のあるエンドポイントを直接指定しています。

この形式のパートナ・ルックアップ文字列の場合、エンドポイントURLは、生成されるアサーションのオーディエンスURIとしては追加されません。

target:+:<endpoint-url>

URL <endpoint-url>に完全に一致するパートナを検索します。

プラス記号(+)をルックアップ文字列で使用すると、このサービス・プロバイダ・パートナ用に生成されるアサーション内のオーディエンスURIとして、エンドポイントURLが追加されます。

target:*:<endpoint-url>

文字列の先頭のパターンがURL <endpoint-url>に一致するパートナを検索します。たとえば、target:*:http://www.avitek.com:7001/myserverの場合は、http://www.avitek.com:7001/myserver/contextA/endpointAhttp://www.avitek.com:7001/myserver/contextB/endpointBなど、http://www.avitek.com:7001/myserverで始まるすべてのエンドポイントURLが、このサービス・プロバイダに一致します。

先頭の文字列パターンに一致するサービス・プロバイダ・パートナが複数見つかった場合は、一致した文字列パターンが最も長いパートナが選択されます。

この形式のパートナ・ルックアップ文字列の場合、エンドポイントURLは、生成されるアサーションのオーディエンスURIとしては追加されません。



注意:

実行時にサービス・プロバイダ・パートナが見つかるようにするため、1つのパートナに1つ以上のパートナ・ルックアップ文字列を構成する必要があります。パートナが見つからない場合、そのパートナのアサーションは生成できません。

targetルックアップ接頭辞を使用せずにエンドポイントURLを構成すると、従来のオーディエンスURIとして扱われるため、このサービス・プロバイダ・パートナ用に生成するアサーションに必ずオーディエンスURIを含める必要があります(これにより、このパートナに構成されている既存のオーディエンスURIとの後方互換性も確保できます。)


デフォルト・パートナの指定

デフォルトのサービス・プロバイダ・パートナ・エントリを指定したい場合は、1つまたは複数のデフォルト・パートナのオーディエンスURIエントリに、すべてのターゲットの有効なワイルドカード一致を含めることができます。実際のワイルドカードURIは、Webサービス・ランタイムが使用する特定の形式に合わせる必要があります。例:

  • target:*:http://

  • target:*:https://

パートナ証明書の管理

SAML 2.0資格証明マッピング・プロバイダは、Webシングル・サインオン用に構成されたパートナごとに、信頼性のある証明書を管理しています。パートナとメッセージを交換している間に署名付きの認証またはアーティファクト・リクエストを受け取ると、信頼性のある証明書を使用してパートナの署名を検証します。パートナの証明書は、以下の用途に使用します。

  • SAML 2.0資格証明マッピング・プロバイダで署名付き認証リクエストまたはアーティファクト・リクエストを受け取ったときに信頼性を検証するため

  • アーティファクト解決サービス(ARS)からSSL接続経由でSAMLアーティファクトを取得しているサービス・プロバイダ・パートナの信頼性を検証するため

WebLogic Server管理コンソールでは、構成したSAML 2.0資格証明マッピング・プロバイダのパートナ管理ページで、Webシングル・サインオン・サービス・プロバイダ・パートナの署名用証明書とトランスポート層クライアント証明書を表示できます。

サービス・プロバイダ・パートナの属性を構成するためのJavaインタフェース

Webサービス・パートナで使用できる操作の詳細は、Oracle WebLogic Server Java APIリファレンス「com.bea.security.saml2.providers.registry.Partner Java」インタフェースを参照してください。