ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus開発者ガイド
11gリリース1 (11.1.1.6.2)
B61435-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

26 HTTPトランスポートおよびポーラー・トランスポート

この章では、HTTP(S)トランスポートおよびポーラー・トランスポート(電子メール、ファイル、FTPおよびSFTP)の概要と、サービスでの使用および構成方法について説明します。HTTPトランスポートの項では、Oracle Service Bus (OSB)でRESTを使用するためのガイダンスも提供します。

様々なタイプのトランスポートを使用して、OSBのプロキシ・サービスまたはビジネス・サービスを構成できます。選択する転送プロトコルは、サービス・タイプ、必要な認証のタイプ、呼出し元のサービスのサービス・タイプなどによって異なります。

ポーリングベースのトランスポートは、トランスポート・ポーラーが管理対象サーバーに固定されているトランスポートです。これらのトランスポートでは、JMSフレームワークを使用して、メッセージの処理が少なくとも1回は実行されることを保証します。電子メール、ファイル、FTPおよびSFTPは、ポーリングベースのトランスポートです。ここでは、ポーリングベースのトランスポートとHTTPトランスポートについて説明します。

このドキュメントは、以下の項で構成されています。

26.1 HTTPトランスポート

HTTPトランスポートは、Oracle Service Busでhttp/sプロトコルを使用してクライアントとサービス・プロバイダ間でメッセージの送信を行います。また、26.1.3項「RESTサポート」で説明されているように、HTTPトランスポートはREST (Representational State Transfer)環境での作業のサポートも提供します。

任意のタイプのプロキシ・サービスまたはビジネス・サービスを構成する場合は、HTTP転送プロトコルを選択できます。エンドポイントURIの形式は次のとおりです。

ここで、someServiceはプロキシ・サービスまたはビジネス・サービスの名前です。

26.1.1 HTTPトランスポートを使用するプロキシ・サービスの構成

プロキシ・サービスのHTTPトランスポートを構成する際に指定できるパラメータを表26-1に示します。

表26-1 プロキシ・サービスのHTTPトランスポートを構成するためのパラメータ

パラメータ 説明

HTTPSが必要

インバウンドHTTPSエンドポイントの場合は、このチェック・ボックスを選択します。

詳細は、第49章「トランスポートレベルのセキュリティの構成」を参照してください。

認証

次のいずれかの認証方式を構成する必要があります。

  • 「なし」 - 認証を必要としないことを指定します。

  • 「基本」 - このサービスにアクセスするには、基本認証が必要であることを指定します。

    基本認証では、Oracle WebLogic Serverでユーザー名とパスワードを使用し、セキュリティ・レルム(Lightweight Directory Access Protocol (LDAP)ディレクトリ・サービスやWindows Active Directoryなど)で構成された認証プロバイダに対してクライアントの認証が行われます。クライアントは、HTTPリクエスト・ヘッダーでユーザー名とパスワードを送信する必要があります。

    HTTPでの基本認証は、パスワードがクリア・テキストで送信されるため推奨しません。HTTPSでは暗号化されたチャネルが提供されるため、パスワードはHTTPSで送信するのが安全です。

    注意: デフォルトでは、すべてのユーザー(認可ユーザーおよび匿名ユーザー)がプロキシ・サービスにアクセス可能です。プロキシ・サービスにアクセスできるユーザーを制限するには、トランスポートレベルの認可ポリシーを作成する必要があります。『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のトランスポートレベル・アクセス・ポリシーの編集に関する項を参照してください。

  • 「クライアント証明書」 - 暗号化通信および強力なクライアント認証(双方向SSL)を指定します。詳細は、第49章「トランスポートレベルのセキュリティの構成」を参照してください。

  • 「カスタム認証」 - 認証トークンがHTTPヘッダーに含まれていることを指定します。クライアントのIDは、ここでクライアントが指定したトークンを使用して設定されます。トークンをOracle Service BusユーザーにマップするIDアサーション・プロバイダを構成する必要があります。

カスタム認証トークンには、構成されたOracle WebLogic Server IDアサーション・プロバイダがサポートする任意のアクティブなトークン・タイプを指定できます。

ディスパッチ・ポリシー

このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。

ワーク・マネージャの詳細は、次の説明を参照してください。

  • 『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する説明

  • 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのワーク・マネージャの使用に関する項

リクエストのエンコーディング

インバウンドおよびアウトバウンド・トランスポートのリクエストのエンコーディングを次に説明します。

  • HTTPインバウンド・トランスポートの場合は以下のとおりです。

    クライアント・リクエストでContent-Typeヘッダーの文字セット・エンコーディング・パラメータが指定されていないときは、文字セット・エンコーディング・パラメータを入力します。値を入力しない場合は、このフィールドにデフォルトのISO-8859-1が設定されます。

  • HTTPアウトバウンド・トランスポートの場合は以下のとおりです。

    リクエスト・エンコーディングを構成していない場合、Oracle Service Busランタイムがビジネス・サービスにリクエストを行う際に最適なエンコーディングが決定されます。パス・スルー以外のシナリオでは、実行時のデフォルトの文字エンコーディングはUTF-8となります。ただし、パス・スルーのシナリオでは、ランタイムは受信したエンコーディングのパス・スルーをアウトバウンド・レスポンスで行います。

レスポンスのエンコーディング

HTTPトランスポートにおけるレスポンスの文字セット・エンコーディングとして、デフォルトのiso-8859-1を受け入れるか、別の文字セット・エンコーディングを入力します。

認証ヘッダー

Oracle Service Busがトークンを抽出するHTTPヘッダー(Authorization以外の任意)を入力します。このフィールドが使用可能になるのは、「カスタム認証」チェックボックスが選択されている場合のみです。

例: client-xyz-token

認証トークン・タイプ

認証トークン・タイプを選択します。IDアサーション・プロバイダに対して構成されているアクティブなトークン・タイプのみを使用できます。このフィールドが使用可能になるのは、「カスタム認証」チェックボックスが選択されている場合のみです。


HTTPトランスポート・ベースのプロキシ・サービスを構成する方法および詳細設定は、2.3項「プロキシ・サービスの操作」を参照してください。

26.1.2 HTTPトランスポートを使用するビジネス・サービスの構成

HTTPに基づく任意のタイプのビジネス・サービスを構成するときに、エンドポイントURIが次の形式の場合、転送プロトコルとしてHTTPを選択する必要があります。

http://<host:port/someService>

説明:

  • hostは、サービスをホストするシステムの名前です。

  • portは、接続を行うポート番号です。

  • someServiceは、ターゲット・サービスです。


    注意:

    HTTPSに基づくビジネス・サービスを構成するときは、次のエンドポイントURIを指定する必要があります。

    https://<host:port/someService>
    

ビジネス・サービスのHTTPトランスポートを構成する際に指定できるすべてのパラメータを表26-2に示します。

表26-2 ビジネス・サービスのHTTPトランスポートを構成するためのパラメータ

パラメータ 説明

読取りタイムアウト

読取りタイムアウトまでの間隔を秒単位で入力します。

値0ではタイムアウトが行われません。

接続タイムアウト

接続タイムアウトまでの間隔を秒単位で入力します。接続が確立する前にタイムアウトになると、Oracle Service Busによって接続エラーが生成されます。

値0ではタイムアウトが行われません。

HTTPリクエスト・メソッド

このパラメータにより、リクエストで以下のいずれかのHTTPメソッドを使用できます。

  • 「POST」 - HTTPリクエストの本文の一部として、長さに関わらずすべてのデータをソケット接続で直接渡します。このやりとりはクライアントから認識できず、URLも変わりません。RESTベースのリクエストの場合、POSTでは作成/置換操作を実行するか、またはリクエストの操作を実行するようにトランスポートに指示します。

  • 「GET」 - リクエストの一部として、取得対象を詳しく表した独自の情報を組み込むことができます。この情報は、問合せ文字列内のリクエストURLに追加された文字のシーケンスとして渡されます。「リクエスト・メッセージ・タイプ」が「なし」に設定されている場合は、「サービス・タイプ」が「任意のXMLサービス」または「メッセージ・サービス」のビジネス・サービスでGETを使用できます。RESTベースのリクエストの場合、GETはリモート・リソースの表現を受け取ります。

  • 「PUT」 - PUTは、「サービス・タイプ」が「任意のXMLサービス」または「メッセージ・サービス」のビジネス・サービスで使用できます。PUTは、RESTベースのリクエストによる作成と置換の操作(既知の場所へのファイルのアップロードなど)を実行するようトランスポートに通知します。

  • 「HEAD」 - 「レスポンス・メッセージ・タイプ」が「なし」に設定されている場合は、「サービス・タイプ」が「任意のXMLサービス」または「メッセージ・サービス」のビジネス・サービスでHEADを使用できます。HEADは、RESTベースのリクエストでリモート・リソースの完全な表現を取得するのではなく、そのリソースのヘッダー情報を取得するようトランスポートに通知します。

  • 「削除」 - 「削除」は、「サービス・タイプ」が「任意のXMLサービス」または「メッセージ・サービス」のビジネス・サービスで使用できます。「削除」は、RESTベースのリクエストによる削除操作を実行するようトランスポートに通知します。

