プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理
12c (12.2.1.3.0)
E90181-03
目次へ移動
目次

前
次

7 Webサービスのメッセージ保護の構成

このトピックでは、メッセージ保護の構成を紹介し、説明します。この章では、セキュリティ・ポリシーを使用するために、Fusion Middleware ControlおよびWebLogic Server環境を構成する必要があります。SSLセキュリティ・ポリシーによるメッセージ保護および認証、またはメッセージ保護セキュリティ・ポリシーを使用するには、キーストアおよびトラストストアを設定する必要があります。(認証のみのセキュリティ・ポリシーでは鍵は不要です。)

トピック:

7.1 Webサービスのメッセージ保護の構成の概要

メッセージを保護するには、メッセージの機密保持の場合はメッセージを暗号化し、メッセージ整合性の場合はメッセージに署名する必要があります。OWSM事前定義済ポリシー、およびいずれかのメッセージ保護アサーション・テンプレートを使用して作成したポリシーにより、メッセージの機密保持またはメッセージ整合性(あるいはその両方)のオプションが提供されます。

次の手順は、メッセージが保護されるよう、クライアントおよびサービスを構成するために実行が必要な操作をまとめたものです。

  • 適切なメッセージ保護ポリシーをクライアントおよびサービスのそれぞれにアタッチします。

    注意: メッセージ保護のみのポリシーは、リクエスタの認証または認可を行いません。

  • メッセージ整合性が必要な場合には、メッセージに署名します。

  • メッセージ機密保護が必要な場合には、メッセージを暗号化します。

  • 必要な公開鍵と秘密鍵を、クライアントおよびサービスのキーストアに追加します。この手順を実行するには、「メッセージ保護に関するキーストアの構成の概要」の説明に従って、キーストアを構成しておく必要があります。

SOAPメッセージの署名および暗号化のために、WebLogicドメインのOWSMキーストアに格納する公開/秘密の署名/暗号化鍵を使用します。キーストア構成はドメイン全体に適用されるため、ドメイン内のすべてのWebサービスおよびWebサービス・クライアントがこのキーストアを使用します。

現在のリリースで使用可能なメッセージ保護ポリシーのサマリーは、「Webサービスに使用する事前定義済ポリシーの決定」「メッセージ保護のみのポリシー」および「メッセージ保護および認証のポリシー」を参照してください。

注意:

OWSMランタイムでは、WebLogic Server管理コンソールにより構成され、「SSLに関するキーストアの構成について」の記載に従ってSSL用に使用されるWebLogic Serverキーストアは使用しません。

7.2 メッセージ保護に関するキーストアの構成の概要

鍵とキーストアにより、メッセージ保護を構成するための基本が提供されます。SSLセキュリティ・ポリシーによるメッセージ保護および認証、またはメッセージ保護セキュリティ・ポリシーを使用するには、キーストアおよびトラストストアを設定する必要があります。(認証のみセキュリティ・ポリシーには鍵は必要ありません)。キーストアには、エンティティ秘密鍵およびその秘密鍵に関連付けられた証明書が含まれます。トラストストアには、認証局(CA)からの証明書、またはこのエンティティが信頼する他のエンティティからの証明書が含まれます。キーストアおよびトラストストアは共通ストアに保持できます。

OWSMは、次のキーストアのサポートを提供します。

この項では、JKSおよびKSSキーストアの作成方法、およびこれらのキーストアに鍵および証明書を移入する方法について説明します。

これらのキーストアを作成した後で、ドメイン・レベルでOWSMキーストアを構成する必要があります。詳細は、以下のトピックを参照してください。

この項では、次の項目について説明します。

7.2.1 メッセージ保護に関するOPSSキーストア・サービスの理解

OPSSキーストア・サービスでは、メッセージ・セキュリティを確保するためにキーおよび証明書を管理する方式が提供されています。これはメッセージ・セキュリティのためにキーと証明書を管理するためのデフォルトの方法です。

詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスによる鍵および証明書の管理に関する項を参照してください。

この項では、次の項目について説明します。

7.2.1.1 OPSSキーストア・サービスを使用したメッセージ保護の構成

このトピックでは、メッセージ保護に関するOPSSキーストア・サービスの使用方法について説明します。

注意:

OWSMの旧リリースでは、JKSキーストアがデフォルトで使用されていました。バージョン12.1.2では、OPSSキーストア・サービスは元のインストール用にデフォルトで使用されます。前のリリースからアップグレードする場合は、既存のJKSキーストアが使用されます。Fusion Middleware ControlおよびWLSTの両方を使用して、OPSSキーストア・サービス操作を実行できます。ここでは、Fusion Middleware Controlの手順に焦点を当てますが、「キーストア・サービスを使用したキーと証明書の管理」では、両方の方法について説明しています。

メッセージ保護にOPSSキーストア・サービスを使用する手順は、次のとおりです。

  1. ストライプを作成し、それにowsmという名前を付けます

    1. コンテンツ・ペインで、「WebLogicドメイン」「セキュリティ」「キーストア」を選択します。

    2. 「ストライプの作成」をクリックします。図7-1に、「ストライプの作成」画面を示します。

    3. owsm」と入力し、「OK」をクリックします。

    図7-1 ストライプの作成



  2. owsmストライプ内で、 keystoreという名前のキーストアを作成します(詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のFusion Middleware Controlでのキーストアの作成に関する項を参照してください。)

    1. 作成したowsmストライプを選択し、「キーストアの作成」をクリックします。

      図7-2に、「キーストアの作成」ページを示します。

      図7-2 キーストアの作成



    2. このキーストアにkeystoreという名前を付けます。

    3. 保護タイプを「ポリシー」に設定します。(このリリースでは、パスワードで保護されたKSSはサポートされていません。)

    4. 「権限の付与」チェック・ボックスの選択を解除します。

    5. コード・ベースURLは指定しないでください。

    6. 「OK」をクリックします。

  3. 作成したキーストアを選択し、「管理」をクリックします。

    図7-3に、「証明書の管理」画面を示します。

  4. 「鍵ペアの生成」をクリックし、公開鍵と秘密鍵のペアを生成します。

    一般的に、署名および暗号化の両方のリクエストに対してこの鍵ペアを使用します。ただし、必要に応じて、署名および暗号化で別個の鍵ペアを作成できます。

    図7-4に、「鍵ペアの生成」画面を示します。

    図7-4 「鍵ペアの生成」



    1. 鍵ペアにorakeyなどの別名を指定します。

    2. 必要に応じて、他のサイト固有の情報を指定します。

    3. 環境に適合する場合、デフォルトのRSAキー・サイズを受け入れます。キーの長さは1024ビット以上にする必要があります。

    4. 「OK」をクリックします。

  5. 「KSSキーストアを使用するためのOWSMの構成」の説明に従って、このキーストアと別名を使用するようにOWSMを構成します。

  6. 必要に応じて、『Oracle Platform Security Servicesによるアプリケーションの保護』のFusion Middleware Controlを使用した証明書または信頼できる証明書のインポートに関する項の説明に従って、オプションで信頼できる証明書を取得します。

7.2.1.2 JKSキーストアからKSSキーストアへの移行

