A Oracle Web Services Managerセキュリティ・ポリシーの使用
この付録の内容は次のとおりです。
OWSMセキュリティ・ポリシーの概要
Oracle Fusion Middlewareでは、WebLogic Serverに加え、OWSMセキュリティ・ポリシーをWebLogic Server環境に統合するポータビリティ層がインストールされます。このポータビリティ層は、WebLogic JAX-WS Webサービスとクライアントを保護するために使用できるOWSMセキュリティ・ポリシーを提供します。
OWSMセキュリティ・ポリシーは、Webサービスのセキュリティを実施するWebLogic WS-Securityポリシーに代わる手段として使用できます。また、カスタムOWSMセキュリティ・ポリシーを作成して、WebLogic Webサービスとともに使用することもできます。
次の各項では、使用可能なOWSMポリシーの詳細およびポリシーを使用する状況について説明します。
Java EE WebサービスでサポートされているOWSMポリシー
Java EE WebサービスでサポートされているのはOWSMポリシーの一部のみです。『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のJava EE WebサービスでサポートされているOWSMポリシーに関する項を参照してください。
OWSMセキュリティ・ポリシーを使用するケース
環境内の他の場所ですでにSOA、ADF、WebCenterなどのアプリケーションを使用しており、一貫したセキュリティ環境を構築する必要がある場合は、OWSMセキュリティ・ポリシーを使用してJAX-WS Webサービスを保護できます。
WebLogic JAX-WS WebサービスをOracle Fusion Middlewareアプリケーションと併用する場合は、これらのWebサービスをOWSMセキュリティ・ポリシーで保護し、一貫性と相互運用性を備えたWebサービス・セキュリティを確立する必要があります。
つまり、スタンドアロンのWebLogic Server Webサービス・アプリケーションではなく、Oracle Fusion Middlewareアプリケーションと相互作用するアプリケーションで使用するWebLogic JAX-WS Webサービスは、OWSMセキュリティ・ポリシーで保護する必要があります。
次のシナリオを参考にしてください。
-
SOAコンポジット・サービス、ADFコンポーネント、WebCenterサービスなどと相互作用するWebLogic JAX-WS Webサービスまたはクライアントを開発する場合、OWSMセキュリティ・ポリシーを使用する必要があります。
-
WebLogicネイティブのJava JAX-WS Webサービスのみを開発する場合、WebLogic WS-Securityポリシーを使用する必要があります。
表A-1は、OWSMポリシーを使用する際のポリシー選択のガイドラインをまとめたものです。この表では、次のルールが適用されます。
-
weblogic.jws.Policy
アノテーションはWebLogic Webサービス・ポリシーに適用されます -
weblogic.wsee.jws.jaxws.owsm.SecurityPolicy
アノテーションはOWSMポリシーに適用されます
表A-1 ポリシー選択のガイドライン
@Policy | @SecurityPolicy | 実装する機能 | 使用するポリシー |
---|---|---|---|
はい |
いいえ |
複数あるWSS 1.0は、キー参照メソッドをサポートする必要があります |
|
はい |
いいえ |
ユーザー名トークン・ダイジェスト認証 |
|
いいえ |
はい |
Kerberos認証 |
|
はい |
いいえ |
WSS 1.1派生キー |
|
はい |
いいえ |
すべてのSAML 2.0シナリオ |
|
はい |
いいえ |
署名する前に暗号化 |
WSS10、WSS11両方の対称バインディングまたは非対称バインディングにおける、次のようなポリシー・アサーション<sp:EncryptBeforeSigning/>。 <wsp:Policy xmlns:wsp="..." > <sp:SymmetricBinding> <wsp:Policy> .. . <sp:EncryptBeforeSigning/> . . . </wsp:Policy> </sp:SymmetricBinding> . . . </wsp:Policy> |
はい |
いいえ |
複数のポリシー選択肢 |
次のようなポリシー・アサーション。 <wsp:Policy xmlns:wsp="..." > <wsp:ExactlyOne> <wsp:All> ... ALternative 1 ... </wsp:All> <wsp:All> ... ALternative 2 ... </wsp:All> </wsp:ExactlyOne> </wsp:Policy> |
WS-RMおよびMTOMなどの非セキュリティ機能には、WebLogic Webサービス・ポリシーを使用します。
特定のポリシー・インスタンスでは、Webサービス・クライアントまたはサービスにOWSMポリシーをアタッチし、WebLogic Java EE WebサービスまたはクライアントにWebLogic Webサービス・ポリシーをアタッチして、2種類のポリシーを相互運用できます。特定の相互運用性シナリオについては、Oracle Web Services Manager相互運用性ソリューション・ガイドのOracle WebLogic Server 11g Webサービス・セキュリティ環境との相互運用性を参照してください。
これらの相互運用性シナリオについては、次の点を考慮した上でOWSMポリシーとWebLogic Webサービス・ポリシーのいずれかを使用してください。
-
OWSMポリシーでその他の非標準のポリシー・アサーションが構成で必要とされる場合は、
@SecurityPolicy
アノテーションを使用します。このような非標準のアサーションの例としては、次のものがあります。
<oralgp:Logging xmlns:oralgp="http://schemas.oracle.com/ws/2006/01/loggingpolicy" . . . orawsp:category="security/logging"> . . . </oralgp:Logging>
または
<orawsp:Config xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy" . . .> <orawsp:PropertySet . . .> . . . </orawsp:PropertySet> </orawsp:Config>
-
アプリケーションが、既存のWebLogic WebサービスまたはMicrosoft Windows Communication Foundation (WCF)/.NET Frameworkサービスとの相互運用に使用され、前述した非標準のポリシー・アサーションが必要でない場合、WebLogic Webサービス・ポリシーを持つ
@Policy
アノテーションを使用します。
WebLogic Webサービス・ポリシーおよびOWSMポリシーの相互運用性
WebLogic Webサービス・ポリシーのサブセットは、OWSMポリシーと相互運用できます。
つまり、特定のポリシー・インスタンスでは、Webサービス・クライアントまたはサービスにOWSMポリシーをアタッチし、WebLogic Java EE WebサービスまたはクライアントにWebLogic Webサービス・ポリシーをアタッチして、2種類のポリシーを相互運用できます。
特定の相互運用性シナリオについては、Oracle Web Services Manager相互運用性ソリューション・ガイドのOracle WebLogic Server 11g Webサービス・セキュリティ環境との相互運用性を参照してください。
WebLogic Serverには、OWSMとの相互運用性のためのポリシー(表A-2を参照)が用意されています。
表A-2 相互運用性WebLogic WS-Securityポリシー
ポリシー名 | 説明 |
---|---|
|
このポリシーは、holder-of-key確認メソッド(SAMLトークン内のキーが署名に使用される)による認証のためのSAMLトークンを含む、 |
|
このポリシーは、sender-vouches確認メソッドによる認証のためのSAMLトークン(リクエストとレスポンスの両方でWSS1.1 X509の対称バインディングにより署名および暗号化される)を含む、 送信側のX509証明書によって承認が行われ、メッセージの署名は保護されます。Basic256アルゴリズム・スイート(暗号化にはAES256)ではなく、Basic128アルゴリズム・スイート(AES128)を使用する必要があります。 |
|
このポリシーは、sender-vouches確認メソッドによる認証のためのSAMLトークン(クライアントの秘密キーで署名される)を含む、 |
|
sender-vouches確認メソッドによって認証を行うSAML 1.1トークンを使用する、双方向SSL。クライアント証明書が必要であり、受信側で発信元の公開証明書の有無をチェックします。 |
|
このポリシーは、X.509証明書による相互認証用に、 |
|
このポリシーは、 |
|
このポリシーは、 |
|
このポリシーは、非対称バインディングを備えたWSS 1.1 X509とプレーン・テキスト・ユーザー名トークンを備えた認証がある |
|
このポリシーは、クライアントの秘密キーで署名された、認証用の暗号化されたプレーン・テキスト・パスワードを含む、 |
|
このポリシーは、 |
|
このポリシーは、 |
|
このポリシーは、 |
|
このポリシーは、 |
OWSMセキュリティ・ポリシーのJAX-WS Webサービスへのアタッチ
OWSM WS-SecurityポリシーとWebLogic Webサービス・ポリシーのアタッチ・モデルは、類似しています。次のいずれかの方法でOWSMポリシーをWebLogic JAX-WS Webサービスにアタッチできます。
-
設計時のポリシー・アノテーション(Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のアノテーションを使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチを参照)。
-
実行時のWebLogic Server管理コンソール(「管理コンソールを使用したOWSMセキュリティ・ポリシーのアタッチ」を参照)。
-
実行時のFusion Middleware ControlまたはWLST (『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の次の項を参照)。
Webサービスにアタッチできるセキュリティ・ポリシーは、WebLogic Webサービス・セキュリティ・ポリシーまたはOWSMポリシーのどちらか1つのみです。アノテーション・メカニズム、WebLogic Server管理コンソール、Fusion Middleware Controlのいずれか、あるいはこの3つの組合せを使用しても、WebLogic Webサービス・ポリシーおよびOWSMポリシーの両方を同じWebサービスにアタッチすることはできません。
OWSMセキュリティ・ポリシーはJAX-WS Webサービスにのみアタッチできます。このタイプのポリシーはJAX-RPC Webサービスにはアタッチできません。
次の各項では、WebLogic Server管理コンソールを使用してOWSMセキュリティ・ポリシーをJAX-WS Webサービスにアタッチする方法について説明します。
管理コンソールを使用したOWSMセキュリティ・ポリシーのアタッチ
WebLogic Server管理コンソールを使用して実行時にデプロイ済WebサービスにOWSMポリシーをアタッチする方法は、メッセージ・レベルのセキュリティの構成で説明しているように、WebLogic Webサービス・ポリシーをアタッチする方法と似ています。
JWSファイルで@SecurityPolicy
アノテーションも@SecurityPolicies
アノテーションも使用せず、実行時にのみ、WebLogic Server管理コンソールを使用してポリシーをアタッチすることが可能です。または、アノテーションを使用してポリシーの一部をアタッチし、その他のポリシーを実行時にアタッチできます。JWSアノテーションを使用してポリシー・ファイルをアタッチする場合、WebLogic Server管理コンソールを使用して実行時にこのポリシーを削除できます。
実行時、WebLogic Server管理コンソールでは、ポリシー内のアサーションが互いに矛盾している場合や、JWSアノテーションを使用して設計時にアタッチしたポリシー内でアサーションが矛盾している場合でも、必要な数のポリシーをWebサービスとその操作にアタッチできます。アタッチした複数のポリシーが連動するかどうかは、アタッチしたユーザーが確認します。なんらかの矛盾がある場合、クライアント・アプリケーションがWebサービスの操作を呼び出すときに、WebLogic Serverから実行時エラーが返されます。
ポリシーの検証は行われません。次の組合せが有効です。
-
1つのポリシー・サブジェクトには、1つの管理ポリシーをアタッチできます。
-
1つのサブジェクトには、サブタイプの認証を行う1つのセキュリティ・ポリシーをアタッチできます。
-
1つのサブジェクトには、サブタイプのメッセージ保護を行う1つのセキュリティ・ポリシーをアタッチできます。
-
1つのサブジェクトには、サブタイプの認可を行う1つのセキュリティ・ポリシーをアタッチできます。
ノート:
1つのポリシー・サブジェクトに1つまたは2つのセキュリティ・ポリシーがアタッチされていることがあります。セキュリティ・ポリシーには、認証とメッセージ保護のいずれかのサブタイプ・カテゴリに属するアサーション、または両方のサブタイプ・カテゴリに属するアサーションを含めることができます。2つ目のセキュリティ・ポリシーには、認可サブタイプに属するアサーションが含まれています。
-
認証ポリシーと認可ポリシーを両方ともポリシー・サブジェクトにアタッチする場合は、認証ポリシーを認可ポリシーより前に置く必要があります。
WebLogic Server管理コンソールでOWSMセキュリティ・ポリシーをアタッチするには、次のステップを実行します。
ポリシー・アタッチ後のキャッシュのリフレッシュ
WebLogic Serverでは、デプロイ済リソースのデータがキャッシュされ、1つのセッションにつき1つのキャッシュがあります。Webサービスにアタッチされたポリシーを表示するには、このキャッシュをクリアする必要があります。
通常、WebLogic Server管理コンソールは、ユーザーが操作した最後のデプロイ済リソースをキャッシュします。外部ツールまたはAPI (Fusion Middleware Control、WLST、JMX APIなど)によるキャッシュ済デプロイメントへの変更は、キャッシュ済デプロイメントには反映されません。
次のシナリオについて考えます。
- WebLogic ServerにWebサービスをデプロイした後、WebLogic Server管理コンソールでそのWebサービスの構成ページに移動したとします。現在、キャッシュには、このデプロイ済リソースの情報が存在します。
- Fusion Middleware Controlを使用して、このWebサービスにOWSMセキュリティ・ポリシーをアタッチした場合、ページをリフレッシュしても変更内容はWebLogic Server管理コンソールに反映されません。
ポリシーのアタッチを確認するには、キャッシュをクリアする必要があります。これは、次の2つの方法で実行できます。
-
別のデプロイメントに移動した後(これにより、そのデータがキャッシュされます)、元のページに戻ります。
-
WebLogic Server管理コンソールをログアウトして、再度ログインします。
OWSMセキュリティ・ポリシーのJAX-WS Webサービス・クライアントへのアタッチ
ここでは、設計時にOWSMセキュリティ・ポリシーをWebサービス・クライアント・アプリケーションにアタッチする大まかなステップを説明します。『Oracle WebLogic Server JAX-WS Webサービスの開発』の「基本的なJAX-WS Webサービス・クライアントの開発」を参照してください。
ノート:
デプロイ済のWebサービスを呼び出すクライアント・アプリケーションを作成してあり、クライアント側のポリシー・ファイルをアタッチすることでそのクライアント・アプリケーションを更新するものとします。また、Antベースの開発環境を設定済であり、かつclientgen
Antタスクを実行するためのターゲットを含む、作業用のbuild.xml
ファイルがあることが前提となっています。
クライアント・アプリケーションを実行するとポリシー・ファイルがロードされ、Webサービス・クライアント・ランタイムは、これを使用してSOAPリクエスト・メッセージのセキュリティを有効にします。
グローバルにアタッチされたOWSMポリシーの無効化
動作無効ポリシーを使用すると、ポリシー・セット内のグローバルにアタッチされたOWSMポリシーを事実上無効化できます。表A-3に、Java EE Webサービスおよびクライアントでサポートされていて、グローバルにアタッチされたOWSMセキュリティ・ポリシーを無効化できる動作無効ポリシーをリストします。
表A-3 Java EE Webサービスおよびクライアントでサポートされている動作無効ポリシー
動作無効ポリシー | 説明 |
---|---|
OWSM動作無効ポリシー |
Java EE Webサービスおよびクライアントに対して有効なOWSM動作無効ポリシーは、次のとおりです。
『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の動作無効ポリシーに関する項を参照してください。 『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の次の項に定義されている手順で、Java EE Webサービスまたはクライアントに、OWSM動作無効ポリシーを直接アタッチします。 |
WebLogic動作無効ポリシー |
WebLogic動作無効ポリシー <?xml version="1.0"?> <wsp15:Policy xmlns:wsp15="http://www.w3.org/ns/ws-policy"> <wsp15:All> <wsp15:Policy/> </wsp15:All> </wsp15:Policy> 次の項に定義されている手順で、Java EE Webサービスまたはクライアントに、 Webサービス: Webサービス・クライアント: |
『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の次の項を参照してください。
Webサービス・クライアントのポリシー構成のオーバーライド
次のいずれかの方法を使用して、OWSMセキュリティ・ポリシーのデフォルトの構成プロパティを設計時にプログラムでオーバーライドできます。
-
JAX-WS
RequestContext
(Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理の設計時のクライアント・ポリシー構成プロパティのオーバーライドを参照)。 -
@SecurityPolicy
アノテーションを使用してOWSMセキュリティ・ポリシーをアタッチする際の@Property
アノテーション(Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のアノテーションを使用したポリシーのJava EE Webサービスおよびクライアントへのアタッチを参照)。
Webサービスのモニターおよびテスト
WebLogic Server管理コンソールまたはFusion Middleware Controlを使用して、OWSMセキュリティ・ポリシーで保護されるWebLogic JAX-WS Webサービスをモニターおよびテストできます。
WebLogic Server管理コンソールからWebサービスをモニターしてテストするには、次のステップを実行します。
Fusion Middleware Controlを使用してWebサービスをモニターおよびテストするには、Webサービスの管理のWebサービスのモニターと監査およびWebサービスのテストを参照してください。