Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理 12c (12.2.1.2) E82680-02 |
|
![]() 前 |
![]() 次 |
トピック:
このトピックでは、oracle/pii_security_policy
ポリシーを使用してPIIを保護する方法について説明します。
トピック:
注意:
PII暗号化鍵を構成し、次に使用環境に応じてoracle/pii_security_policy
ポリシーのアタッチ先を選択します。
SOAPリクエストおよびレスポンス・メッセージ、またはWSDLを検証し、保護するPIIデータを決定します。
2つの方法があります。
SOAアプリケーションをデプロイし、JDeveloper (または別のメカニズム)を使用してSOAPメッセージを確認して保護する必要のあるものを決定します。
「PIIポリシーのXPath式」のSOAPメッセージの例を参照してください。
SOAアプリケーションをデプロイし、デプロイしたアプリケーションのWSDLを確認して保護する必要のあるものを決定します。
Oracle Fusion Middlewareを使用したWebサービスの管理のWebサービスのWSDLドキュメントの表示に関する項の説明に従って、Webサービス・エンドポイントのWSDLドキュメントを表示します。
リクエスト・フェーズおよびレスポンス・フェーズの両方で、どのようなデータが渡されているかを確認する必要があります。つまり、リクエストとレスポンスでは異なるデータを保護する必要がある可能性があります。
リクエストおよびレスポンス・メッセージの両方でPIIデータを保護するためのXPath式を作成します。
詳細は、『Oracle Web Services Managerの理解』のPIIポリシーのXPath式に関する項のSOAPメッセージの例を参照してください。
これらのXPath式は、後ほど、request.xpath
およびresponse.xpath
属性のoracle/pii_security_policy
で指定します。
PII暗号化鍵を生成するために使用するパスワードCSFキーを構成します。
詳細は、資格証明ストアを構成するための鍵およびユーザー資格証明の追加を参照してください。PII暗号化鍵は、このパスワード資格証明から導出されます。
デフォルトで、oracle/pii_security_policy
はキーの値にpii-csf-key
を要求しますが、これは変更可能です。
Webサービス・クライアントとWebサービスが同じ資格証明ストアを共有していない場合は、PII暗号化鍵がそれぞれの資格証明ストアに存在し、同一である必要があります。
事前定義済のoracle/pii_security_policy
のコピーを作成し、そのコピーをWebサービスとクライアントにアタッチします。
次の手順を実行します。
ポリシーはサービス/参照レベルのみでアタッチする必要があり、クライアントおよびWebサービスの両方にアタッチします。
図8-1のJDeveloperに示されているSOAコンポジットを参照してください。このコンポジットの場合、ポリシーをbpelprocess_1client_ep
クライアントおよびPartnerLink1
参照の両方にアタッチします。ポリシーはコンポーネントにアタッチできません。
次の手順を実行してSOAコンポジットを表示し、oracle/pii_security_policy
ポリシーをアタッチします。
PIIポリシーは、SOAとOracle Service Busの両方のJCAアダプタにアタッチできます。
PIIポリシーをJCAバインディングにアタッチする方法の詳細は、Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理のサービス・バインディング・コンポーネントおよび参照バインディング・コンポーネントの管理に関する項を参照してください。
Oracle Service Busへのoracle/pii_security_policy
のアタッチ方法については、Oracle Service Busでのサービスの開発のメッセージ内の個人の身元を特定する情報の非表示に関する項を参照してください。
PIIポリシーは、SOAとOracle Service Busの両方のJCAアダプタにアタッチできます。
PIIポリシーをJCAバインディングにアタッチする方法の詳細は、Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理のサービス・バインディング・コンポーネントおよび参照バインディング・コンポーネントの管理に関する項を参照してください。
Oracle Service Busへのoracle/pii_security_policyのアタッチ方法については、Oracle Service Busでのサービスの開発のメッセージ内の個人の身元を特定する情報の非表示に関する項
を参照してください。
WLSTを使用してoracle/pii_security_policy
の属性をオーバーライドできます。
WLSTを使用してoracle/pii_security_policy
属性をオーバーライドするには、次の手順を実行します。
WLSTコマンドおよびその引数の詳細は、『WebLogic Server WLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
暗号化されたPIIが、なんらかの決定に必要になる場合があります。この場合、使用する前に付属のAPIによってPIIを明示的に復号化する必要があります。
たとえば、クレジット・カードの番号がPIIとしてマーク付けされており、SOAサービス・バインディング(エントリ・ポイント)で暗号化されている場合を想定します。BPELプロセス内でクレジット・カードの種類を判別するためにクレジット・カードの番号が必要な場合、APIを使用してクレジット・カードの番号を復号化する必要があります。
この目的で、oracle.security.xmlsec.pii.PIISecurity.java
クラスが用意されています。このクラスには、次のメソッドがあります。
Class: oracle.security.xmlsec.pii.PIISecurity.java /** * Converts cipher text string to plain text using password based key * derivation algorithm (PBKDF2). * * @param ciphertext text to decrypt * @param password password for key derivation * @param pbkdfAlgo key derivation algorithm which should be PBKDF2 * @param pbkdfSalt non-null and non-empty salt for key derivation * @param pbkdfIteration iteration count for key derivation * @param keySize size of key for key derivation * @param encAlg data encryption algorithm. it should be in the form: * "algorithm/mode/padding" for ex. AES/CBC/PKCS5Padding * @return plain text */ public static String decrypt(String ciphertext, char password[], String pbkdfAlgo, String pbkdfSalt, int bkdfIteration, int keySize, String encAlg);
decrypt
メソッドは暗号化されたPIIの復号化された値を返しますが、実際の値は更新せず、これは暗号化されたままになります。
SOAの場合、 『Oracle SOA SuiteでのSOAアプリケーションの開発』のOracle JDeveloperにおけるBPELプロセスでのJavaの埋込みの使用に関する項で説明されているように、Javaの埋込み機能を使用してこのAPIを起動できます。
注意:
PIIの復号化した値は、セキュリティ面で派生する問題を完全に理解している場合を除き、ログに記録しないでください。