ヘッダーをスキップ
Oracle Web Services Managerクイック・スタート・ガイド
10g(10.1.3.1.0)
B31909-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

2 Oracle Web Services Managerを使用したWebサービスの保護

このチュートリアルでは、次のタスクを実行します。

  1. Web Services Manager Controlにログインします。

  2. ゲートウェイを登録します。

  3. Webサービスをゲートウェイに登録します。

  4. ユーザーを認証するポリシーをゲートウェイに追加します。

  5. ユーザーの認証に使用するファイルを作成します。

  6. WebサービスのWSDLを表示します。

  7. ユーザーを認証するかどうかポリシー・ステップをテストします。

  8. ユーザーのアクセス権を検証する認可ポリシーを追加します。

  9. サンプルの認可ファイルを編集します。

  10. ユーザーを認可するかどうかポリシー・ステップをテストします。

始める前に

このチュートリアルを始める前に、Oracle Web Services Managerデータベースのバックアップ・コピーを作成します。データベース・ファイル(orawsm.odb)は、次のディレクトリにあります。

$ORACLE_HOME/10.1.3.1/owsm/Mobile/Sdk/OLDB40

このチュートリアルの指示は、Oracle Web Services Managerの新規インストールから始めることを前提としています。エラーが発生した場合、またはチュートリアルを再度始める場合は、データベース・ファイルのバックアップ・コピーを先に示したディレクトリにコピーしてください。

Web Services Manager Controlへのログイン

  1. Webブラウザを開き、次のURLを入力します。

    http://fully_qualified_host_name:http_port


    注意:

    スタンドアロンのOracle Web Services Managerにログインする場合は、ここで手順3にスキップします。

    Oracle SOA Suite(10.1.3.1.0)へようこそページが表示されます(図2-1)。

    図2-1 Oracle SOA Suite(10.1.3.1.0)へようこそページ

    図2-1の説明が続きます
    「図2-1 Oracle SOA Suite(10.1.3.1.0)へようこそページ」の説明

  2. 「SOA Suiteの管理」ボックスの「Web Services Manager Control」リンクをクリックします。

  3. ログイン・ページで、oc4jadminとしてログインし、インストール時に指定したパスワードを使用します。「ログイン」をクリックします(図2-2)。


    注意:

    スタンドアロンのOracle WSMにログインする場合、ログイン・ページの表示は若干異なります。Oracle Web Services Manager管理者としてログインします。デフォルトでは、ユーザー名はadmin、パスワードはoracleです。

    図2-2 ログイン・ページ

    図2-2の説明が続きます
    「図2-2 ログイン・ページ」の説明

    次に、Web Services Manager Controlページが表示されます(図2-3)。

    図2-3 Web Services Manager Controlページ

    図2-3の説明が続きます
    「図2-3 Web Services Manager Controlページ」の説明

ゲートウェイの登録