注意: $outbound/transport/request/http:http-method変数でメソッドがすでに設定されている場合は、HTTPリクエスト・メソッドに選択したどのメソッドよりもその値が優先されます。

認証

次のいずれか1つを選択します:

  • 「なし」 - このサービスへのアクセスに認証を必要としないことを指定します。

  • 「基本」 - このサービスにアクセスするには、基本認証が必要であることを指定します。

    基本認証では、Oracle WebLogic Serverでユーザー名とパスワードを使用し、セキュリティ・レルム(Lightweight Directory Access Protocol (LDAP)ディレクトリ・サービスやWindows Active Directoryなど)で構成された認証プロバイダに対してクライアントの認証が行われます。クライアントは、HTTPリクエスト・ヘッダーでユーザー名とパスワードを送信する必要があります。

    HTTPでの基本認証は、パスワードがクリア・テキストで送信されるため推奨しません。HTTPSでは暗号化されたチャネルが提供されるため、パスワードはHTTPSで送信するのが安全です。

    注意: デフォルトでは、すべてのユーザー(認可ユーザーおよび匿名ユーザー)がビジネス・サービスにアクセス可能です。ビジネス・サービスにアクセスできるユーザーを制限するには、トランスポートレベルの認可ポリシーを作成する必要があります。『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のトランスポートレベル・アクセス・ポリシーの編集に関する項を参照してください。

  • 「クライアント証明書」 - 暗号化通信および強力なクライアント認証(双方向SSL)を指定します。詳細は、第49章「トランスポートレベルのセキュリティの構成」を参照してください。

サービス・アカウント

サービス・アカウントとは、ユーザー名とパスワードのエイリアス・リソースです。基本認証必須フィールドを選択した場合、このフィールドは必須です。

詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。

ディスパッチ・ポリシー

このエンドポイントのディスパッチ・ポリシーに使用するOracle WebLogic Serverワーク・マネージャのインスタンスを選択します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。

ワーク・マネージャの詳細は、次の説明を参照してください。

  • 『Oracle Fusion Middleware Oracle WebLogic Serverサーバー環境の構成』のワーク・マネージャを使用したスケジューリング済作業の最適化に関する説明

  • 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のOracle Service Busでのワーク・マネージャの使用に関する項

リクエストのエンコーディング

電子メール・トランスポートにおけるリクエストの文字セット・エンコーディングとして、デフォルトのiso-8859-1を受け入れるか、別の文字セット・エンコーディングを入力します。

レスポンスのエンコーディング

HTTPトランスポートにおけるレスポンスの文字セット・エンコーディングとして、デフォルトのiso-8859-1を受け入れるか、別の文字セット・エンコーディングを入力します。

プロキシ・サーバー

プロキシ・サーバー・リソースを入力するか、「参照」をクリックして構成されたプロキシ・サーバー・リソースの一覧からエントリを選択します。

HTTPリダイレクトの追跡

HTTPリダイレクト(レスポンス・コード3xxによるリクエスト)を自動的に追跡することを指定します。リダイレクトは、ビジネス・サービスのURLにアウトバウンド・リクエストを送信し、そのサービスから、URLが無効になったためこのリクエストを別のURLに送信する必要があることを示すレスポンス・コード(たとえば302)が返された場合に発生します。「HTTPリダイレクトの追跡」チェック・ボックスが選択されている場合、リクエストは自動的に新しいURLに再送信され、ユーザー側でのアクションは発生しません。HTTPリダイレクトを自動的に追跡しない場合は、このチェック・ボックスのチェックを外します。

チャンク・ストリーミング・モードの使用

HTTPチャンク転送エンコーディングを使用してメッセージを送信する場合は、このオプションを選択します。

注意: 「HTTPリダイレクトの追跡」オプションを使用する場合は、チャンク・ストリーミングを使用しないでください。リダイレクトと認証をチャンク・モードで自動的に処理することはできません。


このトランスポートを構成する方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。

26.1.3 RESTサポート

HTTPトランスポートは、Oracle Service Busを介したREST (Representational State Transfer)環境での作業をサポートします。このサポートは、非RESTサービス・プロバイダと対話する必要があるRESTクライアント、RESTベースのサービス・プロバイダと対話する必要がある非RESTクライアント、またはOracle Service Busを介して公開する必要があるREST-to-RESTサービスのいずれにも対応します。

RESTのパターンでは、特定のURLにあるリソースに対してHTTPメソッド(GET、PUT、HEAD、POST、DELETEなど)を呼び出します。たとえば、RESTを使用したWebアプリケーションでユーザーがプロファイル情報を更新した場合、POSTアクションがサービスのREST APIを介してデータベースのユーザー情報を更新します。

Oracle Service Busでは、アウトバウンドおよびインバウンド通信のRESTベースのリクエストを処理するために、次のプレースホルダー変数が用意されています。

  • $inboundまたは$outbound/transport/request/http:http-method - GET、PUT、HEAD、POST、DELETEのようなHTTPメソッドを処理します。

  • $inboundまたは$outbound/transport/request/http:parameters - URLの問合せ文字列を処理します。parametersメタデータには、名前/値のペアを格納する1つ以上のparameter要素が含まれます。名前/値のペアは、query-stringのURLDecoded値です。たとえば、http://localhost:7021/myproxy/weather?operation=temperature&pincode=94065というURLで、問合せ文字列は次の問合せパラメータとして格納されます。

    <http:query-parameters>
    <http:parameter name="operation" value="temperature"/>
    <http:parameter name="pincode" value="94065"/>
    </http:query-parameters>
    
  • $inboundまたは$outbound/transport/request/http:relative-URI - RESTリソースのURLの相対的な部分(プロキシ・サービスのURIに対して相対的)を処理します。たとえば、http://localhost:7021/myproxy/weatherというURLで、/weatherはhttp://localhost:7021/myproxyに対して相対的なURLです。

26.1.3.1 プロキシ・サービスのREST

Oracle Service Busプロキシ・サービスには、RESTベースのリクエストを受信するか、RESTベースのアクションを生成するかにかかわらず、RESTパターンを操作できる柔軟性があります。

たとえば、RESTベースのアプリケーションを開発し、非RESTサービス・プロバイダでサービスを呼び出したい場合は、プロキシ・サービスでREST操作を送り、その操作をサービス・プロバイダが認識できる形式に変換するか、非RESTリクエストをリソースURLに変換し、RESTベース のサービス・プロバイダで操作を呼び出すことができます。また、REST-to-REST実装の監視、監査およびレポートのために仲介者としてOSBを使用することもできます。

