ヘッダーをスキップ
Oracle SOA Suite開発者ガイド
10g(10.1.3.1.0)
B31839-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

10.3 Oracle Web Services Manager Server Agentを使用したユーザーの認証


注意:

この項では、Oracle Web Services Managerを使用したWebサービス・セキュリティの提供に関する特定のユースケースについて説明します。 ここでは、Oracle WSM製品の特徴と機能について包括的な情報は提供しません。

SOA Order Bookingアプリケーションでは、認証を実行するためにOracle Web Services Manager Server Agentをデプロイできます。認証は、顧客のユーザー名とパスワードをOracle Access ManagerやSiteMinderなどのID管理インフラストラクチャを備えたLDAPリポジトリと照合して検証するか、または単純なファイル・ベースのリポジトリを利用して実行できます。

図10-2に、デモ・アプリケーションでのOracle Web Services Manager Agentの利用方法を示します。 エージェントによって、Oracle BPEL Process ManagerクライアントからWebサービスへのリクエストが捕捉されます。 クライアントの資格証明が抽出され、顧客のユーザー名がオペレーティング・システム・ファイルに含まれているデータと照合して検証されます。

図10-2 Oracle Web Services Managerによる認証

図10-2の説明は次にあります。
「図10-2 Oracle Web Services Managerによる認証」の説明


注意:

エージェントの使用は、このタスクをOracle Web Services Managerで実行するための1つの方法です。 エージェントとゲートウェイの比較については、第10.2.1項「エージェントまたはゲートウェイを使用する場合」を参照してください。


関連項目:

Oracle Web Services Managerの認証機能の詳細は、『Oracle Web Services Manager管理者ガイド』を参照してください。

ユーザー名の認証を提供するための一般的な手順は、次のとおりです。

  1. Oracle Web Services Manager Server Agentを登録します。

  2. サーバー・エージェントに対してポリシー・セットを定義します。

    このポリシー・セットによって、Oracle Web Services Managerが実行する特定のセキュリティおよび管理手順が指定されます。

  3. テスト環境に対して、ユーザー資格証明のファイル・ベース・リポジトリを設定します。

    このユースケースの例では、ファイル・リポジトリを利用します。

  4. サーバー・エージェントをJ2EEエージェントとしてインストールします。

  5. Application Server Control Consoleで、与信検証サービスのWebサービス・エージェントを構成します。

  6. 認証をテストします。

  7. Oracle BPEL Process Managerプロセスを構成してUsernameトークンを送信します。このトークンは、Oracle Web Services Manager Server Agentによって検証されます。

10.3.1 サーバー・エージェントの登録方法

サーバー・エージェントなどのOracle Web Services Managerコンポーネントは、Web Services Manager Control Consoleを使用して定義します。 サーバー・エージェントは、セキュリティ・ポリシーの実行点として機能します。

Oracle Web Services Managerにサーバー・エージェント・コンポーネントを構成する手順は、次のとおりです。

  1. ブラウザでWeb Services Manager Control Consoleを開き、シングル・サインオンのユーザー名とパスワードを使用してログインします。

    Web Services Manager Control Consoleには、次のURLでアクセスします。

    http://<hostname>:port_number/ccore

    次に例を示します。

    http://itapps.globalcompany.com:8888/ccore

  2. 「新規コンポーネントの追加」をクリックします。

  3. 新規コンポーネントの追加ページで、次の項目を定義します。

    • コンポーネント名

    • コンポーネント・タイプ

    • コンテナ・タイプ

    図10-3に、Authentication Agentという名前のサーバー・エージェントの定義方法を示します。

    図10-3 サーバー・エージェントの追加

    この図の詳細は、周辺の説明を参照してください。

    「コンポーネント・タイプ」が「Server Agent」であることに注意してください。

  4. 「登録」をクリックします。 図10-4に示すように、確認ページが表示されます。

    図10-4 Oracle WSMのコンポーネントIDの確認

    この図の詳細は、周辺の説明を参照してください。
  5. 後で使用するため、この一意のコンポーネントIDをメモし、「OK」をクリックします。

    新規エージェントが、コンポーネントのリストに表示されます。

10.3.2 エージェント登録時の処理内容