Oracle Web Services Managerでは、Webサービスを保護するためのゲートウェイ・コンポーネント、サーバー・エージェント・コンポーネントおよびクライアント・エージェント・コンポーネントを作成できます。このクイック・スタート・チュートリアルでは、Oracle WSMゲートウェイを作成および登録します。

  1. 「新規コンポーネントの追加」をクリックします(図2-4)。

    図2-4 新規コンポーネントの追加

    図2-4の説明が続きます
    「図2-4 新規コンポーネントの追加」の説明


    注意:

    「新規コンポーネントの追加」ボタンが表示されない場合は、「ポリシー管理」をクリックした後、左側のナビゲーション・ペインから「ポリシーの管理」をクリックして、正しいページに戻ります(図2-5)。

  2. 図2-5 「ポリシーの管理」ページへのナビゲート

    図2-5の説明が続きます
    「図2-5 「ポリシーの管理」ページへのナビゲート」の説明

  3. 「新規コンポーネントの追加」ページで、次のように入力します。

    • コンポーネント名: 「MyGateway」と入力します。

    • コンポーネント・タイプ: デフォルト値「ゲートウェイ」を受け入れます。

    • コンテナ・タイプ: デフォルト値「Oracle Web Services Manager」を受け入れます。

    • コンポーネントURL: 「http://fully_qualified_host_name:http_port/gateway」と入力します。

      ここで、fully_qualified_host_nameはOracle Web Services ManagerのURL、http_portはOracle Web Services Managerがホストされるポートです。


      ヒント:

      Web Services Manager Controlへのアクセスに使用したブラウザのURLを確認してください。ccoreをgatewayで置き換えます。たとえば、次のURLを変更するとします。

      http://marcc-pc.us.oracle.com:8888/ccore

      変更後のURLは次のようになります。

      http://marcc-pc.us.oracle.com:8888/gateway

      このURLを「コンポーネントURL」フィールドに入力します。


    • コンポーネント・グループ: コンポーネント・グループのデフォルト値を受け入れます。

    図2-6に、「新規コンポーネントの追加」ページの例を示します。

    図2-6 「新規コンポーネントの追加」ページ

    図2-6の説明が続きます
    「図2-6 「新規コンポーネントの追加」ページ」の説明

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

    次のメッセージが表示され、ゲートウェイが正常に登録されたことを確認できます(図2-7)。

    図2-7 正常なコンポーネント登録を確認するメッセージ

    図2-7の説明が続きます
    「図2-7 正常なコンポーネント登録を確認するメッセージ」の説明

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

    これで「コンポーネントのリスト」にゲートウェイが表示されます(図2-8)。

    図2-8 「コンポーネントのリスト」ページのゲートウェイ・コンポーネント

    図2-8の説明が続きます
    「図2-8 「コンポーネントのリスト」ページのゲートウェイ・コンポーネント」の説明

ゲートウェイへのWebサービスの登録

このチュートリアルでは、作成したばかりのゲートウェイにTime Service Webサービスを登録します。(Time Serviceの詳細は、この手順の最後に示します。)この登録により、ゲートウェイをその保護対象のWebサービスと関連付けます。

  1. Web Services Manager Controlのナビゲーション・ペインから、「ポリシー管理」「サービスの登録」の順にクリックします(図2-9)。

    図2-9 Web Services Manager Controlのナビゲーション・ペイン

    図2-9の説明が続きます
    「図2-9 Web Services Manager Controlのナビゲーション・ペイン」の説明

    「ゲートウェイのリスト」ページ(図2-10)に、作成したばかりのゲートウェイが表示されます。「ゲートウェイ名」には登録時にゲートウェイに割り当てた名前が、「ゲートウェイID」にはOracle Web Services Managerによってゲートウェイに割り当てられたコンポーネントIDが表示されます。

    図2-10 「ゲートウェイのリスト」ページのMyGateway

    図2-10の説明が続きます
    「図2-10 「ゲートウェイのリスト」ページのMyGateway」の説明

  2. 「サービス」リンクをクリックします。

  3. 「新規サービスの追加」をクリックします。

    「サービスのリスト」ページが表示されますが、現在このゲートウェイに登録されているサービスはありません(図2-11)。

    図2-11 MyGatewayの「サービスのリスト」ページ

    図2-11の説明が続きます
    「図2-11 MyGatewayの「サービスのリスト」ページ」の説明

  4. 「新規サービスの追加」をクリックします。

  5. 「新規サービスの追加」ページで、次のサービスの詳細を入力します。

    • サービス名: TimeService

      注意: TimeとServiceの間に空白はありません。これについては、後で説明します。

    • サービスのバージョン: 1.0

    • サービスの説明: Gives the time of day

    • WSDL URL: http://fully_qualified_host_name:http_port/ccore/TimeService.wsdl

      ここで、fully_qualified_host_nameはOracle Web Services ManagerのURL、http_portはOracle Web Services Managerがホストされるポートです。


      注意:

      ここで割り当てるURLおよびポートがゲートウェイの登録時に指定したURLおよびポートと一致することが重要です。

    • サービス・プロトコル: デフォルト値「HTTP(S)」を受け入れます。

    • サービス・グループ: デフォルト値を受け入れます。

    図2-12に、サービスの詳細を入力した「新規サービスの追加」ページの例を示します。

    図2-12 「新規サービスの追加」ページ

    図2-12の説明が続きます
    「図2-12 「新規サービスの追加」ページ」の説明

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

    「新規サービスのメッセンジャ・ステップを構成」ページが表示されます。前のページでデフォルトのサービス・プロトコルHTTP(S)を確定したので、このページ(図2-13)にはHTTP(S)プロトコルを構成するためのパラメータが表示されます。

    図2-13 「新規サービスのメッセンジャ・ステップを構成」ページ

    図2-13の説明が続きます
    「図2-13 「新規サービスのメッセンジャ・ステップを構成」ページ」の説明

  7. 「新規サービスのメッセンジャ・ステップを構成」ページで、URLが前のページで指定したURLと一致することを確認します。残りのフィールドのデフォルト値を受け入れ、「終了」をクリックします。

    次のメッセージが表示されます(図2-14)。

    図2-14 正常なサービス登録を確認するメッセージ

    図2-14の説明が続きます
    「図2-14 正常なサービス登録を確認するメッセージ」の説明

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

    これで「サービスのリスト」に新規サービスが表示されます(図2-15)。「サービス名」、「バージョン」および「説明」には、サービスの登録時に入力した値が表示されます。「サービスID」には、Oracle Web Services Managerによってサービスに割り当てられたIDが表示されます。

    図2-15 TimeServiceが追加された「サービスのリスト」ページ

    図2-15の説明が続きます
    「図2-15 TimeServiceが追加された「サービスのリスト」ページ」の説明

  9. 「ポリシーのコミット」フィールドが赤色で表示されていることに注意してください。これは、「コミット」リンクをクリックし、Oracle WSMデータベースに対して変更をコミットする必要があることを警告しています。「コミット」をクリックします。

  10. 次の確認が表示されます(図2-16)。「OK」をクリックします。

    図2-16 正常なポリシー更新を確認するメッセージ

    図2-16の説明が続きます
    「図2-16 正常なポリシー更新を確認するメッセージ」の説明

  11. 「サービスのリスト」ページ(図2-17)に戻ります。このとき、「ポリシーのコミット」フィールドには、「ポリシーはコミットされています」と表示されていることに注意してください。

    図2-17 「ポリシーはコミットされています」と表示された「サービスのリスト」ページ

    図2-17の説明が続きます
    「図2-17 「ポリシーはコミットされています」と表示された「サービスのリスト」ページ」の説明