OSBでRESTを使用する作業例は、Oracle Service Busサンプルのリポジトリ(http://www.oracle.com/technetwork/middleware/service-bus/learnmore/index.html)を参照してください。

26.1.3.1.1 XQueryサンプル

以下は、プロキシ・サービスでHTTP変数を使用して行うURI解析のXQueryサンプルです。URI解析では、REST環境と非REST環境間でメッセージを変換できます。

相対URI

プロキシ・サービスのURIがhttp://localhost:7001/weatherであり、リクエストの相対的URIの部分をキャプチャするとします。次のXQueryを作成します。

<relative-URI>
{
for $c in
fn:tokenize($inbound/ctx:transport/ctx:request/http:relative-URI, "/")
where fn:string-length($c) != 0
return
<part>
{$c}
</part>
}
</relative-URI>

リクエストのURIがhttp://localhost:7001/weather/temperature/35457の場合、relative-URIは/temperature/35457になり、XQuery出力は次のようになります。

<relative-URI>
    <part>temperature</part>
    <part>35457</part>
</relative-URI>

問合せ文字列パラメータ

プロキシ・サービスのURIがhttp://localhost:7001/weatherであり、URL問合せ文字列パラメータをキャプチャするとします。次のXQueryを作成します。

<query-parameters>
{
return 
<param name="$inbound/ctx:transport/ctx:request/http:parameters/param/name"
value="$inbound/ctx:transport/ctx:request/http:parameters/param/value"></param>
}
</query-parameters>

リクエストのURIがhttp://server:7001/weather?operation=temperature&pincode=35457の場合、query-stringはoperation=temperature&pincode=35457になり、http:parametersメタデータの個別パラメータとして格納されます。XQuery出力は次のようになります。

<query-parameters>
    <param name='operation' value='temperature'/>
    <param name='pincode' value='35457'/>
</query-parameters>
26.1.3.1.2 ヘッダー

サービスによりHTTP/RESTメソッドを処理するために固有のヘッダーが必要な場合、パイプラインにユーザー定義済HTTPヘッダー変数を作成します。

26.1.3.2 ビジネス・サービスのREST

Oracle Service Busビジネス・サービスでは、RESTベースのサービスを呼び出すことができます。

REST操作で、HTTPトランスポートは$outbound/transport/request/http:http-method変数の値を使用します。この変数にHTTPメソッドが指定されていない場合、HTTPトランスポートではトランスポート構成に含まれるHTTPリクエスト・メソッド(POST、PUT、HEAD、GET、DELETE)のいずれかを選択できます。


注意:

ビジネス・サービスが サービスのタイプ としてWSDL Webサービスを使用している場合は、POSTメソッドのみが選択可能です。


$outbound/transport/request-http/http-method変数を使用して、独自のメソッドを指定することもできます。たとえば、WebDAV (Web-based Distributed Authoring and Versioning)環境でCOPY、MOVE、およびLOCKを使用できます。

次のガイドラインを使用して$outbound変数を設定します。

  • トランスポートは、カスタム・メソッドに対して、またはこの項で説明する制約に従っていない手動で設定されたサポート対象メソッドに対して、実行時の検証を提供しません。

  • $outboundはルーティング・ノードでのみ有効なため、パブリッシュおよびサービス・コールアウト・アクションのメソッド名を実行時に指定することはできません。

  • $outbound問合せ文字列パラメータが設定されている場合、ビジネス・サービスは、RAWバイトからの問合せ文字列の構築にアウトバウンド・リクエスト・エンコーディングを、またparametersメタデータ要素から取得されたパラメータの名前/値のペアにURLエンコーディングを使用します。

  • $outbound relative-URIが設定されている場合、ビジネス・サービスはその値を使用して、ビジネス・サービスURIに対して相対的なURIを生成します。

    たとえば、ビジネス・サービスが次のURIを使用し、

http://service.com/purchaseOrder

次のHTTP変数を使用する場合、

$outbound/transport/request-http/relative-URI: "/PO12367"

$outbound/transport/request-http/parameters/parameter: "item=NO1"

$outbound/transport/request-http/parameters/parameter: "color=black"

最終的に解決されたURIは次のようになります。

http://service.com/purchaseOrder/PO12367?item=NO1&color=black

26.1.3.2.1 HTTPビジネス・サービスのレスポンス・コードおよびエラー処理

Oracle Service Busは、200から500までの範囲のすべてのレスポンス・コードを処理するために、HTTP 1.1仕様に準拠しています。表26-3に、OSBが様々なレスポンス・コード・レベルを処理する方法を示します。

HTTPビジネス・サービスは、300以上のエラーを含むレスポンス・ペイロードを受信するため、次のタイプである必要があります。

  • WSDL Webサービス

  • 任意のSOAPサービス

  • 次の条件を満たすメッセージング・サービス:

    • 「レスポンス・メッセージ・タイプ」は、「MFL」または「XML」である必要があります(タイプがXMLまたはSOAPに確定されます)。OSBがXMLまたはSOAP以外であると判断したレスポンス・タイプを持つHTTPビジネス・サービスでは、HTTPレスポンス・ペイロードが受信されません。

    • レスポンス・ペイロードのHTTPヘッダーContent-Typeは、text/xml、application/any_string+xmlまたはmultipart/relatedです。

表26-3 HTTPビジネス・サービスのレスポンス・コード処理

レスポンス・ステータス・コード 説明

100s

100レベルのステータス・コードは、Status-Lineとオプション・ヘッダーのみで構成され、空の行で終わる暫定レスポンスを示します。100レベルのコードのレスポンス動作は、内部のHttpURLConnection Javaクラスで処理済であるため、OSBでは処理されません。

200s

200レベルのステータス・コードは、操作の成功を示します。OSBは、ビジネス・サービス・タイプにかかわらず、HTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。

300s

300レベルのステータス・コードは、リクエストに対応するために呼出し元が追加アクションを実行する必要があることを示すエラーです。OSBは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。

レスポンス・パイプラインで、300レベルのコードを処理するために適切なアクションを実行できます。

リダイレクトが必要であることを示す300レベルのレスポンス・コードを処理するには、HTTPビジネス・サービスのトランスポート構成で「HTTPリダイレクトの追跡」オプションを設定します。

400s

400レベルのステータス・コードは、クライアント・エラーを示します。OSBは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。

レスポンス・パイプラインで、400レベルのコードを処理するために適切なアクションを実行できます。

500s

500レベルのステータス・コードは、サーバー・エラーを示します。OSBは、サポートされるメッセージ・レスポンス・タイプを含むHTTPビジネス・サービスにレスポンス・ペイロードとしてこれらのコードを戻します。

レスポンス・パイプラインで、400レベルのコードを処理するために適切なアクションを実行できます。


26.2 電子メール・トランスポート

プロキシ・サービスまたはビジネス・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、電子メール・トランスポートプロトコルを選択できます。以下のトピックでは、電子メール・トランスポートを使用して、プロキシ・サービスとビジネス・サービスを構成する方法について説明します。


注意:

電子メール・トランスポートでは、メッセージング・サービス・タイプのサービスの一方向のメッセージングをサポートしています。

電子メール・トランスポートを使用して、メッセージ・タイプのプロキシ・サービスまたはメッセージ・タイプのビジネス・サービスを作成する場合、「メッセージ・タイプ」構成ページでレスポンス・タイプを「なし」に設定する必要があります。


26.2.1 電子メール・トランスポートを使用するプロキシ・サービスの構成

電子メール・トランスポートを使用してプロキシ・サービスを構成する場合は、エンドポイントURIを次の形式で指定する必要があります。

mailfrom:<mailserver-host:port>

ここで、mailserver-hostは、ホスト・メール・サーバーの名前、portはホスト・メール・サーバーが使用するポートです。

電子メール・トランスポート・ベースのプロキシ・サービスで構成できるパラメータを表26-4に示します。

表26-4 プロキシ・サービスの電子メール・トランスポートを構成するためのパラメータ

パラメータ 説明

サービス・アカウント

これは必須パラメータです。これは、サービス・アカウント・リソースです。サービス・アカウントは、電子メール・アカウントにアクセスするために必要なユーザー名とパスワードの組合せで構成されます。

ポーリング間隔

これは必須パラメータです。ポーリング間隔を秒単位で指定します。デフォルト値は60です。

電子メール・プロトコル

これは必須パラメータです。imapおよびpop3の2種類のプロトコルから選択できます。デフォルト・プロトコルはpop3です。

読取り制限

これは必須パラメータです。各ポーリングで読み込むファイルの数を指定します。デフォルト値は10です。

参照渡し

このパラメータを有効にすると、ファイルはアーカイブ・ディレクトリにステージングされ、メッセージ・ヘッダーに参照として渡されます。

読取り後のアクション

これは必須パラメータです。サービスでファイルを読み込んだ後に、削除、移動、アーカイブのどのアクションを実行するかを指定します。デフォルトでは、ファイルは読込み後に削除されます。

添付ファイル

これは必須パラメータです。添付ファイルをアーカイブするか無視するかを指定します。デフォルトでは「無視」に設定されています。

注意: 添付ファイルをアーカイブする場合、「参照渡し」パラメータの設定に関係なく、添付ファイルは参照としてメッセージ・ヘッダーに渡されます。

IMAP移動先フォルダ

「読取り後のアクション」を「移動」に設定した場合のメッセージの宛先です。

このフィールドは、「読取り後のアクション」を「移動」に設定した場合にのみ構成する必要があります。

ダウンロード・ディレクトリ

これは必須パラメータです。メッセージをダウンロードするファイル・システム・ディレクトリのパスを指定します。

アーカイブ・ディレクトリ

これは必須パラメータです。ファイルURIは、ファイルをアーカイブするディレクトリを指します。このフィールドは、「読取り後のアクション」パラメータを「アーカイブ」に設定した場合にのみアクティブになります。

エラー・ディレクトリ

このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングはiso-8859-1です。


電子メール・サービスを構成する方法の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。

26.2.2 電子メール・トランスポートを使用するビジネス・サービスの構成

電子メール・トランスポートを使用するビジネス・サービスを構成するとき、次の形式で1つ以上のエンドポイントURIを指定できます。こうすることで、複数のドメインの複数の受信者に電子メール・メッセージを送信できます。

  • mailto:name@domain_name.com

  • mailto:name@domain_name.com?smtp=smtp_server_resource

  • mailto:name@domain_name.com?mailsession=jndi_mail_session

例:

  • mailto:user1@example1.com

  • mailto:user2@example2.com?smtp=exampleSMTP

  • mailto:user3@example3.com?mailsession=my.mail.Session

電子メール・トランスポート・ベースのプロキシ・サービスで構成できるパラメータを表26-5に示します。

表26-5 ビジネス・サービスの電子メール・トランスポートを構成するためのパラメータ

パラメータ 説明

SMTPサーバー

name@domain_name.comのエンドポイントURIエントリで使用するデフォルトのSMTPサーバーを選択します。エンドポイントURIにSMTPサーバーのパラメータを指定すると、それらのサーバー・リソースがこの「SMTPサーバー」設定のかわりに使用されます。

「メール・セッション」オプションを使用する場合はSMTPサーバーを選択しないでください。

最初にSMTPサーバー・リソースを作成する必要があります。詳細は、2.1.17項「SMTPサーバー・リソースの作成」を参照してください。

メール・セッション

name@domain_name.comのエンドポイントURIエントリで使用する構成済メール・セッションのJNDI名を入力します。エンドポイントURIにJNDIメール・セッションのパラメータを指定すると、この「メール・セッション」設定のかわりにそれらのメール・セッションが使用されます。

「SMTPサーバー」オプションを使用する場合は、メール・セッションを入力しないでください。

送信元の名前

まず、Oracle WebLogic Serverコンソールでメール・セッションを構成しておく必要があります。

送信元アドレス

Oracle WebLogic Server管理コンソールでメール・セッションを作成します。「メール・セッション」パラメータまたは「SMTPサーバー」パラメータを設定する必要があります。

返信先の名前

このパラメータは省略可能です。返信の送信元の名前を指定します。

返信先アドレス

このパラメータは省略可能です。電子メール・メッセージの送信元の電子メール・アドレスを指定します。

接続タイムアウト

このパラメータは省略可能です。このパラメータを使用して、SMTPサーバーへの接続がタイムアウトする時間をミリ秒単位で指定できます。

リクエストのエンコーディング

このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングはiso-8859-1です。


ビジネス・サービスの構成方法の詳細は、4.2項「ビジネス・サービスの構成」を参照してください。

26.3 ファイル・トランスポート

プロキシ・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、エンドポイントURIが次の形式の場合、ファイル・トランスポートプロトコルを選択できます。

file:///<root-dir/dir1>

ここで、root-dir/dir1は宛先ディレクトリへの絶対パスです。


注意:

ファイル・トランスポートでは、メッセージング・サービス・タイプのサービスの一方向のメッセージングのみをサポートしています。

ファイル・トランスポートを使用して、メッセージ・タイプのプロキシ・サービスまたはメッセージ・タイプのビジネス・サービスを作成する場合、「メッセージ・タイプ」構成ページでレスポンス・タイプを「なし」に設定する必要があります。


Oracle Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでファイル・トランスポート・ビジネス・サービスによって一時的にファイル名に「.a」が追加されます。

26.3.1 ファイル・トランスポートを使用するプロキシ・サービスの構成

プロキシ・サービスのファイル・トランスポートを構成する際に指定できるパラメータを表26-6に示します。

表26-6 プロキシ・サービスのファイル・トランスポートを構成するためのパラメータ

パラメータ 説明

ファイル・マスク

プロキシ・サービスがポーリングするファイルを指定します。URIがディレクトリの場合、*.*を指定すると、サービスによってそのディレクトリのすべてのファイルがポーリングされます。ファイル・マスクに指定できるワイルドカード文字は*および?のみです。正規表現はサポートされません。

ポーリング間隔

これは必須パラメータです。ポーリング間隔の値を秒単位で指定します。デフォルト値は60です。

読取り制限

これは必須パラメータです。各ポーリングで読み込むファイルの数を指定します。デフォルト値は10です。0を指定すると、すべてのファイルが読み込まれます。

到着順にソート

このパラメータは省略可能です。発生した一連のイベントをファイルの到着順に示します。デフォルト値はFalseです。

サブディレクトリのスキャン

省略可能です。このパラメータを有効にすると、サブディレクトリもスキャンされます。

参照渡し

このパラメータを有効にすると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。

読取り後のアクション

必須パラメータです。サービスでファイルを読み込んだ後に、削除またはアーカイブのどちらのアクションを実行するかを指定します。デフォルトでは、ファイルは読込み後に削除されます。

ステージ・ディレクトリ

これは必須パラメータです。このファイルURIは、ステージング・ディレクトリを指します。

注意: ステージ・ディレクトリをポーリング・ディレクトリ内に配置することはできません。

アーカイブ・ディレクトリ

これは必須パラメータです。ファイルURIは、ファイルをアーカイブするディレクトリを指します。このフィールドは、「読取り後のアクション」パラメータを「アーカイブ」に設定した場合にのみアクティブになります。

注意: アーカイブ・ディレクトリをポーリング・ディレクトリ内に配置することはできません。

エラー・ディレクトリ

これは必須パラメータです。このURIは、エラーが発生した場合にファイルの内容を格納するディレクトリを指します。

注意: エラー・ディレクトリをポーリング・ディレクトリ内に配置することはできません。

リクエストのエンコーディング

このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングはutf-8です。


ファイル・トランスポート・ベースのプロキシ・サービスの構成方法の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。

26.3.2 ファイル・トランスポートを使用するビジネス・サービスの構成

ファイル・トランスポートを使用してビジネス・サービスを構成する場合は、エンドポイントURIを次の形式で指定する必要があります。

file:///<root-dir/dir1>

ここで、root-dir/dir1は宛先ディレクトリへの絶対パスです。

プロキシ・サービスのファイル・トランスポートを構成する際に指定できるパラメータを表26-7に示します。

表26-7 ビジネス・サービスのファイル・トランスポートを構成するためのパラメータ

パラメータ 説明

接頭辞

このパラメータは省略可能です。ファイル名に付加する接頭辞を指定します。

接尾辞

このパラメータは省略可能です。ファイル名に付加する接尾辞を指定します。

リクエストのエンコーディング

このパラメータは省略可能です。メッセージを読み込む際のエンコーディングのタイプを指定します。使用されるデフォルトのエンコーディングはutf-8です。


このトランスポートを構成する方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。

26.4 FTPトランスポート

プロキシ・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、エンドポイントURIが次の形式の場合、FTP転送プロトコルを選択できます。

ftp://<hostname:port/directory>

説明:

Oracle Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでFTPトランスポート・ビジネス・サービスによって一時的にファイル名に「.a」が追加されます。

26.4.1 FTPトランスポートを使用するプロキシ・サービスの構成

プロキシ・サービスのFTPトランスポートを構成する際に指定できるパラメータを表26-8に示します。

表26-8 ビジネス・サービスのFTPトランスポートを構成するためのパラメータ

パラメータ 説明

ユーザー認証

ユーザー認証の次のいずれかのタイプを選択する必要があります。

  • 「匿名」 - 「匿名」を選択した場合、FTPサーバーへのログイン時にログイン資格証明を必要としません。ただし、必要に応じてIDとして電子メールIDを指定できます。

  • 「外部ユーザー」 - 「外部ユーザー」を選択した場合、FTPサーバーのユーザー名とパスワードが含まれたサービス・アカウント・リソースを参照する必要があります。

参照渡し

このパラメータは省略可能です。このパラメータを有効にすると、ファイルはアーカイブ・ディレクトリにステージングされ、ヘッダーに参照として渡されます。

リモート・ストリーミング

このパラメータは省略可能です。このパラメータをTrueに設定すると、処理時にFTPのファイルがリモート・サーバーから直接ポーリングされます。

ファイル・マスク

これは必須パラメータです。プロキシ・サービスがポーリングするファイルを指定します。URIがディレクトリの場合に*.*を指定すると、サービスはディレクトリ内のすべてのファイルをポーリングします。

ポーリング間隔

これは必須パラメータです。ポーリング間隔の値を秒単位で指定します。デフォルト値は60です。

読取り制限

これは必須パラメータです。各ポーリングで読み込むファイルの数を指定します。デフォルト値は10です。

読取り後のアクション

これは必須パラメータです。サービスでファイルを読み込んだ後に、削除またはアーカイブのどちらのアクションを実行するかを指定します。デフォルトでは、ファイルは読込み後に削除されます。

転送モード

ファイル・トランスポート・モードとして「バイナリ」または「ascii」のいずれかを指定します。デフォルトでは、トランスポートは「バイナリ」です。

アーカイブ・ディレクトリ

これは必須パラメータです。ファイルURIは、ファイルをアーカイブするディレクトリを指します。このフィールドは、「読取り後のアクション」パラメータを「アーカイブ」に設定した場合にのみアクティブになります。

ダウンロード・ディレクトリ

これは必須パラメータです。ファイル転送時にファイルがダウンロードされる、ローカル・マシンのディレクトリを入力します。

注意: アーカイブ・ディレクトリ、ダウンロード・ディレクトリ、およびエラー・ディレクトリは絶対パスであり、自動的に作成されます。相対パスを指定すると、ファイルはOracle WebLogic Serverを起動するJavaプロセスを基準にした相対的な位置に作成されます。

エラー・ディレクトリ

これは必須パラメータです。このURIは、エラーが発生した場合にファイルの内容を格納するディレクトリの場所を指します。

リクエストのエンコーディング

このパラメータは省略可能です。リクエスト・メッセージを読み込む際のエンコーディングのタイプを指定します。デフォルトのエンコーディングはutf-8です。

詳細設定

アイコンをクリックして、「詳細設定」セクションを展開します。このセクションのパラメータの構成は省略可能です。このセクションで設定できるパラメータは次のとおりです。

  • 「サブディレクトリのスキャン」 - このパラメータは省略可能です。このパラメータを有効にすると、サブディレクトリもスキャンされます。

  • 到着順にソート

  • タイムアウト

  • 再試行


ファイル・トランスポート・ベースのプロキシ・サービスの構成方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。

26.4.2 FTPトランスポートを使用するビジネス・サービスの構成

ビジネス・サービスのメッセージング・タイプまたは任意のXMLサービスを構成するときに、エンドポイントURIが次の形式の場合、FTP転送プロトコルを選択できます。

ftp://<hostname:port/directory>

説明:

  • hostnameは、宛先ディレクトリが格納されているホストの名前です。

  • portは、FTP接続を行うポート番号です。

  • directoryは、宛先ディレクトリです。

    ディレクトリはFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、FTPサービスでファイルをhome/my_ftp/documentsにコピーする場合には、作業ディレクトリがhome/my_ftp/であれば、URLはftp://example:21/documentsとなります。

ビジネス・サービスのFTPトランスポートを構成する際に指定する必要のあるパラメータを表26-9に示します。

表26-9 ビジネス・サービスのFTPトランスポートを構成するためのパラメータ

パラメータ 説明

ユーザー認証

ユーザー認証の次のいずれかのタイプを選択する必要があります。

  • 「匿名」 - 「匿名」を選択した場合、FTPサーバーへのログイン時にログイン資格証明を必要としません。ただし、必要に応じてIDとして電子メールIDを指定できます。

  • 「外部ユーザー」 - 「外部ユーザー」を選択した場合、FTPサーバーのユーザー名とパスワードが含まれたサービス・アカウント・リソースを参照する必要があります。

宛先ファイル名の接頭辞

トランスポートによってリモート・サーバー上のファイル名の先頭に付加される、省略可能な接頭辞を入力します。

このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。

宛先ファイル名の接尾辞

トランスポートによってリモート・サーバー上のファイル名の末尾に付加される、省略可能な接尾辞を入力します。

このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。

リクエストのエンコーディング

このパラメータは省略可能です。リクエスト・メッセージのエンコーディングを指定します。


このトランスポートを構成する方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。

26.5 SFTPトランスポート

SFTPトランスポートは、SSHバージョン2を使用したSFTP (SSHファイル・トランスポートプロトコル)経由でファイルを安全にトランスポートできるポーリング・ベースのトランスポートです。それは、定義済のポーリング間隔に基づいて指定されたディレクトリを定期的にポーリングします。認証後、Oracle Service BusサービスとSFTPサーバー間で接続が確立され、ファイル・トランスポートが可能になります。SFTPトランスポートでは、一方向のインバウンドおよびアウトバウンド接続をサポートしています。


注意:

SFTPトランスポートでは、マルチバイト文字セットのファイル名を正しく処理できないことがあります。


SFTPトランスポートの主要な機能は次のとおりです。

Oracle Service Busがリモートの場所にファイルを書き込む際に、プログラムがそのファイルにアクセスしないように、ファイルへの書込みが完了するまでSFTPトランスポート・ビジネス・サービスによって一時的にファイル名に「.a」が追加されます。

26.5.1 環境値

環境値は、構成データに含まれる定義済のフィールドです。この値は、ドメイン間で構成を移動するとき(テスト環境からプロダクション環境への移動など)に変更される可能性があります。SFTPトランスポートに関連付けられた環境値を次の表に示します。

表26-10 環境値

環境値 説明

アーカイブ・ディレクトリ

ダウンロード・ディレクトリまたはリモートの場所から移動されるファイルの移動先ディレクトリです。

ダウンロード・ディレクトリ

ファイル転送時にファイルがダウンロードされるローカル・マシンのディレクトリです。

エラー・ディレクトリ

問題が発生した場合にメッセージがポストされる場所です。

ポーリングの管理対象サーバー

(クラスタ・シナリオで)ポーリングに使用する管理対象サーバーです。


詳細については、以下を参照してください。

26.5.2 SFTP認証の一般原則

次の原則は、プロキシ・サービスとビジネス・サービスのSFTP認証プロセスに適用されます。

  • 接続: Oracle Service Busサービス(プロキシおよびビジネス)は、常にSFTPクライアントとして機能し、SFTPサーバーに接続します。

  • SFTPサーバーによる認証

    • 公開鍵認証およびホスト・ベース認証の場合、SFTPサーバーはOracle Service Busサービスの公開鍵を使用して接続を認証します。

    • ユーザー名/パスワード認証の場合、SFTPサーバーはユーザー名とパスワードを使用して接続を認証します。

  • SFTPクライアントによる認証: Oracle Service Busサービスは、常に、known_hostsファイルに定義された公開鍵/ホスト/IPの組合せを使用してSFTPサーバーを認証します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。

  • 接続の確立: サーバー認証とクライアント認証の両方に成功した場合にのみ接続が確立されます。

  • 転送

    • クライアントがプロキシ・サービスの場合、ファイル(メッセージ)はSFTPサーバーからダウンロードされます。

    • クライアントがビジネス・サービスの場合、ファイル(メッセージ)はSFTPサーバーにアップロードされます。

26.5.3 実行時の動作

SFTPトランスポートを使用したファイルのトランスポートには、次のステップが含まれます:

  1. プロキシ・サービスが入力ディレクトリを定期的にポーリングします。


    注意:

    ポーリング・サイクルごとに新しい接続が作成されます。


  2. プロキシ・サービスは、入力ディレクトリでファイルを見つけると、 .stage 拡張子の付いたファイル名に変更します。この名前変更により、サービスが次回のポーリング・サイクルで同じファイルを選択しないことが保証されます。

    .stageファイルは、配信されるまで入力ディレクトリ内に存在します。


    注意:

    (ネットワーク障害などが原因で)入力ディレクトリからファイルを取得できない場合、 .stage ファイルはクリーンアップ・サイクルで処理されます。クリーンアップ・サイクルは、15分ごとまたは15回のポーリング・サイクルの後に実行されます(いずれか後に発生した方が実行されます)。連続する2回のクリーンアップ・サイクルで .stage ファイルが存在する場合、ファイルは再度処理されます。


  3. メッセージのJMSタスクが作成され、ドメイン全体のJMSキューに追加されます。

  4. ドメイン全体のMDBがタスクを受け取り、メッセージを処理します。


    注意:

    このタスクでは、メッセージを処理する際にプールされた接続を使用します。プールの接続を使用できない場合は、新しい接続が作成されます。


  5. メッセージがパイプラインに配信され、 .stage ファイルが削除されます。


    注意:

    SFTPビジネス・サービスを構成している場合、サービスはプールされた接続を使用して、メッセージをアウトバウンド・ディレクトリに配置します。


メッセージが配信されていない場合は、再度メッセージの転送が試行され、定義済の試行回数に達するまでプロセスが繰り返されます。メッセージを配信できない場合、メッセージはエラー・ディレクトリに移動されます。

26.5.4 SFTPトランスポートの使用

SFTPトランスポートを使用すると、SSHファイル・トランスポートプロトコル(SFTP)を使用してファイルを安全にトランスポートできます。

以下の項では、SFTPトランスポートを使用してファイルを安全に転送する方法について説明します。

26.5.4.1 SFTP認証の有効化

SFTPトランスポートでは、以下の認証方式をサポートしています。

  • ユーザー名/パスワード認証

  • ホスト・ベース認証

  • 公開鍵認証

Oracle Service Busサービスは、known_hostsファイルに定義されたサーバーの詳細に基づいてSFTPサーバーを認証します。そのため、サーバー認証を有効にするには、クライアント・マシンでknown_hostsファイルを作成する必要があります。

26.5.4.1.1 既知ホスト・ファイルの作成

known_hostsファイルは、Oracle Service Busプロキシ・サービス(インバウンド・リクエスト)またはビジネス・サービス(アウトバウンド・リクエスト)が実行されているサーバーに存在する必要があります。このファイルには、プロキシ・サービスまたはビジネス・サービスの接続先となるリモートSFTPサーバーのホスト名、IPアドレスおよび公開鍵が含まれている必要があります。

  1. known_hostsファイルを作成し、次の形式で詳細情報を入力します。

    Hostname,IP algorithm publickey

    • Hostnameは、SFTPサーバーのホスト名です。

    • IPは、SFTPサーバーのIPアドレスです。

      IPv6アドレスを使用する場合は、複数の0を表すために2つのコロンを使用しないでください。すべての0を指定します。たとえば、「::」という形式ではなく「:0:0:0:」を使用します。

    • algorithmには、SFTPサーバーの構成に基づいて、DSAまたはRSAのいずれかを指定できます。サポートされているアルゴリズムに応じて、ssh-rsaまたはssh-dssと入力します。

    • publickeyは、SFTPサーバーの公開鍵です。公開鍵は、Open SSH公開鍵形式であることが必要です。

    getafix,172.22.52.130 ssh-rsa
    
    AAAAB3NzaC1yc2EAAAABIwAAAIEAtR+M3Z9HFxnKZTx66fZdnQqAHQcF1vQe1+EjJ/HWYtg
    
    Anqsn0hMJzqWMatb/u9yFwUpZBirjm3g2I9Qd8VocmeHwoGPhDGfQ5LQ/PPo3esE+CGwdnC
    
    OyRCktNHeuKxo4kiCCJ/bph5dRpghCQIvsQvRE3sks+XwQ7Wuswz8pv58=
    

    known_hostsファイルには、複数のエントリを含めることができますが、各エントリはそれぞれ別の行に入力する必要があります。

  2. known_hostsファイルをDOMAIN_HOME/config/osb/transports/sftpディレクトリに移動します。

    /transports/sftpディレクトリは、自動的に作成されるわけではありません。このディレクトリを作成する必要があります。

26.5.4.1.2 ユーザー名/パスワード認証の有効化

ユーザー名/パスワード認証は、最も簡単で手早い認証方式です。この認証方式は、ユーザーの資格証明に基づいています。

サービスのユーザー名/パスワード認証を有効にするには:

  1. SFTPサーバーのユーザー資格証明を使用して静的サービス・アカウントを作成します。詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。

  2. known_hostsファイルを作成します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。

26.5.4.1.3 ホスト・ベース認証の有効化

ホスト・ベース認証では、プライベート・ホスト・キーを使用します。この方式は、すべてのユーザーが同じプライベート・ホストを共有している場合に使用できます。

サービスのホスト・ベース認証を有効にするには:

  1. SSLクライアント認証キーでサービス・キー・プロバイダを構成します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。


    注意:

    公開鍵は、サービス・キー・プロバイダの作成時に使用したキーストアから抽出できます。公開鍵は、Open SSH形式であることが必要です。


  2. known_hostsファイルを作成します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。

  3. SFTPサーバーのクライアントであるOracle Service Busからのリクエストを受け入れるようにSFTPサーバーを構成します。

    たとえば、LinuxのSFTPサーバーの場合、次の手順を実行する必要があります。

    • /etc/ssh/shosts.equivファイルを編集し、Oracle Service Busドメインを実行しているマシンのホスト名またはIPアドレスを追加します。

    • /etc/ssh/ssh_known_hostsファイルを編集して、Oracle Service Busドメインを実行しているマシンのホスト名またはIPアドレスを追加し、その後にスペースを入力して公開鍵を追加します。


      注意:

      ホストベース認証では、Open SSHがクライアント提供のホスト名と、クライアントIPアドレスのリバース・ルックアップを比較します。リクエストが複数ホーム・マシンから送られるシナリオ、またはNATゲートウェイを介して送られるシナリオでは、ホスト名は一致しない場合があり、認証が失敗します。このようなシナリオを回避するには、/etc/ssh/sshd_configのHostbasedUsesNameFromPacketOnlyオプションをyesに設定することで、DNSチェックをオフにします。この回避方法はセキュリティを損ないません。実際のセキュリティは、known_hostsファイルとSFTPサーバーの公開鍵の照合によって行われるためです。


26.5.4.1.4 公開鍵認証の有効化

公開鍵認証は、ユーザー独自の秘密鍵を使用して実行されます。この方式は、各ユーザーが秘密鍵を持っている場合に使用できます。

公開鍵認証を有効にするには:

  1. SSLクライアント認証キーでサービス・キー・プロバイダを構成します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。

  2. Oracle Service Bus (SFTPクライアント)からのリクエストを受け入れるようにSFTPサーバーを構成します。

    たとえば、LinuxのSFTPサーバーの場合、キーストアから公開鍵を抽出し、このキーをSFTPサーバーの $HOME/.ssh/authorized_keys ファイルに入力する必要があります。このパスとファイルが存在することを確認してください。

  3. known_hostsファイルを作成します。詳細は、26.5.4.1.1項「既知ホスト・ファイルの作成」を参照してください。

26.5.4.2 プロキシ・サービスの構成

Oracle Service Bus管理コンソールの「トランスポート構成」ページでプロキシ・サービスを作成する場合、sftpの転送プロトコルを選択し、次の形式でエンドポイント構成を指定する必要があります。

sftp://hostname:port/directory

エンドポイントURIの各部分の説明は次のとおりです。

  • hostnameは、SFTPサーバーのホスト名またはIPアドレスです。

  • portは、SFTPサーバーがリスニングしているポートです。SFTPのデフォルト・ポートは22です。

  • directoryは、定期的にファイルについてポーリングされる場所です。

    ディレクトリはSFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、SFTPサービスでファイルをhome/my_sftp/documentsにコピーする場合には、作業ディレクトリがhome/my_sftp/であれば、URLはsftp://example:21/documentsとなります。


    注意:

    SFTPトランスポートでは、メッセージとXMLサービス・タイプのみがサポートされるため、Oracle Service Bus管理コンソールの「全般的な構成」ページで、サービス・タイプとして「メッセージ・サービス」または「任意のXMLサービス」を選択する必要があります。

    サービス・タイプとして 「メッセージング・サービス」 を選択した場合、以下を実行する必要があります。

    • リクエスト・メッセージの種類として、「バイナリ」「テキスト」「MFL」または「XML」を指定する必要があります。

    • SFTPトランスポートがサポートしているのは一方向のメッセージのみであるため、レスポンス・メッセージの種類を「なし」に設定する必要があります。

    詳細は、2.3項「プロキシ・サービスの操作」を参照してください。


次の表の説明に従って、プロキシ・サービスを構成します。

表26-11 SFTPプロキシ・サービスの構成

フィールド 説明

ユーザー認証

プロキシ・サービスは、指定されたユーザー認証方式に基づいてSFTPサーバーによって認証されます。

必要な認証方式を選択します。

  • 「ユーザー名パスワード」認証: 静的サービス・アカウントをこの認証方式に関連付け、サービス・アカウントで提供される資格証明を使用してクライアントを認証します。

  • 「ホスト・ベース」認証: ユーザー名とサービス・キー・プロバイダが必要です。既知のホストから接続するユーザーは、ホストの秘密鍵を使用して認証されます。

  • 「公開鍵」認証: ユーザー名とサービス・キー・プロバイダが必要です。ユーザーは、独自の秘密鍵を持ちます。

サービス・アカウント

ユーザーのサービス・アカウントを入力するか、「参照」をクリックしてサービス・アカウントを選択します。サービス・アカウントの使用方法の詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。

サービス・キー・プロバイダ

このフィールドは、公開鍵認証方式とホスト・ベース認証方式にのみ使用できます。

サービス・キー・プロバイダを入力するか、「参照」をクリックしてサービス・キー・プロバイダを選択します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。

ユーザー名

この値は、ホスト・ベース認証方式または公開鍵認証方式を選択した場合にのみ必要です。

  • ホスト・ベース認証では、SFTPサーバー上のユーザーのホーム・ディレクトリをポーリングするためにユーザー名が必要となります。

  • 公開鍵認証では、ユーザーのホーム・ディレクトリのポーリングとSFTPサーバー上の公開鍵の場所の識別にユーザー名が必要となります。

ユーザー名を入力します。

参照渡し

このオプションを選択すると、ファイルはアーカイブ・ディレクトリにステージングされ、参照としてヘッダーに渡されます。

注意: このオプションは、リモート・ストリーミングが無効になっている場合にのみ使用できます。

リモート・ストリーミング

このオプションを選択すると、処理時にSFTPのファイルがリモート・サーバーから直接ストリームされます。このオプションを選択した場合、SFTPサーバー・マシンのリモート・ディレクトリがアーカイブ・ディレクトリになります。そのため、SFTPユーザー・ディレクトリからの相対パスでアーカイブ・ディレクトリを指定する必要があります。

ファイル・マスク

特定のタイプのファイルを転送する場合は、ファイル・マスクを使用できます。

正規表現を入力して、ディレクトリから取り出すファイルを選択します。デフォルト値は*.*です。

ポーリング間隔

ポーリング間隔は、入力ディレクトリをポーリングする頻度です。ポーリングでは、SFTP接続を作成する必要があります。

指定した場所からファイルをポーリングする間隔を秒単位で入力します。デフォルト値は60です。

注意: 間隔が短いとディレクトリが頻繁にポーリングされるため、短いポーリング間隔を設定しないようにしてください。

読取り制限

ポーリング・ディレクトリに多数のファイルが存在する場合は、このフィールドで適切な値を選択することにより同時転送の数を制限できます。

制限を指定しない場合は、0(ゼロ)を入力します。デフォルト値は10です。

注意: SFTPサーバーで同時接続数が制限されている場合があります。定義した読取り制限がサーバーで定義されている制限よりも少ないことを確認してください。

読取り後のアクション

ファイル転送後にメッセージで実行する必要のあるアクションを選択します。

  • 「アーカイブ」: メッセージは指定されたアーカイブ・ディレクトリにアーカイブされます。

  • 「削除」: メッセージが削除されます。

アーカイブ・ディレクトリ

「読取り後のアクション」「アーカイブ」に設定されている場合、ファイルは転送後に(ダウンロード・ディレクトリまたはリモートの場所から)アーカイブ・ディレクトリに移動します。

「参照渡し」オプションを選択した場合は、アーカイブ・ディレクトリを指定する必要があります。

リモート・ストリーミングが有効になっている場合、アーカイブ・ディレクトリはSFTPサーバーのディレクトリになります。リモート・ストリーミングが無効になっている場合は、Oracle Service Busマシン上のアーカイブ・ディレクトリを使用できます。

アーカイブ・ディレクトリの絶対パスを指定します。

注意: このディレクトリが存在しない場合は、自動的に作成されます。相対パスを指定すると、ディレクトリはOracle WebLogic Serverを起動するJavaプロセスからの相対パスに作成されます。

ダウンロード・ディレクトリ

ファイル転送時に、ファイルはこのディレクトリにダウンロードされます。

リモート・ストリーミングが有効になっている場合、このオプションは無効になります。

ファイル転送時にファイルをダウンロードするローカル・マシンのディレクトリの絶対パスを指定します。

注意: このディレクトリが存在しない場合は、自動的に作成されます。相対パスを指定すると、ディレクトリはOracle WebLogic Serverを起動するJavaプロセスからの相対パスに作成されます。

エラー・ディレクトリ

ファイル転送時に問題が発生した場合、メッセージはエラー・ディレクトリにポストされます。

リモート・ストリーミングが有効になっている場合、エラー・ディレクトリはSFTPサーバーのディレクトリになります。リモート・ストリーミングが無効になっている場合は、Oracle Service Busマシン上のエラー・ディレクトリを使用できます。

エラー・ディレクトリの絶対パスを指定します。

注意: このディレクトリが存在しない場合は、自動的に作成されます。相対パスを指定すると、ディレクトリはOracle WebLogic Serverを起動するJavaプロセスからの相対パスに作成されます。

リクエストのエンコーディング

SFTPトランスポートでのリクエストの文字セット・エンコーディングとしてデフォルト値(UTF-8)を受け入れます。

サブディレクトリのスキャン

エンドポイントURIで指定されたディレクトリ内のすべてのサブディレクトリを再帰的にスキャンする場合は、このオプションを選択します。

注意: サブディレクトリをスキャンする場合、追加の処理オーバーヘッドが必要となります。そのため、このオプションは慎重に使用してください。

到着順にソート

このオプションを選択すると、イベントは到着順に配信されます。これにより、メッセージ配信がランダムに行われるのではなく、ファイルが宛先ディレクトリにダウンロードされた時間に基づいて行われるようになります。

タイムアウト

ソケット・タイムアウト間隔を秒単位で入力します。この時間が経過すると、接続を切断する必要があります。接続をタイムアウトしない場合は、0を入力します。デフォルト値は60です。

再試行回数

この設定を使用すると、ネットワーク障害などのエラーの発生時に、複数回の試行が可能になります。

SFTP接続に失敗した場合の再試行回数を指定します。デフォルト値は3です。


SFTPトランスポートを使用するプロキシ・サービスの構成方法の詳細は、2.3項「プロキシ・サービスの操作」を参照してください。

26.5.4.2.1 トランスポート・ヘッダーとメタデータの構成

プロキシ・サービスを構成するときに、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定できます。SFTPトランスポートに関連するトランスポート・ヘッダーとメタデータを次の表に示します。

表26-12 トランスポート・ヘッダーとメタデータ

ヘッダー/メタデータ 説明

FileName

この値は、宛先ディレクトリでファイル名として使用されます。

isFilePath

メタデータ・フィールドです。指定可能な値はtrueとfalseです。

  • True: FileName がファイルの絶対パスとして解釈されます。

  • False: FileName がファイルの名前として解釈されます。

filePath

レスポンス・メタデータ・フィールドです。 FileName ヘッダーで指定したファイルが書き込まれる絶対パスを示します。


Oracle Service Busメッセージ・フローでのトランスポート・ヘッダーの構成

構成できるのは、Oracle Service Busメッセージ・フローにおけるアウトバウンド・リクエストのトランスポート・ヘッダーのみです。パイプラインで、トランスポート・ヘッダー・アクションを使用してメッセージのヘッダー値を設定します。詳細は、2.4.32項「メッセージ・フローへのトランスポート・ヘッダー・アクションの追加と構成」を参照してください。

テスト・コンソールでのトランスポート・ヘッダーとメタデータの構成

開発時にSFTPトランスポートベースのサービスをテストする場合、Oracle Service Busテスト・コンソールでFileNameトランスポート・ヘッダーとisFilePathメタデータの値を構成できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のテスト・コンソールの使用に関する項を参照してください。

26.5.4.3 ビジネス・サービスの構成

Oracle Service Bus管理コンソールの「トランスポート構成」ページでビジネス・サービスを作成する場合、sftpの転送プロトコルを選択し、次の形式でエンドポイントURI (サービスの場所)を指定する必要があります。

sftp://hostname:port/directory

エンドポイントURIの各部分の説明は次のとおりです。

  • hostnameは、SFTPサーバーのホスト名またはIPアドレスです。

  • portは、SFTPサーバーがリスニングしているポートです。SFTPのデフォルト・ポートは22です。

  • directoryは、アウトバウンド・メッセージが格納される(書き込まれる)場所です。

    ディレクトリはSFTPセッションの作業ディレクトリを基準として相対的に指定します。たとえば、SFTPサービスでファイルをhome/my_sftp/documentsにコピーする場合には、作業ディレクトリがhome/my_sftp/であれば、URLはsftp://example:21/documentsとなります。


    注意:

    SFTPトランスポートでは、メッセージとXMLサービス・タイプのみがサポートされるため、Oracle Service Bus管理コンソールの「全般的な構成」ページで、サービス・タイプとして「メッセージ・サービス」または「任意のXMLサービス」を選択する必要があります。

    サービス・タイプとして 「メッセージング・サービス」 を選択した場合、以下を実行する必要があります。

    • リクエスト・メッセージの種類として、「バイナリ」「テキスト」「MFL」または「XML」を指定する必要があります。

    • SFTPトランスポートがサポートしているのは一方向のメッセージのみであるため、レスポンス・メッセージの種類を「なし」に設定する必要があります。

    詳細は、2.2項「ビジネス・サービスの操作」を参照してください。


次の表の説明に従って、ビジネス・サービスを構成します。

表26-13 SFTPビジネス・サービスの構成

フィールド 説明

ユーザー認証

プロキシ・サービスは、指定されたユーザー認証方式に基づいてSFTPサーバーによって認証されます。

必要な認証方式を選択します。

  • 「ユーザー名パスワード」認証: 静的サービス・アカウントをこの認証方式に関連付け、サービス・アカウントで提供される資格証明を使用してクライアントを認証します。

  • 「ホスト・ベース」認証: ユーザー名とサービス・キー・プロバイダが必要です。既知のホストから接続するユーザーは、ホストの秘密鍵を使用して認証されます。

  • 「公開鍵」認証: ユーザー名とサービス・キー・プロバイダが必要です。ユーザーは、独自の秘密鍵を持ちます。

サービス・アカウント

ユーザーのサービス・アカウントを入力するか、「参照」をクリックしてサービス・アカウントを選択します。サービス・アカウントの使用方法の詳細は、2.1.15項「サービス・アカウント・リソースの作成」を参照してください。

サービス・キー・プロバイダ

このフィールドは、公開鍵認証方式とホスト・ベース認証方式にのみ使用できます。

サービス・キー・プロバイダを入力するか、「参照」をクリックしてサービス・キー・プロバイダを選択します。詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。

ユーザー名

この値は、ホスト・ベース認証方式または公開鍵認証方式を選択した場合にのみ必要です。

  • ホスト・ベース認証では、SFTPサーバー上のユーザーのホーム・ディレクトリをポーリングするためにユーザー名が必要となります。

  • 公開鍵認証では、ユーザーのホーム・ディレクトリのポーリングとSFTPサーバー上の公開鍵の場所の識別にユーザー名が必要となります。

ユーザー名を入力します。

タイムアウト

ソケット・タイムアウト間隔を秒単位で入力します。この時間が経過すると、接続を切断する必要があります。接続をタイムアウトしない場合は、0を入力します。デフォルト値は60です。

宛先ファイル名の接頭辞

トランスポートによってリモート・サーバー上のファイル名の先頭に付加される、省略可能な接頭辞を入力します。

このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。

宛先ファイル名の接尾辞

トランスポートによってリモート・サーバー上のファイル名の末尾に付加される、省略可能な接尾辞を入力します。

このフィールドには「*」を入力できません。この文字を入力すると、実行時例外が発生します。

リクエストのエンコーディング

SFTPトランスポートでのリクエストの文字セット・エンコーディングとしてデフォルト値(UTF-8)を受け入れます。


SFTPトランスポートを使用するビジネス・サービスの構成方法の詳細は、2.2項「ビジネス・サービスの操作」を参照してください。

26.5.4.4 通信エラーの処理

リモートSFTPサーバーへの接続時に接続またはユーザー認証に失敗した場合に発生する可能性のある通信エラーを処理するように、SFTPトランスポート・ベースのビジネス・サービスを構成できます。ビジネス・サービスを構成するときに、指定した再試行間隔の後、ビジネス・サービスのエンドポイントURIがオフラインになるように設定できます。

詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「モニタリング」の次のトピックを参照してください:

  • ビジネス・サービスの操作設定の構成に関する項

  • ビジネス・サービスのエンドポイントURIのメトリックの表示に関する項

26.5.4.5 トラブルシューティング

ほとんどのエラーは、SFTPプロキシ・サービスまたはビジネス・サービスの構成中に発生します。エラーについて理解し、エラーを解決する上で役立つヒントを以下に示します。

  • known_hostsファイルを適切に構成していることを確認します。

  • 公開鍵認証では、公開鍵ファイルをサーバーに格納する必要があります。詳細については、SFTPサーバー付属のドキュメントを参照してください。

  • 接続は拒否されましたというエラー・メッセージは、構成済のホストとポートでSFTPサーバーを使用できないことを示します。

  • 「認証が失敗しました。」というエラー・メッセージは、ユーザー名とパスワードが無効であること、または公開鍵が正しく構成されていないことを示します。

  • 接続が正常に完了しませんでしたというエラー・メッセージは、接続エラーの原因となった実際のエラー(キーが見つかりませんなど)が表示された後に表示されます。

  • IP、ホストのキーが見つかりませんというエラー・メッセージは、指定されたIPとホストの組合せに対応するエントリがknown_hostsファイルに含まれていないことを示します。エントリが存在する場合は、別のアルゴリズムのキーを使用して試行されます。たとえば、以前の試行でRSAキーが使用された場合は、DSAキーを使用して再試行されます。

26.5.4.6 リソースのインポート

Oracle Service Busドメインに存在するリソースをインポートする場合、「セキュリティおよびポリシーの構成を保持」オプションを選択することで、そのリソースの既存のセキュリティおよびポリシーの構成の詳細を保持できます。リソースのインポート時に保持されるSFTPサービス固有の詳細は次のとおりです。

  • クライアント認証方式

  • ユーザー名/パスワード認証に関連付けられたサービスのサービス・アカウントへの参照

  • ホスト・ベース認証または公開鍵認証に関連付けられたサービスのサービス・キー・プロバイダへの参照

  • ホスト・ベース認証または公開鍵認証に関連付けられたサービスのユーザー名

Oracle Service Bus管理コンソールからのリソースのインポートの詳細は、2.1.14項「リソースのインポート」を参照してください。

26.5.4.7 サービスのインポートとパブリッシュ: UDDIレジストリ

SFTPサービスをUDDIレジストリにパブリッシュすると、「認証モード」「リクエストのエンコーディング」「到着順にソート」および「ファイル・マスク」の各プロパティがパブリッシュされます。

SFTPサービスをUDDIレジストリからインポートしたときに、レジストリからインポートされるプロパティを表26-14に示します。

表26-14 UDDIレジストリからインポートされるプロパティ

プロパティ 説明

宛先ファイル名の接頭辞

リモート・サーバーに格納されるファイルの名前に使用する接頭辞です。

デフォルト値は" "(null)です。

宛先ファイル名の接尾辞

リモート・サーバーに格納されるファイルの名前に使用する接尾辞です。

デフォルト値は" "(null)です。

認証モード

レジストリからインポートされる認証方式です。

ユーザー認証を使用するSFTPビジネス・サービスをUDDIレジストリからOracle Service Busにインポートすると、競合が発生します。

  • ユーザー名/パスワード認証の場合は、サービス・アカウントを作成し、サービスに関連付ける必要があります。

  • ホスト・ベース認証または公開鍵認証の場合は、サービス・キー・プロバイダを作成し、サービスに関連付ける必要があります。


サービスのインポート後のロード・バランシング・アルゴリズムのデフォルト値はround-robinです。

詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「UDDI」を参照してください。