エージェントを登録すると、Oracle WSMによって、そのエージェントがサーバー・システム・レジストリに追加されます。 また、一意のコンポーネントIDがエージェントに割り当てられ、このIDによって、デプロイ全体にわたるすべてのアクションに対するコンポーネントが識別されます。

10.3.3 サーバー・エージェントに対するポリシー・セットの定義方法

ポリシー・セットは、サーバー・エージェントに実装される明示的なセキュリティ・ポリシーと管理ポリシーで構成されます。 Oracle Web Services Managerでは、ポリシー・ステップに関する豊富な選択肢が提供され、特定のセキュリティ・タスクに応じて組み合せることができます。

たとえば、与信検証サービスは、Oracle Web Services Managerの次のポリシー・ステップで構成されたサーバー・エージェントにポリシー・セットを定義することで保護できます。

  • SOAPセキュリティ・ヘッダーに含まれた資格証明を抽出するポリシー・ステップ

  • その資格証明を認証するポリシー・ステップ

これらのポリシー・ステップは、エージェントのリクエスト・パイプラインに定義する必要があります。

エージェントに必要なポリシーは、Web Services Manager Control Consoleを使用して定義します。 目的のエージェントを選択した後は、デフォルトのポリシーを更新したり、新規ポリシーを追加できます。 次に、選択したポリシーに1つ以上のポリシー・ステップを定義します。

サーバー・エージェントに対してポリシー・セットを定義する手順は、次のとおりです。

  1. Web Services Manager Control Consoleで、「ポリシー管理」をクリックし、「ポリシーの管理」をクリックします。

  2. コンポーネント・リストで、ポリシー・セットを定義するエージェントを選択し、「ポリシー」をクリックします。

    エージェントに対するポリシー・セットが表示されます。

    Oracle Web Services Managerには、エージェント・コンポーネントまたはゲートウェイ・コンポーネントごとにデフォルトのポリシーが用意されています。ポリシーを追加して、追加のポリシー・コントロールを実装できます。

  3. デフォルト・ポリシーの「編集」アイコンをクリックします。 ポリシー定義ページが表示されます。 図10-5に、Authentication Agentのデフォルト・ポリシー・パイプラインを示します。

    図10-5 デフォルト・ポリシーのポリシー・パイプライン

    この図の詳細は、周辺の説明を参照してください。
    この図の詳細は、周辺の説明を参照してください。

    Web Services Manager Control Consoleには、ポリシーの現在の内容である、リクエスト前、リクエスト、レスポンスおよびレスポンス後パイプラインの各ステップが表示されます。 デフォルトでは、「ログ」ステップは、リクエスト・パイプラインおよびレスポンス・パイプラインに対して使用できます。

  4. リクエスト・パイプラインでは、「ログ」ポリシー・ステップに続いて資格証明の認証を実装します。 「以下にステップを追加」をクリックします。

    適切な場所にボックスが表示されます。このボックスを使用して、図10-6に示すようにポリシー・ステップを選択できます。

    図10-6 リクエスト・パイプラインでのポリシー・ステップの挿入

    この図の詳細は、周辺の説明を参照してください。

  5. リストから「資格証明の抽出」を選択して「OK」をクリックします。

    ポリシー定義ページが再表示され、新規に追加した「資格証明の抽出」ステップが表示されます。

  6. 図10-7に示すように、「構成」をクリックして「資格証明の抽出」ステップのプロパティを定義します。

    図10-7 「資格証明の抽出」ステップのプロパティ定義

    この図の詳細は、周辺の説明を参照してください。
    この図の詳細は、周辺の説明を参照してください。

    この図のステップの構成ページでは、次の項目が設定されています。

    • デフォルトで、「有効」プロパティが「true」に設定されています。

    • 資格証明の場所が「WS-BASIC」に設定されています。

    WS-BASICロケーションは、資格証明が、WS-I Basic Security Profileでの指定に従って、標準のUsernameトークンから抽出されることを示しています。

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

    ポリシー定義ページが再表示されます。

  8. 資格証明認証の2番目のステップを追加するには、「資格証明の抽出」行で「以下にステップを追加」をクリックします。

  9. 「新規ステップ」ボックスで、「ファイルの認証」というステップ・テンプレートを選択して「OK」をクリックします。

    図10-8に示すように、リクエスト・パイプラインのステップが表示され、「ファイルの認証」がパイプラインの最後のステップに表示されます。

    図10-8 サーバー・エージェントのリクエスト・パイプライン

    この図の詳細は、周辺の説明を参照してください。

  10. 新規ステップのプロパティを定義するには、「ファイルの認証」行で「構成」をクリックします。

    図10-9に示すように、ステップの構成ページが表示されます。

    図10-9 「ファイルの認証」ステップのプロパティ定義

    この図の詳細は、周辺の説明を参照してください。

  11. このステップに対して次のプロパティを定義します。

    • 「パスワード・ファイルの場所」に「C:\admin\.htpasswd」と指定します。

    • 「.htpasswdファイル形式」として「md5」を選択します。


    注意:

    このステップはデフォルトで選択されています。

  12. 「OK」をクリックして、このステップの定義を完了します。 ポリシー定義ページが再表示されます。

  13. 「次へ」をクリックして、ポリシー・ページに戻ります。

  14. 「保存」をクリックして、このステップの定義を保存します。

  15. ポリシー・セット・ページで、「コミット」をクリックします。