Time Service Webサービスについて

Oracle WSMには、現在の時間を返すTime Service Webサービスが同梱されています。Time Serviceは、Oracle Application Serverにデプロイされないという意味では、実際のWebサービスではありません。(Time ServiceはサンプルJSPです。)そのため、Time Serviceはゲートウェイでのみ使用でき、エージェントでは使用できません。Time ServiceのWSDLファイルは、次の場所にあります。

ORACLE_HOME/j2ee/home/applications/ccore/ccore/TimeService.wsdl

Time ServiceのWSDLファイルには、ブラウザで次のURLを使用するとゲートウェイを介さずに直接アクセスできます。

http://fully_qualified_host_name:http_port/ccore/TimeService.wsdl

ゲートウェイへのポリシーの追加

これでWebサービスはゲートウェイに関連付けられたので、サービスを保護するためにゲートウェイで使用されるポリシーを追加します。一般に、Webサービス・クライアントは、ユーザー資格証明を含むXMLメッセージを送信してリクエストを発行します。このチュートリアルではエージェントではなくゲートウェイを使用するため、リクエストは直接ゲートウェイに対して作成されます。つまり、ゲートウェイは保護されたWebサービスを仮想化します。

このチュートリアルでは、2つのポリシー・ステップを使用してこのサービスを保護します。第1のポリシー・ステップ「資格証明の抽出」では、ユーザー名およびパスワードの資格証明をリクエストから分離します。第2のステップ「ファイルの認証」では、有効なユーザーとそのパスワードが含まれるファイルを使用してユーザーを認証します。

このチュートリアルの後のほうで、第3のポリシー・ステップ「ファイルの認可」を追加します。このステップでは、ファイルをチェックしてサービスへのアクセス権が付与されたロールにユーザーが属しているかどうかを確認し、ユーザーを認可します。

「資格証明の抽出」ポリシー・ステップの追加方法