既存のJKSキーストアがある場合は、JKSキーストアからKSSキーストアに1つ以上の別名を移行できます。これを行うには、次の手順を実行します:

  1. インポートする別名がJKSキーストア内にあることを確認します。これを実行するには、keytool(または自分で選択したツール)を使用できます。
    C:\keytool -list  -keystore default-keystore.jks
    Enter keystore password:
     
    Keystore type: JKS
    Keystore provider: SUN
     
    Your keystore contains 1 entry
     
    orakey, May 16, 2013, PrivateKeyEntry,
    Certificate fingerprint (SHA1): DE:0C:37:D5:34:92:00:2E:30:D7:10:EF:93:A5:C0:04:
    52:02:26:B7
    
  2. 「コマンド行でのキーストアのインポート」の説明に従って、WLSTを使用し、コマンド行でimportKeyStoreスクリプトを使用してキーストアから1つ以上の別名をインポートできます。

    次に例を示します。

    connect("<wls adminuser>","<wls admin password>","t3://<host>:<port>")
    svc = getOpssService(name='KeyStoreService')
    :
    : 
    svc.importKeyStore(appStripe='owsm',name='keystore',password='password', aliases='orakey', keypasswords='password', type='JKS', permission=true, filepath=<'JKS keystore location'>);
    Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
    For more help, use help('domainRuntime')
    Keystore imported. Check the logs if any entry was skipped.
    :
    :
    wls:/rc6_domain/serverConfig> svc.listKeyStoreAliases(appStripe="owsm",name="key
    store", password='',type="*")
    Already in Domain Runtime Tree
     
    democa
    orakey
    wls:/rc6_domain/serverConfig>
    

    このコマンドを使用して複数のキーをインポートするには、別名とキー・パスワードのカンマ区切りリストを指定します。KSSキーストアは、権限を使用して保護されているため、パスワードを使用しません。

  3. OWSMドメイン構成メッセージ・セキュリティ画面を変更して、署名の別名に使用する別名をKSSキーストアから反映させて、必要に応じてその別名を暗号化します。

    たとえば、JKSキーストアから別名orakeyおよびoratestをインポートしている場合は、署名の別名としてorakeyを選択し、暗号化の別名としてoratestを選択できます。

    次の手順は、「KSSキーストアを使用するためのOWSMの構成」を参照してください。

7.2.1.3 証明書のKSSキーストアへのインポート

『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項で説明するように、キーストアをエクスポートおよびインポートできます。KSSはJKSおよびJCEKSの証明書形式の移行をサポートしています。

OWSMの旧リリースでは、JKSキーストアがデフォルトで使用されていました。バージョン12.1.2では、KSSキーストア・サービスは元のインストール用にデフォルトで使用されます。前のリリースからアップグレードする場合は、既存のJKSキーストアが使用されます。

既存のJKSキーストア証明書をKSSキーストアにインポートする場合は、『Oracle Platform Security Servicesによるアプリケーションの保護』のFusion Middleware Controlを使用した証明書または信頼できる証明書のインポートに関する項を参照してください。

7.2.1.4 keystore.sig.csf.keyおよびkeystore.enc.csf.key属性のオーバーライド

「ポリシー構成のオーバーライドの概要」の説明に従ってkeystore.sig.csf.keyおよびkeystore.enc.csf.keyをオーバーライドする場合は、csf-keyのかわりに、選択したキーストア別名を直接ポイントするように属性値を変更する必要があります。

KSSキーストア・サービスは、パスワードを使用しません。また、資格証明ストアを構成する必要はありません。署名鍵と暗号化鍵の別名は、鍵の格納と取得に使用されます。

keystore.sig.csf.keyおよびkeystore.enc.csf.keyをオーバーライドしない場合は、ユーザーの側でアクションは必要ありません。

7.2.1.5 期限切れになった証明書または鍵の更新または再生成

OPSSキーストアのCAが更新されたか、新しいCAが使用される場合、それらのすべての鍵(以前のCAを使用して発行された署名/暗号化鍵など)を再生成する必要があります。期限切れになった証明書を更新するには:
  • WLSTコマンドlistExpiringCertificatesを使用します。

構文:

svc.listExpiringCertificates(days='days', autorenew=true|false)

ここで:

  • svc: getOpssService()へのコールによって取得したサービス・コマンド・オブジェクト。

  • days: 期限までの日数がこの日数以下の証明書のみをリストします。すべての証明書が更新されるまでに多くの日数が必要となります。

  • autorenew: 期限が切れる証明書を自動的に更新する場合はtrue、表示するだけの場合はfalse。

例:

svc.listExpiringCertificates(days='9999', autorenew=true)
Fusion Middleware ControlおよびWLSTを使用して、鍵ペアを再生成できます。詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』の鍵と証明書の管理に関する項を参照してください。

7.2.2 メッセージ保護に関するJavaキーストアの理解

デフォルトのKSSのかわりにJavaキーストアを使用するオプションがあります。Javaキーストアには、エンティティ秘密鍵およびその秘密鍵に関連付けられた証明書が含まれます。

ドメインごとに単一のOWSMキーストアが存在し、ドメイン内で実行するすべてのWebサービスおよびクライアントによってそのキーストアが共有されます。したがって、この項の説明に従ってJKSキーストアを構成した場合、OWSMではそのJKSキーストアのみが使用され、すでに定義されているKSSキーストアは無視されます。

この項では、次の項目について説明します。

7.2.2.1 秘密鍵の生成およびJavaキーストアの作成

次の項では、keytoolユーティリィティを使用して秘密鍵ペアおよびJavaキーストア(JKS)を作成する方法について概要を示します。keytoolユーティリティのコマンドと引数のより詳細な情報は、このWebアドレスで見つけられます。

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

  1. domain_home/config/fmwconfigディレクトリに移動します。domain_homeは、キーストアが使用されるドメインの名前および位置です。
  2. 鍵ペアを生成し、キーストアを作成するために(まだ作成していない場合)、次のようなkeytoolコマンドを入力します。
    keytool -genkeypair -keyalg RSA -alias orakey -keypass password -keystore default-keystore.jks -storepass password -validity 3600
    

    注意:

    keytoolコマンドを起動するために、PATH変数の定義にjdk/binディレクトリを追加することが必要になる場合があります。

    コマンドの説明は次のとおりです。

    • genkeypairは、aliasパラメータによって指定されたエントリに格納される新しい公開鍵/秘密鍵ペアを作成します。

    • keyalgは、鍵のペアを生成するために使用するアルゴリズムを指定します(この例ではRSA)。

      注意:

      デフォルトの鍵ペア生成アルゴリズムはDigital Signature Algorithm(DSA)です。DSA鍵は署名でのみ使用できるのに対して、RSA鍵は署名および暗号化の両方で使用できます。したがって、暗号化および署名で同じ鍵を使用する場合(一般的なシナリオ)、-keyalg RSAを明示的に指定します。そうしない場合、keytoolではDSAがデフォルトになります。

    • aliasは、鍵ペアを参照する場合に使用する別名orakeyを指定します。

    • keypassは、生成された鍵ペアの秘密鍵を保護するために、パスワードpasswordを使用するように指示します。

    • keystoreは、default-keystore.jksという名前のキーストアを作成します。キーストアがすでに存在する場合は、鍵ペアがキーストアに追加されます。

    • storepassは、キーストアの整合性を保護するために使用されるパスワードとしてpasswordを指定します。

    • validityは、keypairが3600日間有効であることを示します。

    keytoolユーティリィティは、鍵の作成のために使用される名前、組織単位および組織、局所性(市区町村、都道府県、国)を尋ねるプロンプトを表示します。

    What is your first and last name?
      [Unknown]:  orcladmin
    What is the name of your organizational unit?
      [Unknown]:  Doc
    What is the name of your organization?
      [Unknown]:  Oracle
    What is the name of your City or Locality?
      [Unknown]:  US
    What is the name of your State or Province?
      [Unknown]:  US
    What is the two-letter country code for this unit?
      [Unknown]:  US
    Is CN=orcladmin, OU=Doc, O=Oracle, L=US, ST=US, C=US correct?
      [no]:  y
    
  3. 必要に応じて、「信頼できる証明書の入手と、キーストアへのインポート」の説明に従って、信頼できる証明書をキーストアにインポートします。
  4. 必要に応じて、キーストアのコンテンツを表示するためにkeytool -listコマンドを使用します。

    keytool -list -keystore default-keystore.jks

    プロンプトが表示されたら、キーストアの作成時に指定したキーストアのパスワードを入力します。

    Enter keystore password:
     
    Keystore type: JKS
    Keystore provider: SUN
     
    Your keystore contains 1 entry
     
    Alias name: orakey
    Creation date: Mar 9, 2011
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=orcladmin, OU=Doc, O=Oracle, L=US, ST=US, C=US
    Issuer: CN=orcladmin, OU=Doc, O=Oracle, L=US, ST=US, C=US
    Serial number: 4d77aff6
    Valid from: Wed Mar 09 11:51:02 EST 2011 until: Fri Jan 15 11:51:02 EST 2021
    Certificate fingerprints:
             MD5:  DF:EC:3C:60:CF:8B:10:A7:73:3A:51:99:4C:A3:D0:2E
             SHA1: E0:52:58:EB:34:51:E4:9B:D4:13:C2:CB:F3:CC:08:89:EF:4E:4E:05
             Signature algorithm name: SHA1withRSA
             Version: 3
     
     
    *******************************************
    *******************************************

7.2.2.2 信頼できる証明書の入手と、キーストアへのインポート

VerisignやEntrust.netのような認証局(CA)から証明書を取得し、キーストアに含めることができます。証明書を取得するには、証明書リクエストを作成してCAに送信する必要があります。CAは、証明書リクエストを認証し、リクエストに基づいてデジタル証明書を作成します。

信頼できる証明書を取得し、その証明書をキーストアにインポートするには、次の手順を実行します。

  1. 秘密鍵と自己署名証明書を生成します。自己署名証明書は、信頼できる証明書に置き換えられます。

    注意:

    「秘密鍵の生成およびJavaキーストアの作成」の説明に従って以前に作成した自己署名証明書がキーストアにすでに含まれる場合は、この手順を無視して手順2に進むことができます。

    keytool -genkeypairコマンドを使用して、指定の別名に対する鍵ペアを生成します(この例ではorakey)。存在しない場合は、キーストアが作成されます。

    keytool -genkeypair -keyalg RSA -alias orakey -keypass password -keystore
    default-keystore.jks -storepass password -validity 3600
    
  2. 証明書リクエストを生成します。

    リクエストの生成には、keytool -certreqコマンドを使用します。次のコマンドでは、orakey別名の証明書リクエストおよびcertreq_fileという名前の証明書署名リクエスト(CSR: Certificate Signing Request)が生成されます。

    keytool -certreq -alias orakey -sigalg "SHA1withRSA" -file certreq_file -storetype jks -keystore default-keystore.jks
    
  3. たとえばVeriSignなどのCAにCSRファイルを送信します。CAによりリクエストが認証され、証明書または証明書チェーンが返されます。
  4. CAの公開鍵を認証するCAルート証明書をインポートします。

    keytool -importcertコマンドにより、別名verisigncaを使用して、信頼できるCAルート証明書(この例ではVerisignCAcert.cerという名前)をdefault-keystore.jksキーストアにインポートします。keytoolユーティリティから必要なパスワードを要求するプロンプトが表示されます。

    keytool -importcert -alias verisignca -trustcacerts -file VerisignCAcert.cer -keystore default-keystore.jks
    
  5. 証明書リクエストに対応してCAによって発行された自己署名証明書を信頼できるCA証明書で置き換えます。

    keytool -importcertコマンドを使用します。次のコマンドは、この例ではMyCertIssuedByVerisign.cerという名前の信頼できるCA証明書で、別名orakeyの自己署名証明書を置換します。keytoolユーティリティから必要なパスワードを要求するプロンプトが表示されます。

    keytool -importcert -trustcacerts -alias orakey -file MyCertIssuedByVerisign.cer -keystore default-keystore.jks
    

7.2.2.3 OWSMキーストアの構成

キーストアを作成した後で、JKSキーストアを使用するようにドメイン・レベルでOWSMを構成する必要があります。これはFusion Middleware ControlまたはWLSTコマンドを使用して行うことができます。詳細については、次のセクションを参照してください。

詳細については、次のセクションを参照してください。

7.2.3 資格証明ストアを構成するための鍵およびユーザー資格証明の追加

OWSMは、保護された形式で資格証明を管理するために資格証明ストア・フレームワーク(CSF: Credential Store Framework)を使用します。CSFは、Webサービスやその他のアプリケーションの資格証明を格納、取得および削除する手段を提供します

OWSMは、次の検索のために資格証明ストアを使用します。

  • Javaキーストア内の鍵の別名およびパスワード。

    OWSMがJavaキーストアから別名およびパスワードを検索するために資格証明ストアを使用する方法の詳細は、Webサービス・セキュリティの概念の理解を参照してください。

  • 認証に使用されるユーザー名およびパスワード。

    たとえば、認証のためにユーザー名トークンを受け入れるWebサービスがあるとします。このWebサービスと対話するWebサービス・クライアントを作成した場合、Webサービスに送信できるユーザー名およびパスワードでWebサービス・クライアントを構成する必要があります。(Fusion Middleware ControlまたはWLSTのいずれかを使用して)資格証明ストアにこのユーザー名とパスワードを格納し、それにCSFキーを割り当てます。

    たとえば、oracle/wss_username_token_client_policyポリシーにはcsf-keyプロパティが含まれており、そのデフォルト値はbasic.credentialsです。wss_username_token_client_policyを使用するには、資格証明名basic.credentialsと、クライアントが接続時に使用する必要があるユーザー名およびパスワードを使用して、CSF内に新しいパスワード資格証明を作成します。この同じクライアント・ポリシーを使用する2つのWebサービス・クライアントが存在する場合、これらのクライアントで同じパスワード資格証明(デフォルト値はbasic.credentials)を共有することもできますし、それぞれが独自の資格証明を持つこともできます。後者の場合は、クライアント1およびクライアント2についてそれぞれ、CSF内に2つのパスワード資格証明(たとえばApp1.credentialsApp2.credentials)を作成する必要があります。クライアント1ではcsf-key構成オーバーライドにApp1.credentialsを設定し、クライアント2ではcsf-keyプロパティにApp2.credentialsを設定します。詳細は、「ポリシー構成のオーバーライドの概要」を参照してください。いずれの場合も、ユーザー名およびパスワードがOPSSアイデンティティ・ストア内の有効なユーザーを表す必要があることに注意してください。

パスワード資格証明はユーザー名とパスワードを保存できます。汎用的な資格証明はどのような資格証明オブジェクトも保存できます。

CSF構成は、 domain-home/config/fmwconfigディレクトリのjps-config.xmllファイル内で維持されます。

注意:

「OWSMキーストアの構成」の説明に従ってKSSキーストアを構成した場合、資格証明ストアoracle.wsm.securityマップは作成されません。資格証明ストアを使用してユーザー資格証明を格納するには、その前に資格証明ストアを作成する必要があります。

資格証明ストアは、KSSキーストアが使用されるときに、キーストア別名を格納するために使用されません。

「OWSMキーストアの構成」の説明に従ってJKSキーストアを構成した場合、指定した別名およびパスワードは資格証明ストアに安全に格納されています。ただし、キーストアに他の別名を追加するか、クライアントの認証資格証明を追加する必要がある場合、次の項の説明に従って、資格証明ストアでもそれらが構成および格納されていることを確認する必要があります。

Fusion Middleware ControlまたはWLSTコマンドを使用して、資格証明ストアに鍵およびユーザー資格証明を追加できます。次の手順では、両方の方法について説明します。

注意:

この項で例としてと取りあげている手順では、前述のbasic.credentialsキーにユーザー資格証明を追加する方法、および『Oracle Web Services Managerの理解』のメッセージ保護ポリシーに関する秘密鍵と証明書の設定に関する項で説明されるServiceAおよびServiceB別名の例を示しています。

それぞれの環境では、構成に対して適切な別名およびパスワードを使用する必要があります。

資格証明ストアに鍵の資格証明を追加する前に、秘密鍵と別名がJavaキーストアに存在することを確認します。これは、次のようなコマンドを使用して作成できます。

keytool -genkeypair -keyalg RSA -alias ServiceA -keypass password -keystore default-keystore.jks -storepass password -validity 3600

keytool -genkeypair -keyalg RSA -alias ServiceB -keypass welcome3 -keystore default-keystore.jks -storepass password -validity 3600

キーストアの詳細は、「秘密鍵の生成およびJavaキーストアの作成」を参照してください。

この項では、次の項目について説明します。

7.2.3.1 Fusion Middleware Controlを使用した資格証明ストアへの鍵およびユーザー資格証明の追加

Fusion Middleware Controlで次の手順に従って資格証明ストアに鍵と証明書を追加します。

  1. 「WebLogicドメイン」メニューで、「セキュリティ」「資格証明」を選択します。

    図7-5に示すように、「資格証明」ページが表示されます。

    図7-5 「資格証明ストア・プロバイダの構成」ページ



    この構成では、資格証明ストアにoracle.wsm.security資格証明マップがすでに存在することに注意してください。この資格証明マップは、「OWSMキーストアの構成」の説明に従ってOWSMキーストアを構成したときに作成されたものです。

    この資格証明マップが構成に表示されない場合は、「マップの作成」ボタンをクリックし、「マップ名」フィールドに「oracle.wsm.security」と入力することにより作成できます。

  2. 必要に応じて、マップで構成された鍵を表示するために、「資格証明」表でoracle.wsm.securityマップを開きます。図7-6に、サンプルのOWSM資格証明ストアの構成を示します。

    図7-6 OWSM資格証明マップで構成された鍵



    鍵を選択し、「編集」をクリックすることにより、資格証明マップで鍵を編集できます。資格証明ストアで加えるすべての変更がOWSM Javaキーストア内の鍵の定義に準拠することに注意してください。

  3. oracle.wsm.security資格証明マップ内で、たとえばServiceA およびServiceBの別名に対応する新しいエントリを作成するために、「キーの作成」をクリックします。図7-7に示すように、「キーの作成」ダイアログ・ボックスが表示されます。

    図7-7 「キーの作成」ダイアログ・ボックス



    1. 「マップの選択」メニューから、まだ選択されていない場合は、マップ名「oracle.wsm.security」を選択します。

    2. キーストアにアクセスするための鍵と値のペアを作成するために、「キー」フィールドに「csfServiceA」と入力します。

    3. 「タイプ」メニューから、「パスワード」を選択します。

    4. 「ユーザー名」フィールドで、キーストアで秘密鍵に指定した別名(たとえばServiceA)を入力します。

    5. 「パスワード」フィールドおよび「パスワードの確認」フィールドで、キーストアで別名のために指定したパスワード(たとえばpassword)を入力します。

    6. 「説明」フィールドで、エントリの説明を入力します(たとえば、「Key for ServiceA」など)。

    7. 「OK」をクリックします。

    8. もう一度「キーの作成」をクリックし、ServiceBの別名に対するcsfServiceBなど、追加キーストアの別名の値を入力します。

  4. 必要に応じて、「キーの作成」をクリックして、次のようにしてoracle.wsm.security資格証明マップでcsf-keyユーザー資格証明のエントリを作成します(たとえばbasic.credentialsなど)。

    1. 「マップの選択」メニューから、まだ選択されていない場合は、マップ名「oracle.wsm.security」を選択します。

    2. 「キー」フィールドで、「basic.credentials」と入力します。この例では、basic.credentialsを使用しますが、鍵に選択した任意の名前を指定できます。

    3. 「タイプ」メニューから、「パスワード」を選択します。

    4. 「ユーザー名」フィールドで、OPSSアイデンティティ・ストアに存在する有効なユーザー名を入力します(たとえばAppIDなど)。

    5. 「パスワード」フィールドおよび「パスワードの確認」フィールドで、ユーザーの有効なパスワードを入力します(たとえばAppPWord%など)。

    6. 「説明」フィールドで、エントリの説明を入力します(たとえば、Username and Password for basic.credential keyなど)。

    7. 「OK」をクリックします。

  5. サーバーを再起動します。

7.2.3.2 WLSTを使用した資格証明ストアへの鍵およびユーザー資格証明の追加

WLSTコマンドを使用して、次の手順に従って、資格証明ストアに鍵およびユーザー資格証明を追加します。

  1. Oracle Fusion Middlewareを使用したWebサービスの管理のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
  2. connect()コマンドを使用して、実行中のWebLogic Serverインスタンスに接続します。たとえば、次のコマンドは、ユーザー名/パスワードの資格証明weblogic/passwordを使用して、URL myAdminServer.example.com:7001でWLSTを管理サーバーに接続します。
    connect("weblogic","password","t3://myAdminServer.example.com:7001")
    
  3. oracle.wsm.security資格証明マップ内で、たとえばServiceAおよびServiceBの別名に対応する新しいエントリを作成するために、createCredコマンドを使用しますたとえば、次のようなコマンドを使用して、ServiceAの別名のエントリcsfServiceAを作成します。
    wls:/DefaultDomain/serverConfig> createCred(map="oracle.wsm.security", key="csfServiceA", user="ServiceA", password="password", desc="Key for ServiceA")
    
  4. 手順3を繰り返して、追加の別名のエントリ、たとえばServiceBの別名のcsfServiceBを作成します。
  5. createCredコマンドを使用して、oracle.wsm.security資格証明マップでcsf-keyユーザー資格証明のエントリを作成します(たとえばbasic.credentialsなど)。
    wls:/DefaultDomain/serverConfig> createCred(map="oracle.wsm.security", key="basic.credentials", user="AppID", password="AppPWord%", desc="Key for ServiceA")

7.3 アプリケーション・レベルの資格証明マップの作成について

csf.map構成プロパティにより、特定の事前定義されたポリシーにアプリケーション・レベルの資格証明マップ名を設定できます(このプロパティを使用してドメイン・レベルの資格証明マップをアタッチメントごとにオーバーライドできます)。csf.map構成オーバーライドは、csf-keyまたはキーストア関連のcsfキーのいずれかを持つすべてのポリシーおよびアサーション・テンプレートで使用できます。

次のトピックは、アプリケーション・レベルの資格証明マップの作成について詳細に説明しています。

オーバーライドの構成の詳細は、「ポリシー構成プロパティのオーバーライド」を参照してください。

7.3.1 アプリケーション・レベルの資格証明マップからCSFキーを取得する方法

ドメインレベルのoracle.wsm.security資格証明マップは、Oracle WSMキーストアを構成するときに、資格証明ストアに作成されます。

Oracle WSMキーストアの構成の詳細は、OWSMキーストアの構成で説明されています。

アプリケーション・レベルの資格証明マップを構成すると、クライアントのcsfキー(csf-keyおよびユーザー・キーsts.auth.user.csf.key)は、次に示すように、ドメイン・レベルのマップではなく、そのマップからのみ取得されます。

  • アプリケーション・レベルのcsfマップを構成すると、そこからcsfキーが取得されます。csfキーが見つからない場合は、例外がスローされます。

  • アプリケーション・レベルのcsfマップが構成されていない場合は、ドメイン・レベルのcsfマップからcsfキーが取得されます。csfキーが見つからない場合は、例外がスローされます。

共有cfsキーの場合は、次のように動作が異なります。

  • keystore-csf-key: このcsfキーは、常にドメイン・レベルの資格証明マップ(oracle.wsm.security)から取得されます。

  • enc-csf-key: アプリケーション・レベルのマップが構成されている場合、このcsfキーは、最初にそこから取得されます。見つからなかった場合は、ドメイン・レベルのcsfマップから取得されます。

  • sign-csf-key: アプリケーション・レベルのマップが構成されている場合、このcsfキーは、最初にそこから取得されます。見つからなかった場合は、ドメイン・レベルのcsfマップから取得されます。

7.3.2 アプリケーション・レベルの資格証明マップにアクセスする権限について

アプリケーションレベルの資格証明マップにアクセスするには、次の設定を行う必要があります。

次の項では、アプリケーションレベルの資格証明マップにアクセスする手順について説明しています。

7.3.2.1 csf.mapプロパティのオーバーライドの構成

アプリケーションが独自の資格証明マップにアクセスするには、アプリケーションに割り当てるポリシーのcsf.map構成のオーバーライドを設定する必要があります。

csf.mapプロパティのオーバーライドを構成するには、次の手順を実行します。

アプリケーションが独自の資格証明マップにアクセスするには、アプリケーションに割り当てるポリシーのcsf.map構成のオーバーライドを設定する必要があります。

  1. 「Fusion Middleware Controlを使用した「WSMポリシー・セット・サマリー」ページへの移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
  2. 「Webサービス・ポリシー」ページで、「ポリシー」表からプロパティを編集するポリシーを選択して「編集」をクリックします。
  3. 「ポリシーの編集」ページで、「構成」タブをクリックします。
  4. csf.map構成プロパティを選択し、「編集」をクリックします。図7-8に示された「構成プロパティの編集」ダイアログ・ボックスが表示されます。

    図7-8 「構成プロパティの編集」ダイアログ・ボックス



  5. 「値」フィールドに、使用するポリシーのアプリケーション・レベルのマップ名を入力し、「OK」をクリックします。
  6. ポリシーを検証します。
  7. 「保存」をクリックします。

7.3.2.2 wsm-agent-core.jarへのCredentialAccessPermissionの付与について

wsm-agent-core.jarへのCredentialAccessPermissionを付与します。この権限は、Oracle Platform Security Services (OPSS)でCSFストア内の資格証明マップへのアクセスを許可するために必要です。

資格証明アクセス権限の付与は、次のいずれかの方法で行うことができます。

7.3.2.2.1 Oracle Enterprise Managerを使用したCredentialAccessPermissionの付与

ドメインの「システム・ポリシー」ページから、アプリケーション・レベルの資格証明マップへのCredentialAccessPermissionを付与します。

  1. 「ナビゲータ」ペインで「WebLogicドメイン」を展開し、新しいシステム・ポリシーを構成するドメインを選択します。
  2. 「WebLogicドメイン」メニューから、「セキュリティ」「システム・ポリシー」の順に選択します。
  3. 「作成」をクリックして、「システム権限の作成」ページを開きます。
  4. 必要に応じて、「権限付与先」ドロップ・ボックスの「コードベース」をポリシー・タイプとして選択します。
  5. 「コードベース」フィールドに、次の文字列を入力します。
    file:${common.components.home}/modules/oracle.wsm.agent.common_${jrf.version}/wsm-agent-core.jar
    
  6. 「権限」表の上の「追加」をクリックします。
  7. 「権限の追加」ダイアログで、「新しい権限の詳細を入力するにはここを選択します」チェック・ボックスをクリックし、次の情報を入力します。

    権限クラス: oracle.security.jps.service.credstore.CredentialAccessPermission

    リソース名: context=SYSTEM,mapName=application.csf.map.name,keyName=*

    ここで、mapNameは、構成する必要があるアプリケーション・レベルの資格証明マップの名前です。

    権限アクション: *

  8. 「OK」をクリックして、「システム権限の作成」ページに戻ります。選択した権限が、「権限」の表に追加されます。
  9. 「OK」をクリックして、「システム・ポリシー」ページに戻ります。ページの上部に表示されるメッセージは、操作の結果を示します。操作が正常に完了すると、ページの下部の表にポリシーが追加されます。

システム・ポリシーの構成の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のシステム・ポリシーの管理に関する項を参照してください。

7.3.2.2.2 WLSTを使用したCredentialAccessPermissionの付与

grantPermission WLSTコマンドを使用して、アプリケーション・レベルの資格証明マップへのCredentialAccessPermissionを付与できます。

grantPermission WLSTコマンドを使用して、アプリケーション・レベルの資格証明マップへのCredentialAccessPermissionを付与できます。

  1. WLSTを起動し、実行中のWebLogic Serverインスタンスに接続します(WLSTを使用したCredentialAccessPermissionの付与を参照)。
  2. grantPermissionコマンドを使用して、コードベース・システム・ポリシーを作成します。
    grantPermission(appStripe=None, codeBaseURL='file:${common.components.home}/modules/oracle.wsm.agent.common_${jrf.version}/wsm-agent-core.jar',principalClass=None,principalName=None,permClass='oracle.security.jps.service.credstore.CredentialAccessPermission',permTarget='context=SYSTEM,mapName=application.csf.map.name,keyName=*',permActions='*')
    

このWLSTコマンドの詳細は、WebLogic Server WLSTコマンド・リファレンスのインフラストラクチャ・セキュリティ・カスタムWLSTコマンドに関する項を参照してください。

7.3.2.3 wsm-agent-core.jarへのWSIdentityPermissionの付与について

mapName用語およびgetKeyアクションを使用して、wsm-agent-core.jarへのWSIdentityPermissionを付与します。特定のアプリケーションにこの権限を付与しない場合、アプリケーション・レベルの資格証明マップにアクセスできません。これは次のいずれかの方法で行うことができます。

7.3.2.3.1 Oracle Enterprise Managerを使用したWSIdentityPermissionの付与

ドメインの「システム・ポリシー」ページから、アプリケーション・レベルの資格証明マップへのCredentialAccessPermissionを付与します。

  1. 「ナビゲータ」ペインで「WebLogicドメイン」を展開し、新しいシステム・ポリシーを構成するドメインを選択します。
  2. 「WebLogicドメイン」メニューから、「セキュリティ」「システム・ポリシー」の順に選択します。
  3. 「wsm-agent-core.jarへのCredentialAccessPermissionの付与について」の手順がすでに完了している場合は、「検索」セクションで、「コードベース」タイプを選択し、「名前」フィールドで次の文字列を検索します。
    file:${common.components.home}/modules/oracle.wsm.agent.common_${jrf.version}/wsm-agent-core.jar
    
  4. 「検索」表のコードベース権限を選択し、「編集」をクリックします。
  5. 「システム権限の編集」ページで、「権限」表の上の「追加」をクリックします。
  6. 「権限の追加」ダイアログで、「新しい権限の詳細を入力するにはここを選択します」チェック・ボックスをクリックし、次の情報を入力します。

    権限クラス: oracle.wsm.security.WSIdentityPermission

    リソース名: resource=usermessagingserver,mapName=application.specific.map

    ここで、resourceは権限が必要なアプリケーションの名前、mapNameは構成する必要があるアプリケーション・レベルの資格証明マップの名前です。

    権限アクション: getKey

  7. 「OK」をクリックして、「システム権限の作成」ページに戻ります。選択した権限が、「権限」の表に追加されます。
  8. 「OK」をクリックして、「システム・ポリシー」ページに戻ります。ページの上部に表示されるメッセージは、操作の結果およびコードベース権限の新しい権限の追加を示します。

システム・ポリシーの構成の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のシステム・ポリシーの管理に関する項を参照してください。

7.3.2.3.2 WLSTを使用したWSIdentityPermissionの付与

grantPermission WLSTコマンドを使用して、アプリケーション・レベルの資格証明マップへのCredentialAccessPermissionを付与できます。

  1. WLSTを起動し、実行中のWebLogic Serverインスタンスに接続します(WLSTを使用したCredentialAccessPermissionの付与を参照)。
  2. grantPermissionコマンドを使用して、コードベース・システム・ポリシーを作成します。
    grantPermission(appStripe=None, codeBaseURL='file:${common.components.home}/modules/oracle.wsm.agent.common_${jrf.version}/wsm-agent-core.jar',principalClass=None,principalName=None,permClass='oracle.wsm.security.WSIdentityPermission',permTarget='resource=usermessagingserver,mapName=application.specific.map',permActions='getKey')
    

このWLSTコマンドの詳細は、WebLogic Server WLSTコマンド・リファレンスのインフラストラクチャ・セキュリティ・カスタムWLSTコマンドに関する項を参照してください。

7.3.2.4 system-jazn-data.xmlでのアプリケーション・レベルの権限の付与の例

ここでは、アプリケーション・レベルの資格証明マップへのアクセスおよび特定のアプリケーションにアクセスを制限するためのsystem-jazn-data.xmlでの権限付与の例を示します。resourceは、アプリケーションの資格証明マップの構成が必要なアプリケーション名、 mapNameは、構成する必要があるアプリケーション・レベルの資格証明マップ名です。

<grant>
   <grantee>
      <codesource>
         <url>
file:${common.components.home}/modules/oracle.wsm.agent.common_${jrf.version}/wsm-agent-core.jar
         </url>
      </codesource>
   </grantee>
   <permissions>
      <permission>
            <class>oracle.wsm.security.WSIdentityPermission</class>
            <name>resource=usermessagingserver,mapName=application.specific.map</name>
            <actions>getKey</actions>
      </permission>
    </permissions>
</grant>

resource用語およびmapName用語では、アスタリスク(*)のワイルドカードもサポートされます。アクションがgetKeyである場合の適正な権限名の例を次に示します。

  • resource=usermessagingserver,mapName=application.specific.map

    usermessagingserverアプリケーションのみが資格証明マップapplication.specific.mapにアクセスできます。

  • resource=*,mapName=application.specific.map

    すべてのアプリケーションが資格証明マップapplication.specific.mapにアクセスできます。

  • resource=usermessagingserver,mapName=*

    アプリケーションusermessagingserverは、すべての資格証明マップにアクセスできます。

  • resource=usermessagingserver,mapName=intel-*

    アプリケーションusermessagingserverは、intel-で始まるすべての資格証明マップにアクセスできます。

  • resource=intel-*,mapName=application.specific.map

    名前がintel-*で始まるすべてのアプリケーションが資格証明マップapplication.specific.mapにアクセスできます。

注意:

WSMIdentityPermissionを使用してアプリケーション・レベルの資格証明マップにアクセスする場合:

  • 権限は、管理対象アプリケーションでのみチェックされます。Java SEアプリケーションの場合、権限はチェックされません。

  • Oracle WSM JARへのjava.security.AllPermissionが付与されているOracle Java Cloud Service環境では、権限は機能しません。

  • ドメイン・レベルの資格証明マップにアクセスする場合、権限は必要ではありません。資格証明ストアを構成するための鍵およびユーザー資格証明の追加を参照してください。

7.3.3 アプリケーション・レベルのCSFマップへのアクセスに使用できるポリシー

csf.map構成オーバーライド・プロパティにより、次の事前定義されたポリシーにアプリケーション・レベルの資格証明マップ名を設定できます(このプロパティを使用してドメイン・レベルの資格証明マップをアタッチメントごとにオーバーライドできます)。

csf.map構成プロパティを含む事前定義済セキュリティ・アサーション・テンプレートの詳細は、Oracle Web Servicesの事前定義済アサーション・テンプレートを参照してください。

  • http_basic_auth_over_ssl_client_policy

  • http_jwt_token_client_policy

  • http_jwt_token_identity_switch_client_policy

  • http_jwt_token_over_ssl_client_policy

  • http_jwt_token_over_ssl_service_policy

  • http_jwt_token_service_policy

  • http_oauth2_token_client_policy

  • http_oauth2_token_identity_switch_opc_oauth2_over_ssl_client_policy

  • http_oauth2_token_identity_switch_over_ssl_client_policy

  • http_oauth2_token_opc_oauth2_client_policy

  • http_oauth2_token_opc_oauth2_over_ssl_client_policy

  • http_oauth2_token_over_ssl_client_policy

  • oauth2_config_client_policy

  • http_saml20_token_bearer_client_policy

  • http_saml20_token_bearer_over_ssl_client_policy

  • multi_token_over_ssl_rest_service_policy

  • multi_token_rest_service_policy

  • wss10_message_protection_client_policy

  • wss10_message_protection_service_policy

  • wss10_saml20_token_client_policy

  • wss10_saml20_token_with_message_protection_client_policy

  • wss10_saml20_token_with_message_protection_service_policy

  • wss10_saml_hok_token_with_message_protection_client_policy

  • wss10_saml_hok_token_with_message_protection_service_policy

  • wss10_saml_token_client_policy

  • wss10_saml_token_with_message_integrity_client_policy

  • wss10_saml_token_with_message_integrity_service_policy

  • wss10_saml_token_with_message_protection_client_policy

  • wss10_saml_token_with_message_protection_service_policy

  • wss10_saml_token_with_message_protection_ski_basic256_client_policy

  • wss10_saml_token_with_message_protection_ski_basic256_service_policy

  • wss10_username_id_propagation_with_msg_protection_client_policy

  • wss10_username_id_propagation_with_msg_protection_service_policy

  • wss10_username_token_with_message_protection_client_policy

  • wss10_username_token_with_message_protection_service_policy

  • wss10_username_token_with_message_protection_ski_basic256_client_policy

  • wss10_username_token_with_message_protection_ski_basic256_service_policy

  • wss10_x509_token_with_message_protection_client_policy

  • wss10_x509_token_with_message_protection_service_policy

  • wss11_message_protection_client_policy

  • wss11_message_protection_service_policy

  • wss11_saml20_token_with_message_protection_client_policy

  • wss11_saml20_token_with_message_protection_service_policy

  • wss11_saml_or_username_token_with_message_protection_service_policy

  • wss11_saml_token_identity_switch_with_message_protection_client_policy

  • wss11_saml_token_with_message_protection_client_policy

  • wss11_saml_token_with_message_protection_service_policy

  • wss11_sts_issued_saml_hok_with_message_protection_client_policy

  • wss11_sts_issued_saml_hok_with_message_protection_service_policy

  • wss11_sts_issued_saml_with_message_protection_client_policy

  • wss11_username_token_with_message_protection_client_policy

  • wss11_username_token_with_message_protection_service_policy

  • wss11_x509_token_with_message_protection_client_policy

  • wss11_x509_token_with_message_protection_service_policy

  • wss_http_token_client_policy

  • wss_http_token_over_ssl_client_policy

  • wss_saml20_token_bearer_over_ssl_client_policy

  • wss_saml20_token_over_ssl_client_policy

  • wss_saml_token_bearer_client_policy

  • wss_saml_token_bearer_over_ssl_client_policy

  • wss_saml_token_bearer_identity_switch_client_policy

  • wss_saml_token_over_ssl_client_policy

  • wss_sts_issued_saml_bearer_token_over_ssl_client_policy

  • wss_username_token_client_policy

  • wss_username_token_over_ssl_client_policy

7.4 サービス・アイデンティティ証明拡張の理解

メッセージ保護ポリシーを実装したWebサービスの場合、Webサービスのbase64エンコードされた公開証明書はWSDLで公開されます。証明書は、ポリシーによってデータが暗号化されるか復号化されるかに関係なく、メッセージ保護ポリシーに対して内包されます。

WSDLでパブリッシュされた証明書は、デフォルトではサービスの公開鍵です。これは、「メッセージ保護に関するキーストアの構成の概要」の説明に従ってキーストアで構成した暗号化鍵によって指定されたものです。

注意:

前のリリースのOWSMでは、メッセージ保護ポリシーを実装したWebサービスの場合、Webサービス・クライアントはWebサービスの公開証明書をそのドメイン・レベルのキーストアに格納する必要がありました。その後、クライアントはkeystore.recipient.aliasプロパティを使用して、キーストア内の証明書を識別します。このためには、「構成」ページでkeystore.recipient.aliasプロパティを特定するか、ポリシーをアタッチするときにクライアントごとに(またはプログラムにより)プロパティの構成オーバーライドを指定していました。

WSDLで公開鍵証明書が見つからない場合は、かわりにkeystore.recipient.aliasプロパティが使用され、以前と同様に証明書をクライアントのドメイン・レベルのキーストアに格納する必要があります。

注意:

自己署名証明書を信頼できるものにするには、クライアント側のキーストアで使用可能にする必要があります。

ホスト名検証機能によって、WSDLから取得した証明書が置換攻撃や中間者攻撃の対象になることなく、本当に予期したとおりの証明書であることが保証されます。

ホスト名を検証するため、OWSMは、証明書の共通名(CN)またはサブジェクト・グループ・ベース識別名(DN)がサービスのホスト名と一致することを確認します。この機能は、証明書のサブジェクトDNに依存します。デフォルトでは、ホスト名検証は無効です。

OWMはWSDLでX509証明書を公開してWebサービス・ポリシーを強制するかどうか、およびホスト名検証機能を使用するかどうかを指定できるドメイン構成プロパティを提供します。これらのプロパティの設定の詳細は、「Fusion Middleware Controlを使用したアイデンティティ拡張プロパティの構成」を参照してください。

この項では、次の項目について説明します。

7.4.1 クライアントからサービス・アイデンティティ証明拡張を無視

「アイデンティティWSDLの無視」プロパティの値を設定する方法について説明します。

注意:

デフォルトでは、WSDLで証明書が公開されている場合、keystore.recipient.aliasのクライアント・オーバーライド・プロパティ値は無視されます。

Java EEクライアントの場合は、「アイデンティティWSDLの無視」プロパティの値が自動的に読み取られ、その他の構成は必要ありません。アイデンティティ検証をオンまたはオフにするには、「Fusion Middleware Controlを使用したアイデンティティ拡張プロパティの構成」の説明に従ってこのプロパティを設定します。

JSEクライアントの場合は、Webサービス・クライアントはWSDLの証明書を無視するための明示的なアクションを行う必要があり、無視するかどうかは設定されたkeystore.recipient.aliasプロパティのみに依存します。

これを行うには、wsm.ignore.identity.wsdlの値をtrueに設定します。

BindingProvider.getRequestContext().put(SecurityConstants.ClientConstants.WSM_IGNORE_IDENTITY_WSDL, "true");

7.4.2 クライアントからホスト名検証を無視

Java EEクライアントの場合は、「ホスト名検証の無視」プロパティの値が自動的に読み取られ、その他の構成は必要ありません。

ホスト名検証をオンまたはオフにするには、「Fusion Middleware Controlを使用したアイデンティティ拡張プロパティの構成」の説明に従ってこのプロパティを設定します。

JSEクライアントの場合は、Webサービス・クライアントはホスト名検証を無視するための明示的なアクションを行う必要があります。

これを行うには、wsm.ignore.hostname.verificationの値をtrueに設定します。

BindingProvider.getRequestContext().put(SecurityConstants.ClientConstants.WSM_IGNORE_HOSTNAME_VERIFICATION,"false");

7.5 Oracle CoherenceでのNonceのキャッシュ

リプレイ攻撃から保護するため、いくつかのポリシーには、ユーザー名トークンにNonceを必要とするオプションが用意されています。Nonceは、SOAPリクエストで1回のみ使用できる一意の番号で、リプレイ攻撃を防止するために使用されます。

たとえば、oracle/wss10_username_token_with_message_protection_client_policyを参照してください。

Nonceは再使用を防ぐためにキャッシュされます。ただし、クラスタ環境では、このキャッシュを管理対象サーバー間で同期化する手順が必要になります。そうしないと、Webサービスに送信されて1つのサーバーで実行中のリクエストが、リプレイされて別の管理対象サーバーに送信され、そこで処理される可能性があります。OWSMは、Oracle Coherenceキャッシュを使用してNonceをキャッシュします。

アプリケーション・サーバー(OWSMを使用)はCoherenceクラスタの一部である必要があります。デフォルトで、構成ウィザードを実行する場合は、すべての管理対象サーバーまたはクラスタはCoherenceクラスタの一部になっています。クラスタ内で、2つの記憶域有効サーバーがNonceのキャッシュには十分であり、フェイルオーバー保護を提供します。2つのサーバーにはアプリケーション・サーバーを使用できますが、アプリケーション・サーバーで記憶域が無効の場合は、2つの記憶域有効キャッシュ・サーバーも使用できます。

注意:

これらの競合を回避するために、Coherenceクラスタ設定を構成する必要がある場合があります。詳細は、『Oracle WebLogic Serverクラスタの管理』のCoherenceクラスタの構成と管理に関する項を参照してください。

環境のトポロジによって、次のいずれかの手順に従ってOracle CoherenceでNonceのキャッシュを有効にします。

Nonceのキャッシュにおける存続期間の設定方法は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の「Fusion Middleware Controlを使用したセキュリティ・ポリシー強制の構成」を参照してください。

7.5.1 管理対象Coherenceサーバーがない場合のNonceのキャッシュ

Coherenceクラスタ・トポロジをキャッシュする方法について説明します。

トピック:

7.5.1.1 管理対象Coherenceサーバーがない場合のCoherenceクラスタ・トポロジの理解

Coherenceクラスタ・トポロジは、1つ以上のWebLogic Serverクラスタまたはサーバーによって形成されます。サーバーの一部は1つ以上の記憶域無効(WebLogic Server Coherenceクライアント層)および1つ以上の記憶域有効サーバー(WebLogic Server Coherenceサーバー層)です。このトポロジには管理対象Coherenceコンテナがありません。このトポロジは通常、データ記憶域要件が低い場合(通常100 MB未満)に使用されます。

図7-9に、WebLogic Serverクラスタ内で記憶域有効および記憶域無効サーバーから構成されるトポロジを示します。2つのサーバーが記憶域有効であり、フェイルオーバーした場合は、1つのサーバーが他方のバックアップとして使用できることに注意してください。構成ウィザードを実行する場合は、すべての管理対象サーバーまたはクラスタがデフォルトでCoherenceクラスタのサーバーの一部になっています。

図7-9 ストレージ有効およびストレージ無効WebLogic Serverでのクラスタ・トポロジ

図7-9の説明が続きます
「図7-9 ストレージ有効およびストレージ無効WebLogic Serverでのクラスタ・トポロジ」の説明

7.5.1.2 Fusion Middleware構成ウィザードを使用した標準トポロジの構成

インフラストラクチャ・ソフトウェアのインストールに関する項の手順に従って、WebLogic Serverをインストールし、標準のインストール・トポロジを構成します。その標準トポロジにより、これらの要件を満たすデフォルトのCoherenceクラスタが用意されます。

構成ウィザードのドメインの作成ページで、新規拡張ドメインの作成を選択できることに注意してください。

他の構成は必要ありません。wss_username_token_client_policyおよびwss_username_token_service_policyポリシーを使用する場合は、NonceがCoherenceキャッシュに格納されます。

7.5.2 記憶域無効WebLogic Serverおよび記憶域有効管理対象CoherenceサーバーのNonceのキャッシュ

Coherenceクラスタ・トポロジをキャッシュする方法について説明します。

トピック:

7.5.2.1 ストレージ無効WebLogicサーバーおよびストレージ有効管理対象CoherenceサーバーのCoherenceクラスタ・トポロジの理解

このCoherenceクラスタ・トポロジは、1つ以上の記憶域無効WebLogic Serverクラスタまたはサーバー、および2つ以上の管理対象記憶域有効Coherenceサーバー(フェイルオーバー保護用)によって形成されます。図7-10は、通常、キャッシュ要件が高い場合(100 MBを超える)、およびWebLogic Serverがデータ・キャッシュに使用されていない場合に、このトポロジが使用されることを示しています。このトポロジでは、キャッシュへのすべてのアクセスにはキャッシュ・サーバーへのネットワーク・ラウンドトリップが必要であることに注意してください。

注意:

データ記憶域要件は、キャッシュの観点からみたOracle Coherenceからの一般的な推奨事項です。OWSMの場合、この要件は、キャッシュの観点からみると、非常に低いです。少なくとも2つのアプリケーション・サーバーでキャッシュを有効にしている場合(フェイルオーバー保護用)、サーバー・グループWSM-CACHE-SVRへより多くのCoherenceコンテナを追加するのはオプションです。

たとえば、アプリケーション・サーバーのすべてがダウンしたら、Nonceが失われると考える場合は、バックアップとしてCoherenceコンテナを追加する可能性があります。

図7-10 Coherenceクラスタ内のストレージ有効管理対象Coherenceサーバーでのクラスタ・トポロジ



7.5.2.2 Fusion Middlewareの構成ウィザードを使用したクラスタ・トポロジの構成

Fusion Middleware構成ウィザードを使用して、Nonceをキャッシュするために管理対象Coherenceサーバーをサーバー・グループに追加できます。WebLogic Server管理コンソールを使用して、ローカル記憶域が管理対象Coherenceサーバーに対して有効になっていて、記憶域がWebLogic Serverに対して無効になっていることを確認します。

注意:

アプリケーション・サーバーでCoherence記憶域を有効にしている場合、次の手順はオプションです。管理対象CoherenceコンテナでNonceをバックアップする場合にのみ必要です。

  1. インフラストラクチャ・ソフトウェアのインストールに関する項の手順に従って、WebLogic Serverをインストールし、標準のインストール・トポロジを構成します。次の項を参照してください。
    • Oracle Fusion Middlewareインフラストラクチャ・インストールの計画に関する項

    • Oracle Fusion Middlewareインフラストラクチャ・ソフトウェアのインストールに関する項

    • Oracle Fusion Middlewareインフラストラクチャ・ドメインの構成に関する項

    構成ウィザードのドメインの作成ページで、新規拡張ドメインの作成を選択できることに注意してください。

  2. 構成ウィザードの「管理対象サーバー」ページで、Coherence管理対象サーバーを特定します。Coherence管理対象サーバーの「サーバー・グループ」ドロップダウン・リストを開いて、「WSM-CACHE_SVR」を選択します。
  3. ドメインを作成したら、WebLogic Server管理コンソールを使用して、ローカル記憶域が管理対象Coherenceサーバーに対して有効になっていて、記憶域がWebLogic Serverに対して無効になっていることを確認します。

    WebLogic Server管理コンソールで、サーバー(またはクラスタ)の「構成」タブの「Coherence」サブタブの「ローカル記憶域有効」オプションを選択して、サーバー(またはクラスタ)の記憶域を有効または無効にします。

    CoherenceクラスタのメンバーであるWebLogicクラスタが記憶域無効として構成されている場合、記憶域有効としてサーバーをマークする必要はないことに注意してください。(記憶域有効設定は、WebLogicクラスタおよびWebLogic Serverの「Coherence」サブタブにあります)。

wss_username_token_client_policyおよびwss_username_token_service_policyポリシーを使用する場合は、NonceがCoherenceキャッシュに格納されます。

7.6 Fusion Middleware Controlを使用した部分的な暗号化の構成について

アサーション・テンプレートでは、メッセージ本文の完全な署名および暗号化だけでなく、部分的な署名および暗号化もサポートされています。SOAPメッセージ保護が可能なアサーション・テンプレートまたは事前定義済ポリシーの場合、デフォルトの動作はSOAPメッセージ本文全体を署名および暗号化して保護することです。必要な場合には、選択した要素を保護するように、アサーションおよびポリシーを構成できます。

トピック:

7.6.1 Fusion Middleware Controlを使用した部分的な暗号化の構成

事前定義済メッセージ保護ポリシー用のFusion Middleware Controlユーザー・インタフェースでは、署名、暗号化またはその両方を行うメッセージ部分を簡単に指定できます。本文全体、アイデンティティ固有のヘッダー要素や本文要素に対して署名、暗号化またはその両方を行うことができます。次に、部分的な暗号化の例を示します。

この例では、Fusion Middleware Controlを使用して、SOAPメッセージの一部が暗号化されます。

  1. クレジット・カード番号(cardNr)を承認する簡単なWebサービスを作成します。次の例はサンプルのペイロードを示しています。
    <soapenv:Body wsu:Id="Body-2grW1pYwjwsoskbLuMJZzg22"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-ws
    security-utility-1.0.xsd">
     
     
        <aaav:validateTheCard xmlns:aaav="http://aaavalidatecred/">
          <aaav:cardNr>string</aaav:cardNr>
           <aaav:firstName>string</aaav:firstName>
           <aaav:lastName>string</aaav:lastName>
           <aaav:validUntilDate>string</aaav:validUntilDate>
        </aaav:validateTheCard>
     
       </soapenv:Body>
    
  2. Fusion Middleware Controlで、メッセージ保護ポリシーを選択し、「編集」をクリックします。
  3. 「設定」タブで、「リクエスト」タブを選択します。
  4. 「メッセージの暗号化設定」セクションで、「本体全体を含める」の選択を解除します(図7-11)。
  5. 「本体要素」を開き、「追加」をクリックします。
  6. ネームスペースと要素名を入力します。この例では、カード番号のみが次のように暗号化されます。

    ネームスペース = http://aaavalidatecred/

    要素名 = cardNr

    「ポリシーの編集」ページの他のフィールドの詳細は、「リクエスト、レスポンスおよびフォルト・メッセージへの署名と暗号化の設定」を参照してください。

    次の例は、部分的な暗号化を使用したサンプルのポリシーを示しています。

     <orasp:encrypted-elements>
                   <orasp:element orasp:namespace="http://aaavalidatecred/"
    orasp:name="cardNr">n/a</orasp:element>
       </orasp:encrypted-elements>
    
  7. 「はい」をクリックして本体要素を追加し、「保存」をクリックして変更後のポリシーを保存します。

図7-11 メッセージ保護ポリシーの部分的な暗号化の例



7.6.2 SwAアタッチメントの保護

SOAPエンベロープ内に配置できないデータをアタッチメント(SwA)とともにSOAPメッセージをパッケージングすることは、標準的なことになってきています。プライマリSOAPメッセージでは、アタッチメントまたはMIMEヘッダー付きのアタッチメントとして追加のエンティティを参照できます。

各SwAアタッチメントはMIME部分であり、MIMEヘッダーを含みます。SwAアタッチメントを含めるでは、アタッチメントは署名されますが、そのアタッチメントに対応するMIMEヘッダーは署名されません。MIMEヘッダーを含めるでは、アタッチメントに加えて対応するMIMEヘッダーも署名されます。