10.3.4 エージェントに対するポリシー・セット定義時の処理内容

1つ以上のポリシーとそれぞれのポリシー・ステップを定義した後、その内容は即時には有効になりません。 たとえば、さらにポリシー・ステップをポリシー・パイプラインに追加し、エージェントに対するポリシー構成の更新または変更を必要に応じて続行できます。 ステップの定義を完了して保存すると、図10-10に示すように、エージェントのポリシー・セットが表示されます。

図10-10 ポリシー変更のコミット

この図の詳細は、周辺の説明を参照してください。

「ポリシーのコミット」がページ上に赤色で表示されます。「コミット」をクリックするまで、Oracle WSM Policy Managerは、新規情報によって更新されません。 更新された後は、そのコンポーネントのポリシー・セットが有効になり、次の変更が実行されてコミットされるまで有効なままです。

10.3.5 ユーザー資格証明を使用したファイルの設定方法

前の手順の第10.3.3項「サーバー・エージェントに対するポリシー・セットの定義方法」では、ファイル認証ステップが構成されました。 通常、ファイル・ベース認証はテスト環境で使用されます。

資格証明ファイルの形式は、Apache Webサーバーで使用される.htpasswdファイル形式と同じです。 パスワードは、4つの形式(MD5、SHA1、プレーン・テキストまたはこの3つの形式の組合せ)でエンコードできます。

ユーザー資格証明付きのファイルを設定する手順は、次のとおりです。

  1. メモ帳やviなどのテキスト・エディタを使用してファイルを作成します。 単一ユーザー名のエントリをファイルに追加します。次に例を示します。

    bill:

    このファイルを保存して閉じます。

  2. ORACLE_HOME\owsm\bin\wsmadminにあるOracle WSMのコマンドライン・ツールを使用して、このファイルを完了します。

    コマンド構文は次のとおりです。

    wsmadmin md5encode user_name password htpasswdfile

    次に例を示します。

    C:\OracleAS_1\wsmadmin md5encode bill billspwd .htpasswd

    詳細は、『Oracle Web Services Managerデプロイメント・ガイド』を参照してください。

10.3.6 サーバー・エージェントのインストール方法

サーバー・エージェントは、J2EEエージェントとしてインストールする必要があります。 Oracle Web Services Managerには、エージェントの登録などの様々な管理タスク用にwsmadminコマンドライン・ツールが用意されています。

サーバー・エージェントをJ2EEエージェントとしてインストールする手順は、次のとおりです。

  1. Oracle Web Services Managerコマンド・プロンプトで、Oracle SOAインストール内にあるOracle Web Services Managerコンポーネントのbinディレクトリに移動します。 次に例を示します。

    ORACLE_HOME\owsm\bin

  2. テキスト・エディタを使用して、agent.propertiesファイルを編集します。

  3. agent.component.idに対して、登録したサーバー・エージェントのコンポーネントIDを挿入します。 図10-11に例を示します。

    図10-11 agent.propertiesファイルの編集

    この図の詳細は、周辺の説明を参照してください。

    ファイルを保存します。

  4. コマンド・プロンプトで、次のようにinstallAgentコマンドを実行します。

    ORACLE_HOME\owsm\bin\wsmadmin installAgent Oracle-AS-password

    Oracle-AS-passwordはOC4J管理者のパスワードです。

    コマンドが実行され、図10-12に示すように、J2EEサーバー・エージェントが作成されてインストールされます。

    図10-12 サーバー・エージェントのインストール

    この図の詳細は、周辺の説明を参照してください。

