26 Webサービスの保護

Oracle Web Services Manager (OWSM)のセキュリティ・ポリシーには、組織全体にわたってWebサービスを一貫して管理および保護するためのフレームワークが用意されています。これらのポリシーは、Webサービスやクライアントなどのポリシー・サブジェクトに直接アタッチできます。注釈および機能クラスを含むデザインタイム・セキュリティ追加機能を使用して、ポリシーをSOAPおよびREST Webサービスにアタッチできます。Oracle JDeveloperを使用して注釈または機能クラスを追加してポリシーをアタッチする方法や、各アプローチに関連する良い点と悪い点を調べる方法について学習してください。

OWSMに関する情報の完全なライブラリについては、Oracleヘルプ・センターの「Oracle Fusion Middleware 12c (12.1.3) Oracle Web Services Manager - タスク」を参照してください。

注意:

ここに示す例を実行する前に、「JCS - SaaS Extensionを使用した開発用のIDEの構成」内のタスクをまだ実行していない場合は、これらのタスクを実行してください。

Webサービスでのデザインタイム・セキュリティ追加機能の実装

この項では、Oracle Web Services Manager (OWSM)のポリシーに関する高度な概念的な情報とともに、注釈および機能クラスなどのデザインタイム追加機能を使用したSOAPおよびREST Webサービスへのポリシーのアタッチに関連する良い点と悪い点を示します。この項ではまた、JCS - SaaS ExtensionOracle Sales Cloudの両方の境界にまたがる環境内でアプリケーションが実行されることが想定される場合のポリシー選択に関する情報も提供します。

デザインタイム・セキュリティまたはランタイム・セキュリティの使用

Webサービスをプログラミングしている場合はおそらく、Webサービスおよびその操作に関するポリシー・ファイルを把握していると思われます。この場合、注釈または機能クラス(あるいはその両方)を使用して、これらのデザインタイム・セキュリティの追加機能を作成します。ただし、まれに、設計時にどのポリシー・ファイルを使用すべきか確信がない場合や、別のポリシーの追加またはすでにアタッチ済みのポリシーのオーバーライドによってポリシー選択を変更する必要性に気付いた場合、実行時までその判断を下すのを保留できます。Webサービスがデプロイされた後、JCS - SaaS Extension SDK (Software Development Kit)に用意されているコマンド・ライン・インタフェース(CLI)を使用して、適切なポリシー・ファイルを関連付けることができます。

設計時にはセキュリティ追加機能を指定することが一般的ですが、注釈の組込みや機能クラスの使用を一切せずにWebサービスを作成し、実行時にのみポリシー・ファイルを関連付けることや、注釈や機能クラスを使用してポリシー・ファイルを指定してから実行時に追加して関連付けることもできます。このような方法は可能ですが、推奨される方法ではありません。セキュリティに関する決定はアプリケーションの開発時に行ってから、設計時に追加する必要があり、後で思いつきとして追加すべきではありません。

実行時には、ポリシー・ファイル内のポリシー・アサーションが互いに矛盾していたり、注釈に関連付けられたポリシー・ファイル内のアサーションと矛盾していたりしても、必要な数のポリシー・ファイルをいくつでもWebサービスおよびその操作に関連付けることができます。関連する複数のポリシー・ファイルが連携して機能することを確認するかどうかの判断は自分次第です。矛盾が存在する場合、クライアント・アプリケーションがWebサービス操作を起動したときにランタイム・エラーが返されます。これが、このような競合が発生しないことを確認でき、設計時に決定事項を実装できる場合に、セキュリティに関する決定を開発プロセスの初期に慎重に計画した方がよいもう1つの理由です。

OWSMポリシーの使用

Oracle Fusion Middlewareスタックに組み込まれたコンポーネントの1つであるOracle Web Services Manager (OWSM)には、Oracle Weblogic Serverインフラストラクチャにデプロイされているアプリケーションによって公開されるWebサービスを保護およびアクセスする方法を提供します。必要な下位レベルのセキュリティ・コンポーネントをサーバー・ポリシーとクライアント・ポリシーの管理可能な個別ユニットにパッケージ化することにより、OWSMでは、アプリケーションに関する効果的なセキュリティ保護およびアクセス制御を構築するために、微細な技術詳細を評価する作業から開発者と管理者を解放します。JCS - SaaS ExtensionおよびOracle Sales CloudはOracle Fusion Middlewarプラットフォーム上で動作するため、これらは両方ともOWSMを活用できます。