このポリシー・ステップでは、ユーザー資格証明をWebサービス・リクエストから抽出します。

  1. Web Services Manager Controlのナビゲーション・ペインから、「ポリシー管理」「ポリシーの管理」の順にクリックします。

  2. 「コンポーネントのリスト」で、ゲートウェイの「ポリシー」リンクをクリックします(図2-18)。

    図2-18 「コンポーネントのリスト」ページのゲートウェイ・コンポーネント

    図2-18の説明が続きます
    「図2-18 「コンポーネントのリスト」ページのゲートウェイ・コンポーネント」の説明

    MyGatewayコンポーネントのポリシーが表示されます(図2-19)。デフォルトでは、Oracle WSMにより、サービス名と同じ名前のポリシー(この例ではTimeService)が作成されます。バージョン番号がカッコ内に示されていることに注意してください。

    図2-19 MyGatewayゲートウェイのポリシー

    図2-19の説明が続きます
    「図2-19 MyGatewayゲートウェイのポリシー」の説明

  3. 「編集」アイコンをクリックします。

    「TimeService(1.0)」ポリシーの「ポリシー定義」ページが表示されます(図2-20)。ポリシー定義には4つのパイプラインまたはパートがあります。

    • 脚注1 PreRequestパイプライン: このパイプラインのポリシー・ステップは、Webサービス・リクエストの処理前に実行されます。

    • Requestパイプライン: このパイプラインのポリシー・ステップは、Webサービス・リクエストに対して実行されます。

    • Responseパイプライン: このパイプラインのポリシー・ステップは、Webサービスからのレスポンスに対して実行されます。

    • 脚注1 PostResponseパイプライン: このパイプラインのポリシー・ステップは、Webサービスからのレスポンスがクライアント・リクエスタに送信された後に実行されます。


      注意:

      このページのスクリーンショットは切り捨てられています。ページをスクロール・ダウンすると、4つのパイプラインすべてを表示できます。

    このチュートリアルでは、Requestパイプラインにポリシーを追加します。デフォルトでは、「ログ」ポリシー・ステップがRequestパイプラインとResponseパイプラインに追加されています。

    図2-20 TimeService(1.0)ポリシーの「ポリシー定義」ページ

    図2-20の説明が続きます
    「図2-20 TimeService(1.0)ポリシーの「ポリシー定義」ページ」の説明

  4. Requestパイプラインの「ログ」ステップの下にポリシー・ステップを追加します。「ログ」ステップの行で、「以下にステップを追加」リンクをクリックします(図2-21)。

    図2-21 ポリシー・ステップの追加

    図2-21の説明が続きます
    「図2-21 ポリシー・ステップの追加」の説明

  5. ページがリフレッシュされ、「新規ステップ」ボックスが表示されます。「ステップ・テンプレートの選択」リストで、矢印をクリックしてポリシー・ステップのリストを表示し、リストから「資格証明の抽出」を選択して「OK」をクリックします(図2-22)。

    図2-22 「資格証明の抽出」ポリシー・ステップの選択

    図2-22の説明が続きます
    「図2-22 「資格証明の抽出」ポリシー・ステップの選択」の説明

  6. 「資格証明の抽出」ポリシー・ステップが「ログ」ステップの下に追加されます。今度は、「資格証明の抽出」ステップを構成します。「資格証明の抽出」の行で、「構成」リンクをクリックします(図2-23)。

    図2-23 「資格証明の抽出」ポリシー・ステップの「構成」のクリック

    図2-23の説明が続きます
    「図2-23 「資格証明の抽出」ポリシー・ステップの「構成」のクリック」の説明

    「資格証明の抽出」ポリシー・ステップのプロパティが表示されます。

  7. このチュートリアルでは、WS-I Basic Security Profileに指定されている標準Username Tokenからユーザーの資格証明を抽出するシミュレーションを行い、有効なユーザーのファイルに対してユーザーを認証します。

    「パイプライン・ステップの構成」ページで、図2-24に示すとおり、資格証明の場所のデフォルト値を「WS-BASIC」に変更します。

    図2-24 「資格証明の抽出」ポリシー・ステップのプロパティ

    図2-24の説明が続きます
    「図2-24 「資格証明の抽出」ポリシー・ステップのプロパティ」の説明

  8. ページの一番下までスクロールし、「OK」をクリックします。

    「ポリシー定義」ページに戻ります。