10.3.7 Application Server ControlでのWebサービス・エージェントの構成方法

Oracle Web Services ManagerのOracle Web Services Manager Agentを使用可能にして、Oracle WSM Server Agentに関連付ける必要があります。

Enterprise ManagerでWebサービス・エージェントを構成する手順は、次のとおりです。

  1. Oracle Enterprise Manager 10g Application Server Control Consoleのホームページから開始します。

    「メンバー」の下にある「ホーム」リンクをクリックします。

  2. 「Webサービス」をクリックします。 Webサービスのリストが表示されます。

  3. Webサービスの「ValidateCreditCardServiceSoapHttp」リンクをクリックします。 図10-13に示すように、このサービスのメイン・ページが表示されます。

    図10-13 Webサービスのメイン・ページ

    この図の詳細は、周辺の説明を参照してください。

  4. 「管理」リンクをクリックすると、図10-14に示すように、このWebサービスで使用可能な管理機能が表示されます。

    図10-14 Webサービスの管理ページ

    この図の詳細は、周辺の説明を参照してください。
  5. Webサービス・エージェント機能を使用可能にするには、「機能の有効化/無効化」をクリックします。 使用可能な機能のリストが表示されます。

  6. 図10-15に示すように、「Webサービス・エージェント」を「有効な機能」リストに移動します。

    図10-15 Webサービス・エージェントの有効化

    この図の詳細は、周辺の説明を参照してください。
  7. 「OK」をクリックします。 Webサービス: ValidateCreditCardServiceSoapHttpページが再表示され、有効化したWebサービス・エージェントが表示されます。

    ページ上部の確認メッセージに注意してください。

  8. 最終の構成手順では、Oracle Web Services Manager Server AgentのコンポーネントIDをこのWebサービス・エージェントに関連付けます。

    図10-14に示すように、ValidateCreditCardServiceSoapHttp Webサービスの管理機能ページで、「Webサービス・エージェント」の「構成の編集」アイコンをクリックします。

    Webサービス・エージェント構成の編集ページが表示されます。

  9. 図10-16に示すように、「構成ディレクトリ」ボックスで、Oracle Web Services Manager Server AgentのコンポーネントIDを入力します。

    図10-16 Webサービス・エージェント構成の編集

    この図の詳細は、周辺の説明を参照してください。
  10. 「OK」をクリックします。 Webサービスの管理機能ページに確認メッセージが表示されます。

10.3.8 Application Server ControlでのWebサービス・エージェント構成時の処理内容

Application Server ControlでWebサービス・エージェントを構成すると、Oracle WSM Server Agentがアプリケーション・サーバーに認識されます。 Oracle SOA SuiteにOracle WSMを統合すると、該当するエージェントのOracle WSMコンポーネントIDを指定することで、この管理情報を簡単に構成できます。この管理情報は、Webサービス、ビジネス・ロジックおよびクライアント実装から完全に切り離されていることに注意してください。

10.3.9 認証のテスト方法

最終手順では、資格証明の認証用に構成したエージェントをテストします。