関連するサービス間のWebサービス・リクエストの認証は、OWSMフレームワークによって行うことができます。OWSMを使用すると、関連するサービス間の相互作用を保護するために必要な設定を最小限に抑えやすくなります。セキュリティ・トークンは、OWSMによってSaaSまたはPaaS側で生成できます。

事前作成された6つのOWSMクライアント・ポリシーがこのサーバー・ポリシーと互換性を持ちますが、本番事例の大部分では、使用に最適なのはSecurity Assertion Markup Language (SAML) saml_tokenのクライアント・ポリシーです。たとえば、Oracle Sales Cloudの場合、外部に公開されたWebサービスの大部分は、伝送路経由でユーザー認証とメッセージ保護の両方を実現するOWSMサービス・ポリシーであるoracle/wss11_saml_or_username_token_with_message_protection_service_policyによって保護されます。「Oracle Sales Cloud SOAP Webサービスのクライアントのセキュリティ・ポリシーの選択」を参照してください。JCS - SaaS ExtensionにデプロイされているWebサービス・アプリケーションに対して同じポリシーを採用することを選択したり、ニーズにより適した異なるポリシーを使用したりできます。

認証のタイプ

サービス間でユーザー・アイデンティティを認証するために次のメカニズムを使用できます。

  • Security Assertion Markup Language (SAML)トークン: SAMLは、関連するサービス用として推奨される認証テクノロジです。アイデンティティ・プロバイダとして指定されたサービスは、関連するサービス・プロバイダからのリクエストを認証し、ユーザー・アイデンティティを確立します。認可は、確立されたアイデンティティに基づいています。SAMLは通常、関連するサービス間のSOAPメッセージとともに使用されます。関連するOracle Cloudサービスは、SAML認証用としてOWSMを使用できます。

  • ユーザー名トークンまたはHTTP基本認可: 関連付けられていないかOWSMを使用していないサービスの場合、ユーザー名トークン(OAuthトークンなど)、またはSSL接続を介して渡されたIDを使用した基本認可が可能です。ユーザー名トークン・ポリシーには、送信Webサービス・リクエスト・メッセージの一部としてヘッダーにユーザー資格証明が含まれます。HTTP基本ポリシーは、送信リクエストのHTTPヘッダー・セクションに資格証明を渡します。

「Oracle Sales Cloud SOAP Webサービスのクライアントのセキュリティ・ポリシーの選択」を参照してください。

JCS - SaaS Extension CLIを使用した実行時のセキュリティ・ポリシーのアタッチ、デタッチおよびオーバーライド

JCS - SaaS Extension SDKは、JCS - SaaS Extensionインスタンスの管理およびJCS - SaaS Extension用のアプリケーションの開発のためのコマンド・ライン・ベースのユーティリティを備えたダウンロード可能なパッケージです。

アプリケーションおよびドメイン構成シェルを使用すると、一般的なWebサービス構成タスクを実行できます。CLIコマンドを使用して、JCS - SaaS ExtensionインスタンスのWebLogicドメインで実行されているWebサービスおよびWebサービス・クライアントに対して複数のタスクを実行できます。これらのタスクには、実行中のすべてのWebサービスおよびWebサービス・クライアントのリスト、使用可能なすべてのOWSMポリシーのリスト、Webサービス・エンドポイントとWebサービス・クライアント・ポート上のポリシーの管理、およびWebサービス構成とポリシー・オーバーライドの設定が含まれます。

また、構成シェルを使用して、ドメイン内のWebサービスおよびWebサービス・クライアント上のOWSMポリシーを有効化、無効化、アタッチ、デタッチおよびオーバーライドすることもできます。

WebサービスまたはWebサービス・クライアントにアタッチされたOWSMセキュリティ・ポリシーをオーバーライドする方法の詳細は、「実行時のOWSMセキュリティ・ポリシーのオーバーライド」を参照してください。

注釈を使用したOWSMポリシーのアタッチ