「ファイルの認証」ポリシー・ステップの追加方法

抽出された資格証明は、リファレンスに対して検証する必要があります。このチュートリアルでは、リファレンスは有効なユーザー名とパスワードのファイルです。Oracle Web Services Managerで使用できるその他のリファレンスには、LDAPディレクトリ、Oracle Access Manager、CAからのeTrust SiteMinderがあります。

  1. 「資格証明の抽出」の行で、「以下にステップを追加」リンクをクリックします。

  2. 「ステップ・テンプレートの選択」リストから「ファイルの認証」を選択し、「OK」をクリックします(図2-25)。

    図2-25 「ファイルの認証」ポリシー・ステップの選択

    図2-25の説明が続きます
    「図2-25 「ファイルの認証」ポリシー・ステップの選択」の説明

  3. 「ファイルの認証」の行で、「構成」をクリックします。

  4. 「ファイルの認証」ポリシー・ステップのプロパティが表示されます。パスワード・ファイルの場所ボックスに、ユーザーの認証に使用されるファイルの場所と名前をフルパスで指定します(図2-26)。この例では、次の場所を指定します。

    C:\.htpasswd

    後の手順で、.htpasswdファイルをルート・ディレクトリに作成します。

  5. .htpasswdファイルの形式フィールドに、パスワードが暗号化される形式を指定します。リストから「md5」を選択します(図2-26)。MD5は、このチュートリアルの後のほうでパスワードの暗号化に使用するメッセージ・ダイジェスト・アルゴリズムです。

    図2-26 「ファイルの認証」ポリシー・ステップのプロパティ

    図2-26の説明が続きます
    「図2-26 「ファイルの認証」ポリシー・ステップのプロパティ」の説明

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

  7. 「次へ」をクリックした後、「保存」をクリックします(図2-27)。

    図2-27 MyGatewayコンポーネントのポリシー

    図2-27の説明が続きます
    「図2-27 MyGatewayコンポーネントのポリシー」の説明

  8. 「ポリシーのコミット」フィールドが赤色で表示され、変更をコミットする必要があることを警告します(図2-28)。「コミット」リンクをクリックします。

    図2-28 TimeServiceポリシーが追加されたMyGatewayゲートウェイのポリシー・セット

    図2-28の説明が続きます
    「図2-28 TimeServiceポリシーが追加されたMyGatewayゲートウェイのポリシー・セット」の説明

  9. ページがリフレッシュされ、「ポリシーのコミット」フィールドにポリシーがコミットされたことを示すメッセージが表示されます。

認証ファイルの作成

ユーザー名とパスワードを指定してファイルを作成します。このファイルは、「ファイルの認証」ステップに指定しましたが、Webサービスにアクセスを試みるときの認証に使用されます。Oracle WSMツールを使用してファイル内のパスワードをエンコードします。

  1. テキスト・ファイルを作成し、ユーザー名とパスワードを次の形式で追加します。

    user_name:password

    図2-29に、ユーザー名marccとパスワードjava1を指定したサンプルのテキスト・ファイル(.htpasswd)を示します。このユーザー名とパスワードの組合せを入力するか、独自のユーザー名とパスワードを追加します。

    図2-29 ユーザー名とパスワードが指定された.htpasswordファイル

    図2-29の説明が続きます
    「図2-29 ユーザー名とパスワードが指定された.htpasswordファイル」の説明

  2. .htpasswordという名前でファイルをルート・ディレクトリに保存します。ここではルートにファイルを保存しますが、どこに保存してもかまいません。

  3. Oracle WSMユーティリティを使用して、パスワードのダイジェストまたはハッシュを作成します。ダイジェストとは、圧縮するために一方向の数学関数を入力ストリームに適用した結果です。Message-Digest Algorithm 5(MD5)は、パスワードの格納によく使用される数学関数の1つです。

    コマンド・ウィンドウを開き、次のコマンドを実行します。

    Linuxの場合:

    ORACLE_HOME/owsm/bin/wsmadmin.sh md5encode user_name password .htpasswd

    Windowsの場合:

    ORACLE_HOME\owsm\bin\wsmadmin md5encode user_name password .htpasswd

    次に例を示します。

    ORACLE_HOME\owsm\bin\wsmadmin md5encode marcc java1 .htpasswd


    注意:

    この手順の手順1で入力したユーザー名とパスワードを使用します。

    ユーザー名(この例ではmarcc)とパスワード(java1)の間の空白は必ず残しておきます。


  4. .htpasswdファイルをテキスト・エディタで開きます。入力したパスワードが、図2-30に示すような暗号化されたパスワードで置き換えられていることがわかります。

    図2-30 暗号化されたパスワードが指定された.htpasswdファイル

    図2-30の説明が続きます
    「図2-30 暗号化されたパスワードが指定された.htpasswdファイル」の説明