認証をテストする手順は、次のとおりです。

  1. OC4Jのホーム・インスタンスの「アプリケーション」リンクに戻り、デフォルトのアプリケーションを開きます。

  2. 目的のアプリケーションのリンクをクリックし、そのアプリケーションのホームページを表示します。 この例では、「SOADEMO-CREDITSERVICE-CreditService-WS」リンクです。

  3. 「Webサービス」タブを選択します。 図10-17に示すように、「SOADEMO-CREDITSERVICE-CreditService-WS」アプリケーションには単一のWebサービスが含まれています。

    図10-17 アプリケーションで使用可能なWebサービス

    この図の詳細は、周辺の説明を参照してください。

  4. 「サービスのテスト」をクリックします。 URLのリストが表示され、Webサービスのテストに使用できる各サイトが示されます。 与信検証サービスの場合、図10-18に示すようにURLは1つのみです。

    図10-18 Webサービスのテスト・ページ

    この図の詳細は、周辺の説明を参照してください。

  5. 「Webサービスのテスト」をクリックします。 サービスのテスト・ページが表示されます。

  6. 「WSセキュリティ」を開きます。 この例では、「ユーザー名」フィールドや「パスワード」フィールドなどの入力フィールドが表示されます。

  7. 図10-19に示すように、「有効化」チェック・ボックスを選択し、ユーザー資格証明とクレジット・カードの情報を入力します。

    図10-19 Webサービス・テストに関する情報の入力

    この図の詳細は、周辺の説明を参照してください。

    「起動」をクリックします。 テスト結果ページが表示されます。

  8. Oracle Web Services ManagerのOracle Web Services Managerログを問い合せることで、結果を検証できます。 Web Services Manager Control Consoleから、「操作管理」「全体統計」「メッセージ・ログ」の順にクリックします。

  9. 図10-20に示すように、「検索」をクリックして、「メッセージ・ログ」を表示します。

    図10-20 Oracle WSMの「メッセージ・ログ」

    この図の詳細は、周辺の説明を参照してください。

    過去1時間の与信検証サービスに関するリクエスト・ログとレスポンス・ログの2つのログが生成されています。

  10. リクエスト・ログの「索引」列で数字をクリックすると、図10-21に示すようなページが開いて、渡された各パラメータが表示されます。

    図10-21 リクエスト・ログ・エントリ

    この図の詳細は、周辺の説明を参照してください。

    図10-22に示すように、レスポンス・ログ・エントリには、資格証明がtrueと検証されたことが示されています。

    図10-22 レスポンス・ログ・エントリ

    この図の詳細は、周辺の説明を参照してください。

10.3.10 実行時の処理内容

前述の例では、Oracle Web Services Managerによって、実行時に2つの主要なアクションが実行されています。

  1. ユーザー資格証明の抽出

    通常、ユーザー名とパスワードの組合せであるメッセージ資格証明が、トランスポート・ヘッダー、SOAPヘッダー、XMLボディなどの様々な方法で配信されます。 この例では、WS-BASIC Soap Securityヘッダーを利用して、WS-I Basic Security Profileで指定されている標準のUsernameトークンから資格証明が抽出されています。

    Oracle Web Services Managerには、資格証明抽出に関する他のオプションも用意されています。 詳細は、『Oracle Web Services Manager管理者ガイド』の資格証明抽出のポリシー・ステップに関する説明を参照してください。

  2. 資格証明の認証

    この例のファイル・ベース認証に加えて、Oracle Web Services Managerでは、LDAPディレクトリおよびセキュリティのデータ・ストアと照合する認証がサポートされています。 認証は、X.509証明書を提示して検証することもできます。

Oracle Web Services Managerには、資格証明管理、認証、認可、メッセージ・セキュリティおよびその他の各種機能が用意されています。 Oracle Web Services Managerの使用可能なランタイム・アクションについては、『Oracle Web Services Manager管理者ガイド』のOracle WSMポリシー・ステップに関する付録を参照してください。

エラー処理

ポリシーの実行(ユーザー認証など)に失敗した場合、Oracle Web Services Managerは、SOAP障害をクライアントのOracle Web Services Managerに戻します。

10.3.11 Usernameトークンを送信するOracle BPEL Process Managerの構成方法

保護されたWebサービスと対話するために、クライアントは、有効なセキュリティ資格証明が含まれたSOAPメッセージを送信する必要があります。 これを実行するために、bpel.xmlファイルの関連のWS-Securityヘッダー・タグが含まれたUsernameトークンを送信するようにOracle BPEL Process Managerを構成できます。


注意:

bpel.xmlは、WSDLなどのパートナ・リンクが含まれたBPELメタデータ・ファイルです。

図10-23に示すように、bpel.xmlの次の部分は、「CreditValidationService」パートナ・リンクのUsernameトークンを有効にする方法を示しています。

図10-23 Usernameトークンの有効化

この図の詳細は、周辺の説明を参照してください。

ここでは、ユーザーjsteinとパスワードwelcome1の資格証明が、wsseHeaderswsseUsernameおよびwssePasswordのデプロイメント・ディスクリプタを使用して設定されています。これらのプロパティは、認証するOracle Web Services Manager Server Agentによって検証されます。