weblogic.wsee.jws.jaxws.owsm.SecurityPolicy (@Security Policy)を使用して単一のポリシーまたはweblogic.wsee.jws.jaxws.owsm.SecurityPolicies (@SecurityPolicies)を複数のポリシーにアタッチすることにより、設計時にJava EE Webサービスおよびクライアントにセキュリティ・ポリシーをアタッチできます。Java EE Webサービスに対してはOWSMポリシーのサブセットのみがサポートされています。

Java EE Webサービスの場合、クラス・レベルでのみOWSMセキュリティ・ポリシーをアタッチできます。Java EE Webサービス・クライアントの場合、java.xml.ws.WebServiceRef注釈を使用して定義されたWebサービス・インジェクション・ターゲットにOWSMポリシーをアタッチできます。「注釈を使用したSOAP WebサービスへのOWSMポリシーのアタッチ」および「注釈を使用したREST WebサービスへのOWSMポリシーのアタッチ」を参照してください。

注意:

機能クラスを使用したJava EE Webサービス・クライアントへのOWSMセキュリティ・ポリシーのアタッチは、注釈より優先されます。

機能クラスを使用したOWSMポリシーのアタッチ

設計時に機能クラスを使用してOWSMポリシーをアタッチする場合、クライアント・アプリケーションがデプロイされた後にポリシーを追加または変更することはできません。デプロイメント後にポリシーを追加または変更するには、設計時に注釈を使用してWebサービス・クライアントにOWSMポリシーをアタッチする必要があります。「機能クラスを使用したWebサービス・クライアントへのOWSMポリシーのアタッチ」を参照してください。

異種環境での実行時のポリシー選択に関する考慮事項

JCS - SaaS ExtensionとOracle Cloud SaaSサービスの境界にまたがる異種環境でアプリケーションがWebサービスを使用してデータを公開している場合、OWSMセキュリティ・ポリシーの使用によって得られるメリットを活用することにより、アクセスを制限し、Webサービスによって公開されるデータを保護する必要があります。

認証または認可(あるいはその両方)を最初から実装したり、境界をまたがって機能するか心配したりする必要はありません。これらは、複数の環境にわたってすでに完全にテストされています。

注釈および機能クラスを使用して設計時のみにおけるセキュリティの追加機能としてこの保護を柔軟に追加したり、設計時に何らかの保護を追加してから実行時に別の保護を宣言して追加したり、設計時には保護を追加せずに実行時にのみ保護を追加したりすることが可能です。

このような理由により、OWSMセキュリティ・ポリシーを使用してWebサービスおよびWebサービス・クライアントを保護することをお薦めします。

注釈を使用したSOAP WebサービスへのOWSMポリシーのアタッチ

ポリシー注釈をJavaクラスに直接追加することにより、SOAP WebサービスにOWSMセキュリティ・ポリシーをアタッチできます。

Oracle JDeveloperでJavaクラスにポリシー注釈をアタッチする手順:
  1. ソース・エディタでWebサービス・クラスを開きます。
  2. 注釈の入力を開始します(@SecurityPolicyなど)。一時停止するか、[Alt]を押しながら[Enter]をクリックすると、ポップアップが表示され、ここで、文を完成するための正しいエントリを選択できます。

    次のように、Javaクラス内の weblogic.wsee.jws.jaxws.owsm.SecurityPolicy注釈を使用して単一のポリシーをアタッチできます。

    @SecurityPolicy(uri = "oracle/wss11_message_protection_service_policy")

    複数の@SecurityPolicy elementsが含まれるweblogic.wsee.jws.jaxws.owsm.SecurityPolicies注釈を使用して、複数のポリシーをアタッチできます。

    注意:

    有効なポリシーのリストを表示するには、 uri=""を入力し、空の引用符内にカーソルを置き、[Ctrl]と[Alt]を押しながら[Space]を押します。

Oracle JDeveloperで注釈を使用してSOAP Webサービス・クライアントにOWSMポリシーをアタッチする手順:

  1. ソース・エディタでWebサービス・クライアントを開きます。

  2. インジェクション・ターゲット行にカーソルを置き、マウスを右クリックし、コンテキスト・メニューから「JEEクライアント・ポリシー注釈の追加」を選択します。

    OWSMセキュリティ・ポリシーのリストが含まれる「クライアント・ポリシー構成」ウィンドウが表示されます。

  3. クライアントにアタッチするセキュリティ・ポリシーを選択します。

    OWSMポリシーをアタッチする場合、ポリシーおよびそのアサーションに関する追加情報を参照できます。

    • 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

    • 「ビュー」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

    • 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

    • 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。

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

    クライアント・コードは、適切な注釈を使用して更新されます。