「ファイルの認証」ポリシー・ステップは、実行されると.htpasswdファイルを使用して、渡された資格証明がファイル内のエントリの1つと一致するかどうかを確認します。

WSDLの表示

WSDLをテストしてWebサービスにアクセスできるかどうかを確認するために、WSDLが登録されているOracle WSMゲートウェイに対してリクエストを作成する必要があります。リクエストを作成するURLを取得する必要があります。

  1. Web Services Manager Controlのナビゲーション・ペインから、「ポリシー管理」「サービスの登録」の順にクリックします。

  2. ゲートウェイMyGatewayの「サービス」リンクをクリックします。

  3. 「サービスのリスト」で、TimeServiceサービスの「編集」リンクをクリックします(図2-31)。

    図2-31 TimeServiceサービスの編集

    図2-31の説明が続きます
    「図2-31 TimeServiceサービスの編集」の説明

  4. 「サービスの編集」ページで、「サービスのWSDL URL」フィールドのURLをコピーします(図2-32)。

    このURLは、次のタスクで使用します。

    図2-32 サービスのWSDL URLのコピー

    図2-32の説明が続きます
    「図2-32 サービスのWSDL URLのコピー」の説明

Webサービスの保護

Oracle Web Services Managerゲートウェイは、Webサービスを仮想化するように設計されています。そのため、Webサービスに直接アクセスし、ゲートウェイによるセキュリティを回避できます。この潜在的なセキュリティ違反をなくすため、顧客はOracle Web Services Managerエージェントを使用して、必ずエージェントを通してのみWebサービスにアクセスできるようにすることをお薦めします。この方法は、ラストマイル・セキュリティと呼ばれることもあります。

WSDLのテスト

Webサービス・リクエストをシミュレートして、Time Serviceが適切に保護されているかをテストします。認証ファイルに追加したユーザー名とパスワードを使用してリクエストを作成します。

  1. Web Services Manager Controlのナビゲーション・ペインから、「ツール」「テスト・ページ」の順にクリックします(図2-33)。

    図2-33 Web Services Managerのナビゲーション・ペイン

    図2-33の説明が続きます
    「図2-33 Web Services Managerのナビゲーション・ペイン」の説明

  2. 図2-34に示すように、コピーしたURLを「WSDL URLを入力してください」テキスト・ボックスに貼り付けます。

    図2-34 「Webサービスのテスト」ページ

    図2-34の説明が続きます
    「図2-34 「Webサービスのテスト」ページ」の説明

  3. 「問合せの発行」をクリックします。「Webサービスのテスト」ページがリフレッシュされ、複数のパラメータが表示されます(図2-35)。エンドポイントURLがゲートウェイを指していることに注意してください。

    図2-35 サンプルWSDLの「Webサービスのテスト」ページ

    図2-35の説明が続きます
    「図2-35 サンプルWSDLの「Webサービスのテスト」ページ」の説明

  4. 資格証明を指定して、Webサービス・クライアントからのリクエストをシミュレートします。「WSセキュリティ」パラメータの横のプラス記号(+)をクリックします。「ユーザー名」パラメータと「パスワード」パラメータが表示されます(図2-36)。

  5. 「ヘッダーに含める」チェック・ボックスを選択して、WS-Securityヘッダーに資格証明を含めます(図2-36)。

    図2-36 WS-Securityのパラメータが入力された「Webサービスのテスト」ページ

    図2-36の説明が続きます
    「図2-36 WS-Securityのパラメータが入力された「Webサービスのテスト」ページ」の説明

  6. .htpasswdファイルに指定したユーザー名とパスワードを、「ユーザー名」フィールドと「パスワード」フィールドに入力します。図2-36では、ユーザーmarccとこのユーザーのパスワードが曖昧化されて表示されています。

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

    「テスト結果」に現在の時間が表示されます。デフォルトでは、結果はRAW HTMLで表示されます。「フォーマット済XML」リンクをクリックして、読みやすい形式で結果を表示します(図2-37)。

    図2-37 書式設定されたXMLでのテスト結果

    図2-37の説明が続きます
    「図2-37 書式設定されたXMLでのテスト結果」の説明

