IdentityXMLやAccessXMLなどのいくつかのコンポーネントでは、Simple Object Access Protocol(SOAP)を使用してOracle Access Managerにアクセスできます。このためには、正しい書式のSOAPリクエストを作成し、Oracle Access Manager関連の情報をこのリクエストに含めます。
SOAPでは、非集中型の分散環境で情報を交換できます。SOAPプロトコルではベースとしてXMLを使用します。このXMLは次の3つの部分で構成されます。
エンベロープ
メッセージの内容とその処理方法を記述するフレームワークを定義したものです。IdentityXMLはこの部分に大きく依存しています。
エンコーディング・ルールのセット
アプリケーション専用のデータ型の作成を可能にします。IdentityXMLとAccessXMLの両方で使用されます。
通信規定
SOAPでは、一連のリモート・プロシージャ・コールおよびレスポンスを定義しています。これらに関する内容は、エンコーディング・ルールを使用して構築されます。SOAPは、ほぼすべてのプロトコルと組み合せて使用できます。Oracle Access Managerでは、主にHTTPおよびサーバーと組み合せて使用されます。
このプロトコルの詳細は、次のサイトを参照してください。
SOAPはOracle Access Managerとの通信手段になりますが、さらに、メッセージの内容を処理するアイデンティティ・サーバーまたはアクセス・システムのサーバーにその内容をWeb経由でトランスポートする必要があります。このためには、HTTPClientを使用する必要があります。HTTPClientは、HTML表示なしにブラウザのHTTP通信機能をシミュレートするアプリケーションです。
このようなクライアントをゼロから作成することもできますが、必要なコンポーネントが用意されたツールキットがあります。このようなツールキットの1つをInnovation社から入手できます。
http://www.innovation.ch/java/HTTPClient/
このツールキットは無料であり、同サイト内にドキュメントがあります。このツールキットでは、リクエスト・メソッドHEAD、GET、POSTおよびPUTがサポートされています。また、認可、リダイレクション・リクエストおよびCookieの自動処理をサポートするモジュールが搭載されています。
このツールキットは、作成するHTTPClientのバックエンドとなるHTTP通信モジュールを提供するために使用します。フロントエンドとして作成するクライアントには、次の機能を実装する必要があります。
ホストの識別
通信先のホストの完全なURL(ポート番号を含む)を識別でき、この情報をバックエンドに提供できる必要があります。
データの送信
データを取得してホストに送信できるようにする必要があります。取得するデータは、データを含むSOAPエンベロープ全体の場合や、データのみの場合(エンベロープはクライアントにより作成される)、クライアント内でほぼすべてアセンブルされる場合などがあります。データをバックエンドに送信、提供し、バックエンドからレスポンスを戻す必要があります。バックエンドには、リダイレクション・レスポンスを処理するモジュールや、Cookieを管理してシングル・サインオンをサポートするモジュールを含めることができます。
レスポンスの解釈
Oracle Access Managerから戻される情報を解析および使用できるようにする必要があります。
このようなクライアントのサンプルは、次のディレクトリのファイルObSoapClient.javaにあります。
Identity_install_dir /unsupported/integsvcs
このファイルはコンパイルして、HTTPClientのビルド環境のバージョンのクラス内に入れる必要があります。
コンパイルして生成されたサンプルを使用すると、選択したリクエスト・ファイルを、選択したホストの選択したポートに送信できます。コマンドライン引数は次のとおりです。
java ObSoapClient -h hostname -p port -f file
ここで、hostnameは通信先のURL、portはポート番号、fileは送信するリクエスト・ファイルの名前です。レスポンスは画面に表示されます。これをファイルに出力することや、コマンドラインで指定したファイルに出力するようサンプルを変更することもできます。
ファイルObSoapClient.plは、この例のPerlによる実装です。
リクエスト・ファイルのいくつかの例も、次のロケーションに用意されています。
Identity_install_dir /unsupported/integsvcs
これらのファイルをそのまま使用することはできません。少なくとも、各ファイルのログインおよびパスワード情報を、アクセスしようとしているシステムの有効なユーザーの情報に変更する必要があります。さらに、各ファイル内のuid情報を、実際のディレクトリの構造と内容に合せて変更することも通常必要になります。