注釈を使用したREST WebサービスへのOWSMポリシーのアタッチ

REST Webサービスを保護するために、OWSMで事前定義済のセキュリティ・ポリシーの1つをアタッチできます。

Oracle JDeveloperでREST Webサービスにポリシーをアタッチする手順:
  1. 「アプリケーション」ウィンドウで、「Webコンテンツ」 >「WEB-INF」フォルダにあるweb.xmlファイルを右クリックします。
  2. 「RESTfulアプリケーションの保護」を選択します。
    「リストからのポリシーの選択」ダイアログが開きます。
  3. リストからセキュリティ・ポリシーを選択します。
    アタッチできるのは、1つの認証ポリシーおよび1つの認可ポリシーのみです。
  4. 「OK」をクリックします。
    セキュリティ・ポリシー構成がwsm-assembly.xmlデプロイメント・ディスクリプタ・ファイルに保存されます。 wsm-assembly.xmlファイルが存在しない場合は作成されます。

REST Webサービス・クライアントを保護するために、OWSMで事前定義済のセキュリティ・ポリシーの1つをアタッチできます。

「クライアント・ポリシー構成」ダイアログでRESTクライアントにOWSMポリシーをアタッチする手順:

  1. 「アプリケーション」ウィンドウで、「アプリケーション・ソース」フォルダにあるREST Webサービス・クライアント・ファイルを右クリックします。

  2. 「セキュアRESTfulクライアント」を選択します。

    「クライアント・ポリシー構成」ダイアログが開きます。

  3. リストからセキュリティ・ポリシーを選択します。

    アタッチできるのは、1つの認証ポリシーおよび1つの認可ポリシーのみです。

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

    クライアント内のcustomizeClientConfigurationメソッドが更新され、ポリシー・アタッチメントが組み込まれます。

OWSMポリシーをアタッチする場合、ポリシーおよびそのアサーションに関する追加情報を参照できます。

  • 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

  • 「ビュー」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

  • 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

  • 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。

機能クラスを使用したWebサービス・クライアントへのOWSMポリシーのアタッチ

機能クラスをWebサービス・クライアントに手動で追加することにより、WebサービスにOWSMセキュリティ・ポリシーをアタッチできます。 weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeatureクラスを使用して単一のポリシーをアタッチするか、weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeatureを使用して複数のポリシーをアタッチします。@SecurityPolicy注釈を使用してOWSMセキュリティ・ポリシーをアタッチするときに、@Property注釈を使用して設計時にOWSMセキュリティ・ポリシーのデフォルトの構成プロパティをプログラムでオーバーライドできます。

Oracle JDeveloperで機能クラスを使用してWebサービス・クライアントにOWSMポリシーをアタッチする手順:
  1. 「アプリケーション」ウィンドウで、「アプリケーション・ソース」フォルダにあるWebサービス・クライアント・ファイルをダブルクリックします。
    IDEコード・エディタでソース・ファイルが開きます。
  2. SecurityPolicyFeatureクラスを追加し、Webサービス・クライアントにOWSMポリシーをアタッチします。
    たとえば、JAXWSServiceにoracle/wss_username_token_client_policyをアタッチするには、太字の情報を追加します。
    ...JAXWSService jaxWsService = new JAXWSService (); weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature securityFeature = new weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature { new weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature("policy:oracle/wss_username_token_client_policy") }; JAXWSServicePort port = jaxWsService.getJaxWsServicePort(securityFeature); ...
  3. 完了したら、[Ctrl]を押しながら[S]を押し、ソース・ファイルを保存します。

注意:

設計時に機能クラスを使用してOWSMポリシーをアタッチする場合、クライアント・アプリケーションがデプロイされた後にポリシーを追加または変更することはできません。デプロイメント後にポリシーを追加または変更するには、設計時に注釈を使用してWebサービス・クライアントにOWSMポリシーをアタッチするか、デプロイメント後にWebサービス・クライアントにOWSMポリシーをアタッチする必要があります。