「ファイルの認証」ポリシー・ステップのテスト

ここでは、Time Service Webサービスに対するリクエストを作成しますが、今度は無効なユーザー名とパスワードを使用して、「ファイルの認証」ポリシー・ステップが機能していることを検証します。

  1. 「テスト結果」ページで、「同じWSDLの再テスト」リンクをクリックします。

  2. 「WSセキュリティ」の横のプラス記号(+)クリックしてWS-Securityのパラメータを表示します。

  3. 今度は、無効なユーザーのユーザー名(bugs bunnyなど)と任意のパスワードを入力します。

  4. 再度、「ヘッダーに含める」チェック・ボックスを選択します。

  5. 「起動」をクリックします。

  6. 今度は、「テスト結果」にクライアント認証フォルトの発生が表示され、現在の時間は返されません(図2-38)。

    図2-38 クライアント認証フォルトが表示された「テスト結果」ページ

    図2-38の説明が続きます
    「図2-38 クライアント認証フォルトが表示された「テスト結果」ページ」の説明

最初に有効な資格証明を指定し、次に無効な資格証明を指定して、認証が機能していることをテストしました。認証では、指定した資格証明に基づいてIDを検証します。しかし、これは第1ステップにすぎません。第2ステップでは、ユーザーIDに割り当てられた属性に基づいて、リソース(このチュートリアルではTime Service Webサービス)にアクセスする権限が認証されたユーザーにあるかどうかを検証します。

認可ポリシー・ステップの追加

まず、ゲートウェイのRequestパイプラインを編集して認可ポリシー・ステップを追加する必要があります。

「ファイルの認可」ポリシー・ステップの追加方法

  1. Web Services Manager Controlのナビゲーション・ペインから、「ポリシー管理」「ポリシーの管理」の順にクリックします。

  2. 「コンポーネントのリスト」で、ゲートウェイの「ポリシー」リンクをクリックします。

  3. 「編集」アイコンをクリックします。

  4. 「ファイルの認証」の行で、「以下にステップを追加」をクリックします。

  5. 「ステップ・テンプレートの選択」リストから「ファイルの認可」を選択し、「OK」をクリックします(図2-39)。

    図2-39 「ファイルの認可」ポリシー・ステップの選択

    図2-39の説明が続きます
    「図2-39 「ファイルの認可」ポリシー・ステップの選択」の説明

  6. 「ファイルの認可」の行で、「構成」をクリックします。

  7. 「ファイルの認可」ポリシーのプロパティが表示されます(図2-40)。

    図2-40 「ファイルの認可」ポリシー・ステップのプロパティ

    図2-40の説明が続きます
    「図2-40 「ファイルの認可」ポリシー・ステップのプロパティ」の説明

  8. ユーザーの認可に使用されるファイルをユーザー・ロール・ファイルの場所フィールドに指定します(図2-40)。

    ORACLE_HOME/owsm/config/gateway/roles.xml」と入力します。

    ここで、ORACLE_HOMEは、Oracle Web Services Managerがインストールされたディレクトリです。

  9. Webサービスへのアクセスを許可されたロールを許可されたロール・フィールドに指定します。「guest」と入力して「OK」をクリックします(図2-41)。

    図2-41 「ファイルの認可」ポリシー・ステップの構成

    図2-41の説明が続きます
    「図2-41 「ファイルの認可」ポリシー・ステップの構成」の説明

  10. 「次へ」をクリックした後、「保存」をクリックします。

  11. 「ポリシーのコミット」フィールドが赤色で表示され、変更をコミットする必要があることを警告します。「コミット」リンクをクリックします。

