2 「SOAPアダプタ」概念
次のセクションでは、「SOAPアダプタ」の機能について詳しく説明します。
トピック:
SOAP仕様
次の仕様がサポートされています:
-
SOAP 1.2
-
WS-Iセキュリティ(SSL、TLSおよび暗号用)
-
MTOMに対するSOAP 1.1のバインディング
-
WS-Addressing
-
WS-Securityユーザー名トークン
トランスポート・レイヤー・セキュリティ・バージョンのサポート
ターゲット・サーバーのトランスポート・レイヤー・セキュリティ(TLS)バージョンを指定できます。 TLSプロトコルにより、通信する2つのコンピュータ・アプリケーション間でプライバシとデータ統合が実現します。 「接続プロパティの構成」を参照してください。
WS-Securityヘッダーにおけるタイムスタンプのバージョンの抑制
WS-Securityヘッダーでタイムスタンプのバージョンを抑制できます。 抑制は、ユーザー名パスワード・トークン・セキュリティ・ポリシーに呼出し(アウトバウンド)方向で適用されます。 セキュアなWebサービス・トランザクションで、WS-Utility (WSU)タイムスタンプをWS-Securityヘッダーに挿入し、そのタイムスタンプが配置されたメッセージの存続期間を定義できます。 「接続プロパティの構成」を参照してください。
タイムスタンプがレスポンス・メッセージに不要かどうかを指定する機能
タイムスタンプがレスポンス・メッセージに不要かどうかを指定できます。 「接続プロパティの構成」を参照してください。
インバウンド・リクエストでのSOAPアクションの検証の無効化
アダプタ・エンドポイントの構成ウィザードの「Operations」ページで、インバウンド・リクエストに対するSOAPアクションの検証を無効化できます。 これは、WSDLにカスタム・コードが含まれ、検証を省略する環境に使用すると便利です。 「起動操作」ページと「構成されたSOAPアクションの不一致エラーでコールバックの統合が失敗」を参照してください。
呼出し(アウトバウンド)方向での非同期コールバック・レスポンスのサポート
呼出し(アウトバウンド)方向での非同期コールバック・レスポンスがサポートされます。 この機能は、接続で使用されるWSDLが、選択したサービス/ポートで一方向操作を定義している場合に有効になります。 コールバック・レスポンス・エンドポイントは、異なる統合フローを使用して指定されている必要があります。 コールバック・エンドポイントは、トリガー側の「SOAPアダプタ」でサポートされている任意のポリシーで保護できます。
-
No Response: 一方向呼出し。
-
Delayed Response: コールバック・ポート・タイプ、操作、コールバック・フロー識別子およびバージョンを指定します。
コールバック・フロー識別子およびバージョンは、コールバック・エンドポイントを決定するために使用され、リクエストをアウトバウンド・エンドポイントに送信するときにReplyToヘッダーで送信されます。
標準およびカスタムのSOAPヘッダーとHTTPヘッダーを追加するためのサポート
アウトバウンド・リクエストとインバウンド・リクエストに標準およびカスタムのSOAPヘッダーとHTTPヘッダーを追加し、ヘッダー付きレスポンスを処理してユーザーに伝播して戻すことができます。 この構成を使用して、インバウンド・サービス用のヘッダー構成とアウトバウンド・サービス用のヘッダーの伝播が可能になります。 WS-Addressingヘッダーの伝播(MessageID、ReplyTo、FaultToなど)はサポートされていません。 すべてのヘッダー情報と本文要素は単一の要素の下にカプセル化されるため、マッパーにリクエストおよびレスポンスの情報を表示できます。 「SOAPアダプタ接続の統合への追加」を参照してください。
ドキュメント・スタイルWSDLにおける複数パート・メッセージのサポート
ノート:
「SOAPアダプタ」では、RPC形式のWSDLバインディングはサポートされていません。 ドキュメント形式のWSDLバインドのみサポートされます。-
ドキュメント・スタイルWSDLにおける複数パート・メッセージがサポートされています。 このサポートはインバウンドおよびアウトバウンドの両方のアダプタ構成に提供されています。
WSDLでは次の2つの方法で標準SOAPヘッダーを定義できます。
-
暗黙的ヘッダー:
このタイプを使用すると、リクエスト・ヘッダーおよび本文パートは、異なるメッセージ・タイプに含まれます。 WSDLのバインディング・セクションで、ヘッダーはメッセージ・タイプ内のパート名とメッセージ・タイプ名を使用します。 本文には明示的に定義されているパート名がありません。
<wsdl:message name="CreateUserRequestHeader"> <wsdl:part name="requestHeader" element=" tns:UserCreate"/> </wsdl:message> <wsdl:message name="CreateUserRequest"> <wsdl:part element="tns:UserCreateHeader" name="parameters"/> </wsdl:message> <wsdl:binding name="UserBinding" type="tns:UserEndPoint"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="CreateUser"> <soap:operation soapAction="http://example.com/CreateUser" /> <wsdl:input> <soap:body use="literal" /> <soap:header use="literal" part="requestHeader" message="tns:CreateUserRequestHeader"/> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:binding/> -
明示的ヘッダー:
このタイプでは、WSDLの1つのメッセージ・タイプに複数のパートが含まれます。1つはヘッダー用で、もう1つは本文ペイロード用です。 ヘッダーはそのパート名で指定されます。 本文では独自の名前が使用されます。
<wsdl:message name="CreateUserRequest"> <wsdl:part element="tns:UserCreateHeader" name="parameters"/> <wsdl:part name="requestHeader" element=" tns:UserCreate"/> </wsdl:message> <wsdl:binding name="UserBinding" type="tns:UserEndPoint"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="CreateUser"> <soap:operation soapAction="http://example.com/CreateUser" /> <wsdl:input> <soap:body use="literal" /> <soap:header use="literal" part="requestHeader" message="tns:CreateUserRequest"/> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:binding/>ノート:
ヘッダーを指定せずに、ドキュメント・スタイルWSDL内に複数のパートを含めることはできません。
アダプタ・エンドポイント構成ウィザードを起動して「SOAPアダプタ」をトリガーまたは起動として構成すると、Operationsページでは、WSDLに定義済のSOAPリクエスト・ヘッダーまたはレスポンス・ヘッダー(あるいはその両方)が含まれていることが検出され、エンドポイントのSOAPヘッダーを構成するボタンが自動的に有効になります。 エンドポイントのヘッダーを削除するには、「No」を選択します。 これらのヘッダーは変更できません。 WSDLの以降の「Request Header」ページと「Response Header」ページには、WSDLで定義された特定のヘッダーが読み込まれて表示されます。 「SOAPアダプタ接続の統合への追加」を参照してください。
-
アウトバウンド接続での双方向SSLのサポート
アウトバウンド通信に双方向SSLを使用できます。 この機能を使用すると、統合で双方向のSSL対応サーバーでホストされているwebサービスを起動し、レスポンスを返信できます。
この機能を使用するには、次の要件を満たしている必要があります。
-
Oracle Integrationの「証明書をアップロード」ダイアログで、次の証明書をアップロードします。 「SSL証明書のアップロード」を参照してください。
-
双方向SSLのアイデンティティ証明書タイプをアップロードします。 この証明書は、双方向SSLを有効にする必要があるクライアント・サーバーから作成します。
-
アウトバウンド呼出しの信頼証明書タイプをアップロードします。 これは、Webサービスをホストするクライアント・サーバー用の証明書です。
-
-
「Connection Properties」ダイアログで、セキュアHTTP (
https)を使用してWSDL URLを指定します。 このWSDLでは、双方向SSL対応サーバーでホストされているwebサービスURLを使用する必要があります。 -
双方向SSLは、「SOAPアダプタ」のJCAトランスポート・メカニズムでのみサポートされます。 「SOAPアダプタ」のHTTPトランスポート・メカニズムはサポートされていません。
-
双方向SSL通信用のWebサービスをホストするサーバーを構成します。
-
「SOAPアダプタ」をトリガーと起動の両方として構成します。 統合を作成する場合、トリガーと起動の両方としてこの同じ「SOAPアダプタ」接続を構成します。
トリガー(インバウンド)方向のSAMLポリシー・セキュリティ・サポート
セキュリティ・アサーション・マークアップ言語(SAML)は、一般にidプロバイダとサービス・プロバイダの2つの異なるシステム間で認可および認証情報を交換するための、XMLベースのオープン標準データ形式です。 「SOAPアダプタ」トリガー固有の接続は、SAMLトークン・ベースの認証を使用してインバウンドSOAPエンドポイントを保護するように構成できます。 この構成は、Fusionオーダー管理(FOM)などの任意のOracle ERP Cloudアプリケーションで、ファイルベースのデータ・インポート(FBDI)ジョブの完了時、および非同期操作の完了時に、Oracle ERP Cloudからコールバック・メッセージを受信する必要があるユース・ケースを実装するために使用できます。 ただし、SAMLベアラー・トークン認証をサポートするクライアントは、このポリシーを使用できます。
トリガー(インバウンド)方向のOAuth 2.0ポリシー・セキュリティ・サポート
「SOAPアダプタ」をトリガー接続として使用してSOAPエンドポイントを公開する統合は、OAuth 2.0で保護できます。 OAuth 2.0は、認可用の業界標準プロトコルです。 OAuth 2.0では、webアプリケーションに特定の認可フローを提供する場合のクライアント開発者の簡易性に重点を置いています。
オーケストレートされた統合における非同期トリガーのサポート
非同期サービスに対してコールが行われると、レスポンスは後で、場合によっては別のエンドポイントに対して予想されます。 レスポンスが別のエンドポイントで想定される場合は、WS-Addressing ReplyToヘッダーを使用して、リクエスト中にエンドポイント情報を非同期サービスに渡す必要があります。 この場合、「SOAPアダプタ」が(トリガー)インバウンド接続として構成されているOracle Integrationエンドポイントは、非同期サービスとして機能します。 Oracle Integrationは、選択した操作が非同期であるかどうかを判断し、ReplyTo標準ヘッダーを通じてコールバック・エンドポイントの詳細を提供し、この情報を使用してコールバック・レスポンスを起動することができます。
-
この機能は、「SOAPアダプタ」がオーケストレートされた統合に含まれている場合にのみ使用できます。
-
非同期サービスは、「SOAPアダプタ」でサポートされているOWSMポリシーのみを使用します。 ReplyToヘッダーで指定されているコールバック・エンドポイントは、起動のみのロールに対して接続ページで使用可能なセキュリティ・ポリシーのいずれかをサポートする必要があります。
-
対応するコールバック呼出しは、非同期レスポンスに対してトリガーが構成されるときにも構成する必要があります。
-
リクエスト・ペイロードには、非同期レスポンスを送信するエンドポイントの値を含むReply-Toヘッダーが含まれます。
トリガー方向では、アダプタ・エンドポイント構成ウィザードを次のように構成する必要があります:
-
コールバック操作ページでは、コールバック・レスポンスが必要なため、「遅延レスポンス」を選択します。
-
ヘッダー・ページでは、「このエンドポイントのヘッダーを構成しますか」オプションが自動的に有効になります。 「SOAPヘッダー」オプションは「リクエスト・ヘッダー」セクションで自動的に選択され、変更できません。
-
「リクエスト・ヘッダー」ページでは、WS-Addressingの
ReplyTo、MessageIDおよびActionヘッダーが「標準SOAPヘッダー」タブに自動的に移入されます。
呼出し方向では、アダプタ・エンドポイント構成ウィザードを次のように構成する必要があります:
-
ようこそページで、Yesを選択し、「SOAPアダプタ」をコールバック起動として構成します。
-
操作ページに、(サービスおよびポートではなく)ポート・タイプのリストが表示されます。 コールバック・ポート・タイプおよびコールバック操作を選択する必要があります。 「コールバック操作」ページはアウトバウンド非同期の大/小文字ではないため、無効です。
-
ヘッダー・ページでは、ヘッダー構成オプションが自動的に有効になります。 「SOAPヘッダー」オプションは「リクエスト・ヘッダー」セクションで自動的に選択され、変更できません。
-
「リクエスト・ヘッダー」ページで、WS-Addressingの
ReplyTo,MessageID,Actionヘッダーが「標準SOAPヘッダー」タブに移入されます。
統合の作成時に、他の必要なマッピング・オプションに加えて、WS-Addressingヘッダーを「インバウンド・リクエスト」から「コールバック起動リクエスト」に明示的にマップする必要があります。 実行時に、wsa:ReplyToヘッダーを持つリクエストでOracle Integrationが起動されると、サービスはレスポンスとともにヘッダーで送信されたエンドポイントを起動します。
ノート:
非同期トリガー/コールバック呼出しから非非同期トリガー/呼出しに切り替えることはできません。同じ場所にあるSOAPエンドポイントの起動のサポート
同じ場所に配置されたモジュール間でサブジェクトを伝播することができます(たとえば、統合からプロセス、プロセスから統合へ)。 これにより、モジュールは現在のサブジェクトに基づいてカスタム機能と制限を提供できます。
Oracle Integrationは、統合によって起動されるアウトバウンド(起動)SOAPエンドポイントがローカル(共存)またはOracle Integrationのリモートであるかどうかを自動的に判断し、エンドポイントへの起動を最適化します。 同じ場所にあるとは、統合が同じホスト・インスタンスまたは同じドメインで実行されていることを意味します。 発信エンドポイントが同じ場所に配置されている場合は、許可のためにJSON Webトークン(JWT)トークンを使用して最適化されたHTTPリクエストを使用してエンドポイントが起動されます。 最適化されたHTTPリクエストは、マネージド・サーバーに直接送信される単純なHTTPリクエスト(非SSL)です。 現在構成されているセキュリティ・ポリシーは、JWTトークンによって上書きされます。 JWTは、いくつかの主張を主張するアクセス・トークンを作成するためのJSONベースのオープン・スタンダード(RFC 7519)です。 たとえば、サーバーは、「管理者としてログインしました」という主張を持つトークンを生成し、それをクライアントに提供することができます。 クライアントはそのトークンを使用して、管理者としてログインしていることを証明することができます。 トークンは、サーバーのキーによって署名されます。 したがって、クライアントとサーバーは両方ともトークンが正当であることを確認できます。
スキーマを使用したWSDLのZIPファイルへのアップロードのサポート
接続を作成するときは、WSDLと、ZIP内にネストされた他のWSDLやXSDなどの依存関係があるZIPファイルをアップロードできます。 これは、統合で標準的な標準モデル(OAGIS)を採用するシナリオで役に立ちます。 ZIPをアップロードする場合は、上位2つのディレクトリ・レベルでWSDLが使用可能であることを確認する必要があります。 これにより、接続ページの「サービスのWSDL」ドロップダウン・リストでWSDLを選択できるようになります。 これら2つのレベルには、任意の数のWSDLを置くことができます。 これらのレベル以下のWSDLは、「サービスのWSDL」ドロップダウン・リストで選択するために表示されません。
-
ZIPファイルには、直接のフォルダ内のメインWSDL (この例では
SalesOrderEBSV2.wsdlという名前)と、フォルダ内に深くネストされた依存関係(EBM、その他のXSDなど)が含まれています。
「図soap_case_1.pngの説明」この例では、メインWSDL参照を、図のように
EnterpriseObjectLibraryを参照するように修正する必要があります。<xsd:import namespace="http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/SalesOrder/V2" schemaLocation="./EnterpriseObjectLibrary/Core/EBO/SalesOrder/V2/SalesOrderEBM.xsd"/> <xsd:import namespace="http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2" schemaLocation="./EnterpriseObjectLibrary/Core/Common/V2/Meta.xsd"/> -
ZIPファイルにはメインWSDL (この例では
service.wsdl)が含まれ、別のWSDLとXSDを参照しています:
「図soap_case_2.pngの説明」 -
ZIPファイルには、WSDL (この例では
service.wsdlという名前)と、同じディレクトリ内の任意の数のXSD依存関係が含まれています。
「図soap_case_3.pngの説明」
MTOMを使用した大規模バイナリ・ペイロードの転送のサポート
MTOM (Message Transmission Optimization Mechanism)のサポートが提供されています。 MTOMは、Webサービス間でバイナリ・データを効率的に送信するためのW3Cメッセージ転送最適化メカニズムです。 SOAPのバイナリ・オブジェクトは、基本的に約33%のデータを展開するbase64でエンコードされたメッセージとして表されます。 大きなペイロードの場合、これはパフォーマンスと送信時間に大きな影響を与えます。 MTOMは、最適化を使用して大きなバイナリ・ペイロードを転送するソリューションを提供します。 MTOM/XOPはSOAPメッセージを最適化し、XOP処理はそれをMIMEのマルチパート/関連メッセージにシリアル化します。 XOP処理は、SOAPメッセージからbase64でエンコードされたデータを抽出し、それをMIMEメッセージ内の別個のバイナリ添付ファイルとしてパッケージ化します。 「SOAPアダプタでのMTOMサポートの構成」を参照してください。
MTOMは現在、統合の起動接続でのみサポートされています。
ノート:
MTOMアップロード/ダウンロードは、大きなペイロードと同時実行性が高い場合に非同期で起動することはできません。 このシナリオでは、ペイロードのサイズおよび同時実行性によってメモリー不足エラーが発生する可能性があります。 設計に注意してください。 たとえば、スケジュールを10分ごとに設定したスケジュールとのスケジュール済オーケストレーション統合では、メモリー不足エラーが発生することなく、2ノードのOracle Integrationクラスタで512 MBのペイロードを10分ごとに、4つのフローを一貫して実行できます。動的エンドポイントのサポート
「SOAPアダプタ」は、エンドポイントの動的検出をサポートしています。 これは、「SOAPアダプタ」が起動するエンドポイントをランタイム・ロジックに基づいて動的に構成する必要がある場合に便利です。 この機能は、「SOAPアダプタ」を起動接続として含む新しい統合と既存の統合(新しい起動を追加するために編集)の両方に適用できます。 起動されるエンドポイントは、Oracle Integrationでサポートされているものと同じセキュリティ・ポリシーをサポートしている必要があります。 ただし、WS-Addressingは使用されていません。 かわりに、動的起動を構成するためにマッパー内に2つのタイプのプロパティが用意されています。 これらのプロパティは、設計時に接続ページで構成されたプロパティをオーバーライドするために実行時に使用されます。
-
エンドポイント・プロパティ: エンドポイント詳細をオーバーライドします。
-
EndpointURI: 接続ページで指定されている既存のエンドポイントURIを置き換えてから、エンドポイントを起動します。
-
SoapAction: エンドポイントを起動する前に、既存のSOAPアクションの検証設定を置き換えます。
-
-
セキュリティ・プロパティ: 必要に応じて、エンドポイントの資格証明の詳細をオーバーライドします。
-
接続でユーザー名パスワード・トークンを使用する場合:
-
ユーザー名: エンドポイントを起動する前に、ユーザー名の資格証明を置き換えます。
-
パスワード: エンドポイントを起動する前にパスワード資格証明を置き換えます。
- ignoreNonce: true/falseのブール値を受け入れます。 デフォルトは、falseです。 リクエストでこの値をtrueに設定すると、
NonceおよびCreatedヘッダーがユーザー名パスワード・トークンで送信されなくなります。 - ignoreCreated: true/falseのブール値を受け入れます。 デフォルトは、falseです。 リクエストでこの値をtrueに設定すると、
NonceおよびCreatedヘッダーがユーザー名パスワード・トークンで送信されなくなります。
ユーザー名パスワード・トークンの場合、Oracle Integrationはアウトバウンド方向のWS-Security 2004バージョン(SOAPメッセージ・セキュリティ1.0仕様)をサポートします。 これには、SOAPメッセージ・セキュリティ・ヘッダーが含まれます:<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Timestamp wsu:Id="TS-910919AD52F5349E1B16034288264664"> <wsu:Created>2020-10-23T04:53:46.466Z</wsu:Created> <wsu:Expires>2020-10-23T04:54:46.466Z</wsu:Expires> </wsu:Timestamp> <wsse:UsernameToken wsu:Id="UsernameToken-910919AD52F5349E1B16034288238563"> <wsse:Username>username</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password> <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">VG04/faWm6rFXSuu8kBGJg==</wsse:Nonce> <wsu:Created>2020-10-23T04:53:43.856Z</wsu:Created> </wsse:UsernameToken> </wsse:Security>この仕様では、
NonceおよびCreatedはオプションであり、分散サービス拒否(DDOS)攻撃を回避するために役立ちます。NonceおよびCreatedを使用しないユーザー名パスワード・トークンのみをサポートするエンドポイントをサポートするために、ユーザー名パスワード・トークンを使用する「SOAPアダプタ」接続のアウトバウンド・リクエスト・マッパーにignoreNonceおよびignoreCreated接続プロパティが用意されています。 -
-
接続でBasic認証セキュリティを使用する場合:
-
認可: エンドポイントを起動する前に認可ヘッダーを置き換えます。
-
次の動的プロパティはマッパーで構成でき、設計時に構成されたプロパティをオーバーライドするために実行時に使用されます。-
アウトバウンド・リクエストの例: ConnectivityPropertiesセクションと、「ヘッダー」セクションまたは「本文」セクション、あるいはその両方が構成のプロパティとともに表示されます。 これがコールバック起動リクエストの場合、ConnectivityPropertiesセクションは表示されません。
展開すると、ConnectivityPropertiesにアウトバウンド・リクエストの次の情報が表示されます。

-
ユーザー名パスワード・トークン・セキュリティ・ポリシー: EndpointPropertiesセクションおよびSecurityPropertiesセクションは、メインのConnectivityPropertiesセクションの下に構成用のプロパティとともに表示されます。

-
基本認証セキュリティ・ポリシー: EndpointPropertiesセクションおよびSecurityPropertiesセクションは、メインのConnectivityPropertiesセクションの下に構成用のプロパティとともに表示されます。

「図basic_auth.pngの説明」 -
セキュリティ・ポリシーなし: EndpointPropertiesセクションは、メインのConnectivityPropertiesセクションの下に構成用のプロパティとともに表示されます。

「図no_security.pngの説明」
-
ノート:
-
動的エンドポイント起動機能によるセキュリティ・プロパティのオーバーライドでは、統合のアクティブ化中にトレースが有効化されたときにマップされる詳細をログに記録します。
-
「SOAPアダプタ」で動的エンドポイントを使用する場合、「トレースを有効にします」および「ペイロードを含める」を選択した状態でこの機能を使用して統合をアクティブ化すると、実行時にペイロードで使用されるパスワードがログ・ファイルにクリア・テキストで公開されることに注意してください。