RESTful Webサービスへのポリシーのアタッチ

OWSMポリシーを使用して、JCS - SaaS ExtensionにデプロイされているRESTful Webサービスを保護できます。

OWSMを使用してRESTful Webサービスを保護するには、次のいずれかのOWSM WSポリシーを使用します。

  • oracle/multi_token_over_ssl_rest_service_policy: このポリシーでは、クライアントによって送信されたトークンに基づいて、HTTP基本(ユーザー名/パスワード)、SAML 2.0ベアラー・トークン、HTTP OAMセキュリティおよびJWTトークン・セキュリティの認証ポリシーのうち正確に1つを施行します。このポリシーはまた、HTTP基本、SAML 2.0ベアラー・トークンまたはJWTトークンの認証ポリシーが使用されている場合、トランスポート・プロトコルがHTTPSであることを検証します。

  • oracle/multi_token_rest_service_policy: このポリシーでは、クライアントによって送信されたトークンに基づいて、HTTP基本(ユーザー名/パスワード)、SAML 2.0ベアラー・トークン、HTTP OAMセキュリティおよびJWTトークン・セキュリティの認証ポリシーのうち正確に1つを施行します。

「Oracle Web Services Managerを使用したWebサービスの保護およびポリシーの管理」には、Webサービスを保護するためのOWSMの機能に関する広範なドキュメントが含まれています。Oracle PaaSにも同じOWSM機能が用意されているため、「サーブレット・アプリケーションへのポリシーの直接アタッチ」に詳述されているアプローチを使用してRESTful Webサービスを保護できます。

実行時のOWSMセキュリティ・ポリシーのオーバーライド

実行時にJCS - SaaS Extension SDKのコマンド・ラインを使用して、注釈を使用して設計時にWebサービスまたはWebサービス・クライアントにアタッチされたOWSMセキュリティ・ポリシーをオーバーライドします。

JCS - SaaS Extension SDKにパッケージされているコマンド・ライン・インタフェース(CLI)では、通常はOracle Fusion Middleware ControlまたはOracle WebLogic Scripting Tool (wlst)のオンプレミス・バージョンで使用可能であるアプリケーションとドメインの管理および構成機能が公開されています。CLIにこれらの機能が含まれているため、Webベースの管理ツール間の管理上のギャップが埋められます。SDKに含まれる実行可能なJARファイルであるjavacloud.jarには、様々なアプリケーション構成タスクを実行できる構成シェルであるconfig-shellが含まれています。構成シェル内の複数のタスクにより、Webサービスを提供またはコールするアプリケーションを、Oracle Web Services Manager (OWSM)ポリシーを使用して構成できるようになります。

JCS - SaaS Extensionにデプロイされたアプリケーション内のWebサービスをこれらのconfig-shellコマンドによって構成できるかどうかは、アプリケーションがWebサービスを参照する方法によって異なります。wlstがアプリケーション内のWebサービスのポリシー設定を読取りおよび書込みできる場合(オンプレミス・デプロイメントが前提)、config-shellコマンドでこれらの設定を管理することもできます。同様に、アプリケーションWebサービスをOracle Fusion Middleware Controlで管理できる場合(この場合もオンプレミス・デプロイメントが前提)、CLI config-shellコマンドを使用してこれらを管理することもできます。

一般的なconfig-shellセッションを次に示しますが、この間、アプリケーション公開済WebサービスはOWSMセキュリティ・ポリシーを使用して構成されます。

注意:

ここでは、サーバー側のWebサービス・ポリシーのメンテナンスのみを示しますが、config-shellを使用したWebサービス・クライアントのメンテナンスも非常に似ています。シェル・コマンドのわずかな相違の詳細は、ツールのオンライン・ヘルプを参照してください。