認可ファイルの編集

ユーザー名とパスワードが認証されると、Oracle Web Services ManagerではWebサービスにアクセスする権限がユーザーにあるかどうかを確認します。このチュートリアルでは、ファイルをチェックして認可されたロールにユーザーが割り当てられているかどうかを確認し、これを行います。

サンプルの認可ファイルは、次の場所にあります。

ORACLE_HOME/owsm/config/gateway/roles.xml

ここで、ORACLE_HOMEは、Oracle Web Services Managerがインストールされたディレクトリです。ユーザー名とguestロールをこのファイルに追加します。

  1. ファイルをテキスト・エディタで開きます。

  2. ユーザー名とロールguestを追加します。図2-42に、ロールguestに割り当てられたユーザーmarccを示します。

    図2-42 ユーザー名とロールを追加されたロール・ファイル

    図2-42の説明が続きます
    「図2-42 ユーザー名とロールを追加されたロール・ファイル」の説明

  3. ファイルを保存します。

ユーザー名とパスワードが「ファイルの認証」ステップで正常に認証されると、「ファイルの認可」が実行されます。Oracle WSMでは、roles.xmlファイルをチェックして、Time Service Webサービスにアクセスする権限があるロールにユーザーが割り当てられているかどうかを確認します。この例では、guestロールを割り当てられたユーザーはサービスにアクセスできます。

「テスト・ページ」の再実行

今度は、ファイルに対して検証される有効な資格証明を送信します。次に、ユーザーがファイルに対してチェックされ、Webサービスにアクセスする権限があるロールに割り当てられているかどうかが確認されます。

  1. Web Services Manager Controlのナビゲーション・ペインから、「ツール」「テスト・ページ」の順にクリックします。

  2. コピーしたURLを「WSDL URLを入力してください」テキスト・ボックスに貼り付けます。

  3. 「問合せの発行」をクリックします。

  4. 「WSセキュリティ」パラメータの横のプラス記号(+)クリックします。

  5. 「ヘッダーに含める」チェック・ボックスを選択します。

  6. .htpasswdファイルに指定したユーザー名とパスワードを入力し、「起動」をクリックします。

    「テスト結果」に現在の時間が表示されます。

「ファイルの認可」ポリシー・ステップのテスト

ここでは、認可ファイルを編集してWebサービスにアクセスする権限がないロールをユーザーに割り当て、「ファイルの認可」ポリシー・ステップをテストします。

  1. ORACLE_HOME/owsm/config/gateway/roles.xmlファイルを編集します。ユーザーのロールをguest以外のロールに変更し、ファイルを保存します。この例では、ユーザーmarccはロールsupportに割り当てられています(図2-43)。

    図2-43 権限のないロールにユーザーを割り当てたroles.xmlファイル

    図2-43の説明が続きます
    「図2-43 権限のないロールにユーザーを割り当てたroles.xmlファイル」の説明

  2. 「テスト・ページ」ページで、「同じWSDLの再テスト」リンクをクリックします。

  3. 「WSセキュリティ」の横のプラス記号(+)クリックしてWS-Securityのパラメータを表示します。

  4. 有効なユーザー名とパスワードを入力し、「起動」をクリックします。

  5. 今度は、「テスト結果」ページにクライアント認可フォルトが表示され、この例のユーザーmarccによるサービス(IDはSID0003001)へのアクセスは拒否されたことが示されます(図2-44)。

    図2-44 クライアント認可フォルトが表示された「テスト結果」ページ

    図2-44の説明が続きます
    「図2-44 クライアント認可フォルトが表示された「テスト結果」ページ」の説明

まとめ

このチュートリアルでは、Oracle Web Services Managerのセキュリティ機能について学習しました。Oracle WSMゲートウェイを作成してWebサービスを登録し、Webサービスを保護するポリシーを作成してテストしました。

今度は、Oracle WSMの監視機能を見てみましょう。



脚注

脚注1: PreRequestパイプラインとPostResponseパイプラインは、Oracle Web Services Managerの次期リリースではサポートされない予定です。