WebサービスにアタッチされたOWSMセキュリティ・ポリシーをオーバーライドする手順:

  1. JCS - SaaS Extension SDKを使用してconfig-shellを起動する手順:
    java -jar javacloud.jar config-shell -a <admin-host> -u <user login> -p <user password> -id <identity domain> -si <service interface>
  2. 参照のために、list-applicationsコマンドを使用して実行中のアプリケーションをリストします。
    次に例を示します。
    Config-shell:>list-applications [INFO] - Listing 11 applications.DataControlTest NearMeJWT SalesMerchandiseTracker SAML_Test OM Ser welcome-app LeadCaptureSys EssClientApp CreateUserFile CreditHealthScoreWS EmbedTest
  3. 参照のために、list-all-webservice-policiesコマンドを使用して使用可能なOWSMサービス・ポリシーをリストします。
    次に例を示します。
    Config-shell:>list-all-webservice-policies List of available OWSM policies security : oracle/http_basic_auth_over_ssl_service_policy security : oracle/wss_saml_or_username_token_over_ssl_service_policy security : oracle/wss11_username_token_with_message_protection_service_policy security : oracle/wss11_x509_token_with_message_protection_service_policy security : oracle/wss_saml_token_over_ssl_service_policy security : oracle/multi_token_rest_service_policy security : oracle/http_saml20_token_bearer_over_ssl_service_policy security : oracle/wss11_saml_or_username_token_with_message_protection_service_policy security : oracle/multi_token_over_ssl_rest_service_policy security : oracle/wss_saml20_token_over_ssl_service_policy security : oracle/http_jwt_token_over_ssl_service_policy security : oracle/wss_saml_token_bearer_over_ssl_service_policy security : oracle/wss11_message_protection_service_policy security : oracle/wss_saml20_token_bearer_over_ssl_service_policy security : oracle/wss11_saml_token_with_message_protection_service_policy security : oracle/wss_http_token_over_ssl_service_policy security : oracle/wss_username_token_over_ssl_service_policy security : oracle/http_jwt_token_service_policy
  4. 参照のために、list-all-webservice-policiesコマンドを-subject clientオプションとともに使用して使用可能なOWSMクライアント・ポリシーをリストします。
    次に例を示します。
    Config-shell:>list-all-webservice-policies -subject client List of available OWSM policies security : oracle/wss_http_token_client_policy security : oracle/http_jwt_token_client_policy security : oracle/http_jwt_token_over_ssl_client_policy security : oracle/http_basic_auth_over_ssl_client_policy security : oracle/oauth2_config_client_policy security : oracle/http_saml20_token_bearer_over_ssl_client_policy security : oracle/wss_http_token_over_ssl_client_policy security : oracle/wss_saml_token_bearer_identity_switch_client_policy security : oracle/wss11_saml_token_with_message_protection_client_policy security : oracle/http_oauth2_token_identity_switch_over_ssl_client_policy security : oracle/wss11_x509_token_with_message_protection_client_policy security : oracle/http_oauth2_token_over_ssl_client_policy security : oracle/wss11_username_token_with_message_protection_client_policy security : oracle/http_jwt_token_identity_switch_client_policy security : oracle/wss_saml20_token_bearer_over_ssl_client_policy security : oracle/wss_saml_token_bearer_over_ssl_client_policy security : oracle/wss_username_token_over_ssl_client_policy security : oracle/wss_saml_token_over_ssl_client_policy security : oracle/wss11_message_protection_client_policy security : oracle/http_saml20_token_bearer_client_policy security : oracle/http_oauth2_token_client_policy security : oracle/wss_saml20_token_over_ssl_client_policy
  5. list-webservicesコマンドを使用して、構成に使用可能なアプリケーションのWebサービスをリストします。
    次に例を示します。
    Config-shell:>list-webservices -application CreditHealthScoreWS –verbose /<domain>/m0/CreditHealthScoreWS : moduleName=CreditHealthScoreWS#1!CreditHealthScoreService, moduleType=wls, serviceName=CreditHealthScoreService CreditHealthScorePort security : oracle/wss_saml_token_bearer_over_ssl_service_policy , enabled=true Attached policy or policies are valid; endpoint is secure.
  6. detach-webservice-policyコマンドを使用して、Webサービスから現在のWebサービス・ポリシーをデタッチします。
    次に例を示します。
    Config-shell:>detach-webservice-policy -application CreditHealthScoreWS -module CreditHealthScoreWS#1!CreditHealthScoreService -service CreditHealthScoreService -subject CreditHealthScorePort -policyuri oracle/wss_saml_token_bearer_over_ssl_service_policy Please restart application to uptake any policy or configuration change.
  7. attach-webservice-policyコマンドを使用して、Webサービスに新しいWebサービス・ポリシーをアタッチします。
    Config-shell:>attach-webservice-policy -application CreditHealthScoreWS -module CreditHealthScoreWS#1!CreditHealthScoreService -service CreditHealthScoreService -subject CreditHealthScorePort -policyuri oracle/wss_username_token_over_ssl_service_policy Please restart application to uptake any policy or configuration change.
  8. アプリケーションを再起動し、ポリシーの変更を取り込みます。

OWSMポリシーを使用したRESTfulサーブレット・アプリケーションの保護

Oracle Web Services Manager (OWSM)を使用して、RESTfulサーブレット・アプリケーションを管理および保護できます。OWSMには、Webサービス・ポリシーを構築、強制、実行および監視するための機能を備えたポリシー・フレームワークが用意されています。

サーブレット・アプリケーションにOWSMポリシーをアタッチするには、oracle/multi_token_rest_service_policyを使用できます。Webデプロイメント・ディスクリプタ(web.xml)ファイルを変更することにより、OWSMサーブレット・フィルタを定義し、これを保護対象のサーブレットに関連付け、ポリシー・アタッチメント・メタデータを定義する必要があります。サーブレットごとにマップできるのは1つのOWSMフィルタのみです。つまり、複数のサーブレットを保護する場合、同じ数のサーブレット・フィルタを作成し、1対1の対応を保持する必要があります。

サーブレット・アプリケーションにポリシーを直接アタッチする手順:

  1. <filter>要素を追加し、次のサブ要素を定義することにより、OWSMセキュリティ・フィルタを定義します。
    1. <filter-name>要素を使用して、OWSMサーブレット・フィルタに意味のある名前を指定します。次に例を示します。
      <filter-name>OWSM Security Filter</filter-name>
    2. <filter-class>要素を使用して、OWSMサーブレット・フィルタ・クラスを定義します。この要素は、次のように定義する必要があります。
      <filter-class> oracle.wsm.agent.handler.servlet.SecurityFilter </filter-class>    
  2. <filter>定義に<init-param>要素を追加し、OWSMサーブレット・フィルタのinit()メソッドにサーブレット名をパラメータとして渡します。次に例を示します。
    <init-param> <param-name>servlet-name</param-name> <param-value>TestServlet</param-value> </init-param>

    注意:

    このパラメータを省略すると、次のステップで<policySet>要素を定義しても、サーブレット・アプリケーションは保護されません。
  3. 1つ以上の <<PolicyReference>要素または/><<OverrideProperty>要素を使用して/><policySet>要素を定義する<init-param>を追加することにより、セキュリティ・ポリシー・アタッチメントを定義します。

    注意:

    このコンテキストでは、<policySet>要素は制約またはステータス属性をサポートしていません。これらの属性は、グローバル・ポリシー・アタッチメントに対してのみサポートされます。たとえば、次のコードでは、<policySet>はCDATAの形式で構成されています。
    <init-param> <param-name>oracle.wsm.metadata.policySet</param-name> <param-value><![CDATA[<sca11:policySet name="policySet" appliesTo="REST-Resource()" attachTo="Service('*')" xmlns:sca11="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy" xmlns:wsp15="http://www.w3.org/ns/ws-policy"> <wsp15:PolicyReference URI="oracle/multi_token_rest_service_policy" orawsp:category="security" orawsp:status="enabled"> </wsp15:PolicyReference> <wsp15:PolicyReference URI="oracle/binding_authorization_permitall_policy" orawsp:category="security" orawsp:status="enabled"> </wsp15:PolicyReference> </sca11:policySet>]]> </param-value> </init-param>
  4. <filter-mapping>要素を使用して、OWSMセキュリティ・フィルタをサーブレットに関連付けます。次に例を示します。
    <filter-mapping> <filter-name>OWSM Security Filter</filter-name> <servlet-name>TestServlet</servlet-name> </filter-mapping>
  5. <servlet>および<servlet-mapping>要素を使用してサーブレットおよびサーブレット・マッピングを定義します。次に例を示します。
    <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>webproj.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/testservlet</url-pattern> </servlet-mapping>