Oracle Identity Manager Toolsリファレンス リリース9.1.0.2 B56035-01 |
|
この章では、Oracle Identity ManagerのSPML Webサービス・インタフェースについて説明します。
この章の次の項では、SPML Webサービスの基本情報を提供します。
SPML Webサービスをデプロイするには、次の項のいずれかで説明されている方法を参照してください。
次の項では、SPML Webサービスのデプロイ後に実行する手順について説明します。
次の項では、SPML Webサービスのクライアントを開発する際の手順の概要を説明します。
組織には、ユーザー・レコードの変更情報を交換するプロビジョニング・システムが複数ある場合があります。また、複数のプロビジョニング・システムとのやりとりをするアプリケーションがある場合もあります。コネクタによって、2つのプロビジョニング・システム間、またはアプリケーションとプロビジョニング・システムとの間のやりとりが可能になり、各アプリケーションと他のアプリケーションとの同期がとられます。しかし、これらのシステムの組合せごとにカスタム・コネクタを構成するのは、多くのコストを必要とします。
この問題の解決策は、これらのすべてのシステムで理解される1つの共通言語またはプロトコルのアプリケーションです。それはSPMLです。
SPML Webサービスは、SPMLリクエストを解釈し、これをOracle Identity Managerコールに変換するためのOracle Identity Manager上の層です。
SPML Webサービスでは、インバウンド・プロビジョニング・リクエストのみがサポートされます。リコンシリエーション・イベントが生成されないため、リコンシリエーションはサポートされません。たとえば、リソースをOIMユーザーにプロビジョニングするリクエストをし、ここでリソースのプロセス・フォームと子表へのデータの移入が必要な場合、このリクエストはサポートされません。これは、SPML Webサービスでリソース・オブジェクトに関連付けられている情報が認識されないためです。
SPML Webサービスでは、SOAPメッセージの形でSPMLリクエストが送受信されます。SPMLモデルは、エンドツーエンド・プロビジョニング・シナリオに含まれる次のエンティティで構成されます。
SPMLプロトコルの実装により、プロビジョニング・リクエストの信頼できる交換、およびより複雑なアプリケーションレベルでのプロビジョニング機能を構築する基となるモデルが提供されます。SPMLは、プロビジョニング・システムによって使用される管理リクエストを交換し、アイデンティティを管理および制御する言語です。
図12-1に、SPML Webサービスの機能のアーキテクチャを示します。
プロビジョニング・アプリケーションは、RA、PSP両方の役割を担えます。次のようなシナリオを考えてみてください。
このシナリオでは、クライアント・アプリケーションで、プロビジョニング・アプリケーションへSPMLリクエストが送信されます。プロビジョニング・アプリケーションでリクエストが実行され、クライアント・アプリケーションにSPMLレスポンスが返されます。リクエストとレスポンスの交換は、同期、非同期のいずれでも行われます。これは、通常、インバウンド・シナリオと呼ばれます。Oracle Identity Managerでは、これはSPML Webサービスにより実行されます。
このシナリオでは、プロビジョニング・アプリケーションはSPMLクライアントの役割を担い、リSPMLリクエストをPSTに送信し、PSTがリクエストを実行してSPMLレスポンスを返します。リクエストとレスポンスの交換は、同期でも非同期でも行われます。これは、通常、アウトバウンド・シナリオと呼ばれます。Oracle Identity Managerでは、これは、SPMLフォーマット・プロビジョニング・プロバイダを含む汎用テクノロジ・コネクタにより実行されます。
このシナリオでは、クライアント・アプリケーションから、プロビジョニング・アプリケーションへSPMLリクエストが送信されますが、そこではリクエストを実行できません。そこで、プロビジョニング・アプリケーションでは、リクエストを実行でき、SPMLレスポンスを返すプロビジョニング・ターゲットへリクエストを転送します。その後、プロビジョニング・アプリケーションでは、クライアント・アプリケーションにSPMLレスポンスを返します。リクエスト/レスポンス/リクエストの交換は、同期でも非同期でも行われます。
SPML Webサービスでは、SPML v2.0仕様で規定された最低準拠基準を満たす機能がサポートされます。この項では、SPML Webサービスでサポートされる各種処理について説明します。
プロビジョニング・ターゲットでは、エンティティ(ユーザー、グループ、組織)を一意に識別するためにpsoIDを使用できます。Oracle Identity Managerでは、エンティティの指定に、オブジェクト・クラスとエンティティ・キーの組合せが必要です。エンティティ・キーは、Oracle Identity Managerでエンティティを作成すると返されるデータベース・キーです。Oracle Identity ManagerでのpsoIDの形式は次のとおりです。
objectclass:entitykey
たとえば、オブジェクト・クラスがUsers、エンティティ・キーが3とします。この場合、指定するpsoIDは、 Users:3
です。
SPML Webサービスでは、次のプロビジョニング処理またはリクエストがサポートされます。
追加リクエスト処理では、リクエストされたターゲット・タイプのエントリがOracle Identity Managerで作成されます。サポートされているターゲット・タイプは、User、GroupおよびOrganizationです。この処理では、エントリの存在が確認され、エラーがあれば報告されます。memberOf
リレーションシップを使用してユーザーまたはグループを1つ以上のグループに関連付ける場合、この処理に、UserおよびGroupターゲット・タイプの機能データを含めることもできます。この機能では、administrator
参照機能もサポートされ、1つ以上のグループを新規グループの管理者として割り当てる際に使用できます。
変更リクエスト処理では、リクエストされたターゲット・タイプに指定されたターゲット・エントリがOracle Identity Managerで更新されます。サポートされているターゲット・タイプは、User、GroupおよびOrganizationです。この処理では、エントリの存在が確認され、エラーがあれば報告されます。エントリが存在する場合は、指定のデータでターゲットが更新されます。この処理では、機能データの変更も行われます。Userターゲット・タイプの場合、サポートされている参照機能はmemberOf
です。この処理は、ユーザーの参照の更新にも使用されます。ユーザーのグループへの追加やグループからの削除も行えます。
同様に、Groupターゲット・タイプの場合、サポートされている参照機能は、memberOf
およびadministrator
です。変更リクエストは、これらの参照の作成、置換または削除に使用できます。
削除リクエスト処理では、指定されたターゲット・エントリがOracle Identity Managerから削除されます。サポートされているターゲット・タイプは、User、GroupおよびOrganizationです。この処理では、エントリの存在が確認され、エラーがあれば報告されます。エントリが存在する場合は、削除されます。再帰的削除処理はサポートされていません。
参照は、他のエンティティから参照されるエンティティです。たとえば、ユーザーJohn Doeはグループのメンバーです。John Doeをそのグループから削除し、他のグループのメンバーにするとします。新しいグループでのこのユーザーの詳細の指定に参照を使用し、ユーザーを新しいグループのメンバーにできます。
次の参照がSPMLでサポートされています。
ルックアップ・リクエスト処理では、指定されたターゲット・エントリがOracle Identity Managerでルックアップされます。サポートされているターゲット・タイプは、User、GroupおよびOrganizationです。この処理ではエントリの存在が確認され、ルックアップ・データまたはエラー・レポートが返されます。ユーザーは、Oracle Identity Managerでは、ユーザーIDを基にルックアップできます。ルックアップ処理では、すべてのものをreturnData
タイプの値として指定する場合、オブジェクトに関連付けられている機能固有のデータも返されます。
検索リクエスト処理では、指定されたターゲット・エントリがOracle Identity Managerで検索されます。サポートされているターゲット・タイプは、User、GroupおよびOrganizationです。この処理では、エントリの存在が確認され、エントリが使用可能かどうかに基づいて検索レスポンスが返されます。
検索リクエストでは、問合せのスコープはサポートされません。問合せにスコープがあっても無視されます。検索問合せは、リクエストで指定された検索基準にAND演算子を適用することで作成されます。SPML検索リクエストでは、Directory Services Markup Language(DSML)フィルタを使用して異なる検索基準を指定できます。DSMLフィルタでサポートされている唯一の処理は、equalityMatch
です。
includeDataForCapability
要素はサポートされていません。すべてのものをreturnData
の値として指定する場合、検索処理ではすべての関連する参照が返されます。検索処理には、User、GroupおよびOrganizationコンテナを問い合せる基となるオブジェクト・クラス情報が必要です。つまり、オブジェクト・クラスが検索問合せの問合せ要素の1つとみなされます。
たとえば、Usersオブジェクト・クラスの検索を行う場合、この情報をリクエストに組み込む必要があります。次のコード例でこれを示します。
<searchRequest returnData="identifier"xmlns="urn:oasis:names:tc:SPML:2:0:search" xmlns:dsml="urn:oasis:names:tc:DSML:2:0:core"> <query scope="pso"> <basePsoID ID=""/><and> <dsml:filter><dsml:equalityMatch name="Users.LastName"> <dsml:values>Doe </dsml:values> </dsml:equalityMatch> </dsml:filter> <dsml:filter><dsml:equalityMatch name="Users.XellerateType"> <dsml:values>End-User </dsml:values> </dsml:equalityMatch> </dsml:filter> <dsml:filter> <dsml:equalityMatch name="ObjectClass"><dsml:values>Users </dsml:values> </dsml:equalityMatch> </dsml:filter> </and></query> </searchRequest>
検索が行われるbasePsoID
は、Organization
または空の文字列である必要があります。(basePsoID
は、psoID形式(Organization:key
)と同じか、空の文字列のいずれかです。)
例: <basePsoID ID="Organization:7"/>
, <basePsoID ID=""/>
passwordRequest
処理には、setPasswordRequest
とresetPasswordRequest
の
2つの処理があります。前者ではユーザーはパスワードを変更でき、後者では、Oracle Identity Managerでユーザーに定義されたパスワード・ポリシーに基づいて新しいパスワードがランダムに生成されます。サポートされるターゲット・タイプは、Userです。resetPasswordRequest
では、パスワードはデフォルトでdefault
に設定されます。
SPML v2.0仕様で規定されたsuspend
機能には次の3つの処理があります。
listTargets
は、プロビジョニングで使用可能なターゲットの決定に使用されます。この処理は、サポートされている各ターゲット・タイプについてプロビジョニング・システムでサポートされている属性の決定にも使用されます。この処理では、サポートされている3つのターゲット・タイプ(User、Group、Organization)すべてのスキーマ情報が返されます。
SPML Webサービスでは、次の処理はサポートされません。
プロビジョニング・リクエストに日付属性を含める場合は、次の書式を使用する必要があります。
他の日付書式はサポートされていません。日付属性が割り当てられた追加リクエストの例は、「日付書式付き追加リクエスト」を参照してください。
注意:
yyyy-MM-dd hh:mm:ss.fffffffff
SPML Webサービスは、OIMSpmlWS.ear
という名前のエンタープライズ・アーカイブ(EAR)ファイルにパッケージされています。このファイルはOracle Identity Managerのインストール時に生成されます。このファイルは次の場所に格納されます。
OIM_HOME/SPMLWS
アプリケーション・サーバーごとに異なるEARファイルがあり、各ファイルはSPMLWS
ディレクトリの各アプリケーション・サーバーのフォルダに格納されています。このEARファイルはOracle Identity Managerのインストール時に生成されます。
次のバッチ・ファイルを使用し、Oracle Identity Managerが稼働しているアプリケーション・サーバー上にSPML Webサービスをデプロイするスクリプトを実行します。
OIM_HOME/xellerate/setup/spml_AppServerName
このバッチ・ファイルを実行するには、操作環境に対応した手順を実行します。
非クラスタOracle WebLogic Serverインストールの場合:
次のコマンドを入力します。
UNIXの場合:
OIM_HOME/setup/spml_weblogic.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥setup¥spml_weblogic.cmd appserver_admin_password oim_db_user_password
クラスタ化されたOracle WebLogic Serverインストールの場合:
UNIXの場合:
OIM_HOME/xellerate/setup/spml_weblogic.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥xellerate¥setup¥spml_weblogic.cmd appserver_admin_password oim_db_user_password
非クラスタIBM WebSphere Application Serverインストールの場合:
次のコマンドを入力します。
UNIXの場合:
OIM_HOME/setup/spml_websphere.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥setup¥spml_websphere.cmd appserver_admin_password oim_db_user_password
クラスタ化されたIBM WebSphere Application Serverインストールの場合:
UNIXの場合:
OIM_HOME/xellerate/setup/spml_websphere.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥xellerate¥setup¥spml_websphere.cmd appserver_admin_password oim_db_user_password
plugin-cfg.xml
ファイルを再生成します。
非クラスタJBoss Application Serverインストールの場合:
次のコマンドを入力します。
UNIXの場合:
OIM_HOME/xellerate/setup/spml_jboss.sh oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥xellerate¥setup¥spml_jboss.cmd oim_db_user_password
非クラスタOracle Application Serverインストールの場合:
UNIXの場合:
OIM_HOME/setup/spml_oc4j.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥setup¥spml_oc4j.cmd appserver_admin_password oim_db_user_password
UNIXの場合:
OIM_HOME/xellerate/setup/spml_oc4j.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥xellerate¥setup¥spml_oc4j.cmd appserver_admin_password oim_db_user_password
OC4J_HOME/j2ee/OC4J_instance/config/application.xml
application.xml
ファイルの<imported-shared-libraries>
セクションで、<import-shared-library name="apache.commons.logging"/>
を<remove-inherited name="apache.commons.logging"/>
に変更します。つまり、<imported-shared-libraries>
セクションは次のようにする必要があります。
<imported-shared-libraries> <import-shared-library name="adf.oracle.domain"/> <import-shared-library name="oracle.ifs.client"/> <remove-inherited name="apache.commons.logging"/> </imported-shared-libraries>
クラスタ化されたOracle Application Serverインストールの場合:
次の手順をクラスタの各ノードで実行します。
UNIXの場合:
OIM_HOME/xellerate/setup/spml_oc4j.sh appserver_admin_password oim_db_user_password
Microsoft Windowsの場合:
OIM_HOME¥xellerate¥setup¥spml_oc4j.cmd appserver_admin_password oim_db_user_password
OC4J_HOME/j2ee/OC4J_instance/config/application.xml
application.xml
ファイルの<imported-shared-libraries>
セクションで、<import-shared-library name="apache.commons.logging"/>
を<remove-inherited name="apache.commons.logging"/>
に変更します。つまり、<imported-shared-libraries>
セクションは次のようにする必要があります。
<imported-shared-libraries> <import-shared-library name="adf.oracle.domain"/> <import-shared-library name="oracle.ifs.client"/> <remove-inherited name="apache.commons.logging"/> </imported-shared-libraries>
Oracle Web Services Manager(WSM)には、多様なデプロイ環境でのWebサービスのインストール、構成および管理を容易にする機能があります。
Oracle WSMを使用して、SPML Webサービスを保護できます。SPML WebサービスにSOAPメッセージでリクエストが送信されると、Oracle WSMでこれが解釈されます。SOAPメッセージでは、SOAPヘッダーにWeb Services Security(wsse)タグが含まれます。このwsse:security
タグに、認証される必要のあるユーザー資格証明が含まれます。SPML Webサービスを保護するには、Oracle WSM Server AgentまたはOracle WSM Gatewayを使用します。
Oracle WSM Server AgentまたはOracle WSM Gatewayでは、SPML Webサービスへのリクエストの転送前にSOAPメッセージからwsse:security
タグが取り除かれます。Oracle WSM Server AgentまたはOracle WSM Gatewayを、カスタム・ポリシー・ステップを使用するよう構成する必要があります。このステップで、wsse:security
タグからユーザー資格証明が抽出され、SOAPヘッダーのカスタム・ヘッダー・タグに挿入されます。SPML Webサービスではここから資格証明が抽出されます。
次の項で、Oracle WSM Server AgentまたはOracle WSM Gatewayを使用してSPML Webサービスを保護する構成手順を説明します。
SPML Webサービスを保護するためにOracle WSM Server Agentを構成するには、次の処理が必要です。
サーバー・エージェントを追加する手順は次のとおりです。
Web Services Manager Controlを使用して、サーバー・エージェントに関連付けるポリシーを定義します。ポリシーのデフォルトの実装は、次の場所にあります。
OIM_HOME/SPMLWS/OWSMPolicy
URLパターンとポリシーを関連付ける必要があります。これを行うには、「ポリシー管理」→「ポリシーの管理」→「ポリシー」と選択します。その後、「マッピングの編集」ボタンをクリックし、ポリシーに関連付けるURLパターンとして次のように入力します。
/spmlws/HttpSoap11
カスタム・ポリシーを構成するには、OIM_HOME
/SPMLWS/OWSMPolicy
のクラス・ファイルcom.oracle.xl.spmlws.ws.security.owsm.CustomPolicyStep
を次のファイルに含める必要があります。
ORACLE_HOME/owsm/lib/extlib/coresvagent.jar
サーバー・エージェント・コンポーネントの作成後、カスタム・ステップをそのコンポーネントに追加する必要があります。これを行うには、登録したコンポーネントの「ステップ」リンクをクリックします。適切な場所からCustomPolicyStep.xml
を選択し、「アップロード」をクリックします。XMLファイルは、OIM_HOME
/SPMLWS/OWSMPolicy/com/oracle/xl/spmlws/ws/security/owsm
にあります。
この後、カスタム・ポリシー・ステップ名が使用可能なポリシーのリストに追加されます。
サーバー・エージェントをインジェクトするには、次の手順を行う必要があります。
サーバー・エージェントをインジェクトする手順は次のとおりです。
ORACLE_HOME/owsm/bin/agent.properties
ファイルの属性を次の値に変更します。
agent.properties
ファイルの次のプロパティを編集します。
wsmadmin installAgent
コマンドを実行します。
サーバー・エージェントをインジェクトする手順は次のとおりです。
UNIXの場合:
http://download.oracle.com/otn/linux/ias/101310/soa_linux_x86_ws_agent101310.zip
Microsoft Windowsの場合:
http://download.oracle.com/otn/nt/ias/101310/soa_windows_x86_ws_agent101310.zip
/owsm
など)に展開します。bin
ディレクトリを参照し、agent.properties
ファイルを開いて次のプロパティを設定します。
/owsm/oc4j
(/owsm
がZIPファイルを展開した場所の場合)。
/owsm/oc4j/j2ee/home
(ここで、/owsm
はZIPファイルを展開した場所)。
/owsm/wars/HelloWorldImpl.war
です。
http://hostname:8888/policymanager
など。ローカルホストではなく、システム名を指定。)
bin/coresv.properties
ファイルを開き、次のプロパティを設定します。
OIM_HOME
/SPMLWS/OWSMPolicy
のクラス・ファイルcom.oracle.xl.spmlws.ws.security.owsm.CustomPolicyStep
を次のファイルに含める必要があります。
/owsm/lib/extlib/coresvagent.jar
(/owsm
がZIPファイルを展開した場所の場合)
bin
ディレクトリに移動します。injectAgent
コマンドを実行します。このコマンドで、すべてのJARファイルが、指定したWARまたはEARファイルにインジェクトされます。(実行前に、ant bin
ディレクトリへのパスを設定します。)
クライアント・エージェントのインストール後、SPML Webサービスをデプロイします。SPML Webサービスのデプロイ方法は、「SPML Webサービスのデプロイ」を参照してください。
SPML Webサービスを保護するためにOracle WSM Gatewayをデプロイするには、次の処理が必要です。
ゲートウェイを登録する手順は次のとおりです。
SPML Webサービスをゲートウェイに登録する手順は次のとおりです。
Web Services Manager Controlを使用して、ゲートウェイに関連付けるポリシーを定義します。ポリシーのデフォルトの実装は、次の場所にあります。
OIM_HOME/SPMLWS/OWSMPolicy
ポリシーでは、ユーザーの資格証明がWSSEセキュリティ・タグから抽出され、SOAPヘッダーの次のカスタム・タグに追加されます。
<wsa1:OIMUser soap:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning"> <wsa1:OIMUserId xlmns:wsa1="http://xmlns.oracle.com/OIM/provisioning">user1</wsa1:OIMUserId> <wsa1:OIMUserPassword xlmns:wsa1="http://xmlns.oracle.com/OIM/provisioning">password1</wsa1:OIMUserPassword> </wsa1:OIMUser>
SPML Webサービスでこのタグが解釈および処理されます。
カスタム・ポリシーを構成するには、OIM_HOME
/SPMLWS/OWSMPolicy
のクラス・ファイルcom.oracle.xl.spmlws.ws.security.owsm.CustomPolicyStep
を次のファイルに含める必要があります。
ORACLE_HOME/owsm/lib/coresv-4.0.jar
coresv-4.0.jar
にはポリシーに固有のすべてのクラス・ファイルが含まれるため、カスタム・ポリシー・ステップ・ファイルを含める必要があります。その後、Oracle Application Serverを再起動します。
ゲートウェイの登録後、カスタム・ステップを追加する必要があります。カスタム・ステップを追加する手順は次のとおりです。
CustomPolicy.xml
ファイルをアップロードします。このXMLファイルは、次のパスにあります。
OIM_HOME/SPMLWS/OWSMPolicy/com/oracle/xl/spmlws/ws/security/owsm
CustomPolicy.xml
を選択し、「アップロード」をクリックします。カスタム・ポリシー・ステップの名前が使用可能なポリシーのリストに追加されます。
リクエスト・ブロックで、SPML Webサービスへ送られた有効な受信リクエストに対し、構成されたカスタム・ポリシーが実行されます。
クライアント・エージェントのインストール後、SPML Webサービスをデプロイします。SPML Webサービスのデプロイ方法は、「SPML Webサービスのデプロイ」を参照してください。
WebサービスのWeb Service Description Language(WSDL)ファイルを表示する手順は次のとおりです。
SPMLクライアントでこのURLを使用し、SPML Webサービスにアクセスします。
JBoss Application Server、Oracle WebLogic ServerまたはIBM WebSphere Application Serverを使用している場合、デプロイ後に実行する手順はありません。
IBM WebSphere Application Server 6.1を使用している場合、xlDataObjectBeans.jar
ファイルを抽出し、それをSPML WebサービスのWARファイルのWEB-INF/lib
ディレクトリにコピーします。このファイルをコピーした後、WebSphereを再起動する必要があります。
この項では、SPML Webサービス用にSecure Sockets Layer(SSL)通信を有効にする情報を提供します。この項で説明する手順を実行することをお薦めします。
次の各項では、JBoss Application Server 4.2.3 GAにインストールされたSPML WebサービスでSSL通信を有効にするために必要な情報を提供します。
SSL通信を有効にするための前提条件は次のとおりです。
jbossserver.jks
で、パスワードはwelcome
です。
jbossserver.cert
です。
serverjboss
で、パスワードはwelcome
です。
この項では、SSLを設定する手順を説明します。
keytool
コマンドを使用してキーを生成します。次のkeytoolコマンドでは、アイデンティティ・ストアjbossserver.jks
が生成されます。
keytool -genkey -alias serverjboss -keyalg RSA -keysize 1024 -dname "CN=localhost,OU=Identity,O=Oracle,C=US" -keypass welcome -keystore E:¥jboss-4.2.3.GA¥server¥jbossserver.jks -storepass welcome -storetype jks
次のkeytool
コマンドを使用して、作成した証明書に署名します。
keytool -selfcert -alias serverjboss -sigalg MD5withRSA -validity 2000 -keypass welcome -keystore E:¥jboss-4.2.3.GA¥server¥jbossserver.jks -storepass welcome
次のkeytool
コマンドを使用して、証明書をアイデンティティ・キーストアからファイル(jbossserver.cert
など)にエクスポートします。
keytool -export -alias serverjboss -file E:¥jboss-4.2.3.GA¥server¥jbossserver.cert -keypass welcome -keystore E:¥jboss-4.2.3.GA¥server¥jbossserver.jks -storepass welcome -storetype jks -provider sun.security.provider.Sun
次のエントリをserver.xml
ファイルに作成します。
<Connector port="8443" address="${jboss.bind.address}" maxThreads="100" strategy="ms" maxHttpHeaderSize="8192" emptySessionPath="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:¥jboss-4.2.3.GA¥server¥jbossserver.jks" keystorePass="welcome" truststoreFile="E:¥jboss-4.2.3.GA¥server¥jbossserver.jks" truststorePass="welcome"/>
前述の手順を行った後、サーバーを再起動して変更を有効にします。
次の各項では、Oracle WebLogic ServerにインストールされたSPML WebサービスでSSL通信を有効にするために必要な情報を提供します。
SSL通信を有効にするための前提条件は次のとおりです。
C:¥bea¥user_projects¥domains¥oim
です。
WL_HOME
)ディレクトリは、C:¥bea¥wlserver_10.3
です。
support.jks
で、パスワードはsupport
です。
supportcert.pem
です。
support
で、パスワードはweblogic
です。
setEnv.cmd
またはsetEnv.sh
スクリプトを実行してPATH、CLASSPATHおよびその他の変数を設定します。
この項では、SSLを設定する手順を説明します。
提供されたkeytoolコマンドを使用して、プライベート/パブリック証明書ペアを生成します。次のコマンドは、アイデンティティ・キーストア(support.jks)
を作成します。必要に応じて、keytoolコマンドに渡すパラメータの値を変更してください。keytool引数に改行がないことを確認してください。
keytool -genkey -alias support -keyalg RSA -keysize 1024 -dname "CN=xellerate.oracle.com, OU=Identity, O=Oracle Corporation, L=RedwoodShores, S=California, C=US" -keypass weblogic -keystore C:¥bea¥user_projects¥domains¥oim¥support.jks -storepass support
次のコマンドを使用して、作成した証明書に署名します。
keytool -selfcert -alias support -sigalg MD5withRSA -validity 2000 -keypass weblogic -keystore C:¥bea¥user_projects¥domains¥oim¥support.jks -storepass support
次のコマンドを使用して、証明書をアイデンティティ・キーストアからファイル(supportcert.pem
など)にエクスポートします。
keytool -export -alias support -file C:¥bea¥user_projects¥domains¥oim¥supportcert.pem -keypass weblogic -keystore C:¥bea¥user_projects¥domains¥oim¥support.jks -storepass support
Oracle WebLogic Serverを構成する手順は次のとおりです。
C:¥bea¥user_projects¥domains¥oim¥support.jks
を指定します。
support
と入力します。
「証明書のエクスポート」でエクスポートした証明書を、クライアント側のSSL通信用トラストストアにインポートできます。
次のkeytoolコマンドを使用して、証明書をSPMLクライアント・トラストストアにインポートします。
注意:
keytool -import -alias serverwl -trustcacerts -file
D:¥bea¥user_projects¥domains¥ mydomain¥wlservercert.pem
-keystore <client-trust store> -storepass <client-trust-store password>
この後の各項では、IBM WebSphere Application ServerにインストールされたSPML WebサービスでSSL通信を有効にするために必要な情報を提供します。
SSL通信を有効にするための前提条件は次のとおりです。
https://localhost:9443/spmlws/HttpSoap11
key.p12
で、パスワードはWebAS
です。
trust.p12
で、パスワードはWebAS
です。この項の手順では次のことが行えます。
IBM WebSphere Application Serverでは、IBM WebSphereのデフォルト・キーストア(key.p12
)およびこのデフォルト証明書が使用されます。このデフォルト証明書をファイルにエクスポートする必要があります。次のkeytoolコマンドを使用してこれを行います。
IBM_JDK_HOME/jre/bin/keytool -export -alias default -file <Exported Certificate file> -keypass WebAS -keystore FULL_PATH_OF_IBM_WEBSPHERE "key.p12" -storepass WebAS -storetype pkcs12 -provider com.ibm.crypto.provider.IBMJCE
前述のコマンドで、次の項目を適切な場所を指すよう置き換えます。
key.p12
(デフォルトIBMキーストア)のフルパス
IBM_JDK_HOME
: IBM WebSphere Application Server Javaフォルダ
次のkeytoolコマンドを使用して、証明書ファイルをSPML Webサービス・クライアントのトラストストアにインポートします。
keytool -import -alias serverws -trustcacerts -file <Exported Certificate file> -keystore E:¥SPMLTest¥mykeystore -storepass mypass -storetype jks
この後の各項では、Oracle Application ServerにインストールされたSPML WebサービスでSSL通信を有効にするために必要な情報を提供します。
SSL通信を有効にするための前提条件は次のとおりです。
E:¥product¥10.1.3.1¥OracleAS_1
です。
oc4jserver.jks
で、パスワードはwelcome
です。
oc4jserver.cert
です。
serveroc4j
で、パスワードはwelcome
です。
この項の手順では次のことが行えます。
次のkeytoolコマンドを使用してキーを生成します。次のkeytoolコマンドでは、アイデンティティ・キーストアoc4jserver.jks
が作成されます。
keytool -genkey -alias serveroc4j -keyalg RSA -keysize 1024 -dname "CN=localhost,OU=Identity,O=Oracle,C=US" -keypass welcome -keystore E:¥product¥10.1.3.1¥OracleAS_1¥oc4jserver.jks -storepass welcome -storetype jks
次のkeytoolコマンドを使用して、作成した証明書に署名します。
keytool -selfcert -alias serveroc4j -sigalg MD5withRSA -validity 2000 -keypass welcome -keystore E:¥product¥10.1.3.1¥OracleAS_1¥oc4jserver.jks -storepass welcome
次のkeytoolコマンドを使用して、証明書をアイデンティティ・キーストアからファイルにエクスポートします。
keytool -export -alias serveroc4j -file E:¥product¥10.1.3.1¥OracleAS_1¥oc4jserver.cert -keypass welcome -keystore E:¥product¥10.1.3.1¥OracleAS_1¥oc4jserver.jks -storepass welcome -storetype jks -provider sun.security.provider.Sun
Oracle Application Serverを構成する手順は次のとおりです。
E:¥product¥10.1.3.1¥OracleAS_1¥j2ee¥home¥config¥default-web-site.xml
ファイルのコピーを同じ場所に作成し、secure-web-site.xml
という名前に変更します。
secure-web-site.xml
ファイルで、次の変更を行います。
次に例を示します。
web-site xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/
web-site-10_0.xsd" port="4443" secure="true" protocol ="https"
display-name="OC4J 10g (10.1.3) Default Web Site" schema-major-version="10" schema-minor-version="0">
web-site
ノードの下に、次の例のようなキーストアを指す新規要素ssl-config
を追加します。
<ssl-config keystore="E:/product/10.1.3.1/OracleAS_1/oc4jserver.jks" keystore-password="welcome" />
E:¥product¥10.1.3.1¥OracleAS_1¥j2ee¥home¥config¥server.xml
ファイルに次のエントリを追加します。
<web-site path="./secure-web-site.xml"/>
E:¥product¥10.1.3.1¥OracleAS_1¥opmn¥conf¥opmn.xml
ファイルに次の追加を行います。
<port id="secure-web-site" range="4443" protocol="https"> under
<ias-component id="default_group">
opmn.xml
ファイルの<ias-component id="default_group">
タグの下の<data id="java-options" value="-Xrs"
に、次の追加を行います。
-Djavax.net.ssl.trustStore=E:¥product¥10.1.3.1¥OracleAS_1¥oc4jserver.jks -Djavax.net.ssl.trustStorePassword=welcome -Djavax.net.ssl.keyStore=E:¥product¥10.1.3.1¥OracleAS_1¥oc4jserver.jks -Djavax.net.ssl.keyStorePassword=welcome"
この後の各項では、Oracle HTTP ServerへのHTTP通信でのSSLの有効化に関する情報を提供します。
デフォルトでは、Oracle HTTP Serverは、SSLおよびSSL証明書ストアを使用するよう構成されています。証明書ストアは、ORACLE_HOME
/Apache/Apache/conf/ssl.wlt/default/
にあります。ORACLE_HOME
/Apache/Apache/conf/ssl.conf
ファイルのlisten
パラメータは、Oracle HTTP Serverで使用されるSSLポートを指します。
インストールに付属のデフォルト証明書ストアを使用する場合、構成は変更しません。
証明書をデフォルトOracleウォレットORACLE_HOME
/Apache/Apache/conf/ssl.wlt/default/ewallet.p12
からエクスポートする必要があります。この証明書は、Design ConsoleでOracle Application Serverを信頼するために使用されます。証明書をエクスポートする手順は次のとおりです。
ORACLE_HOME
/Apache/Apache/conf/ssl.wlt/default/ewallet.p12
ファイルを開きます。これを行うには、「ウォレットを開く」をクリックし、ウォレットの場所を参照します。
「証明書(待機中)」
を右クリックし、「ユーザー証明書のエクスポート」をクリックします。
server.cert
の名前で保存します。この項では、SPML Webサービスのクライアントを作成する際に利用できる情報およびガイドラインを提供します。
SPMLクライアントを開発するには、クライアントを開発する各アプリケーション・サーバーのWSDLファイルを参照する必要があります。各アプリケーション・サーバーのWSDLファイルは、OIM_HOME
/SPMLWS/SampleHttpClient/wsdl
ディレクトリにあります。
SPMLクライアントのサンプルのコード・ファイルは次の場所にあります。
OIM_HOME/SPMLWS/SampleHttpClient
コード例を理解しやすいようにしておくには、このSPMLクライアントではHTTP/S接続のかわりにSPML WebサービスへのHTTP接続を使用します。
このSPMLクライアントのサンプルでは、SOAPリクエストを含むXMLファイルを参照し、SPML WebサービスへのHTTP POSTを行います。
このリリースのOracle Identity Managerには、SOAPリクエストの一連のサンプルが含まれています。このSOAPリクエストのサンプル・ファイルへアクセスするパスは次のとおりです。
SampleHttpClient/sampleRequests/Application Server
sampleRequests
ディレクトリには、サポートされているアプリケーション・サーバーごとにSOAPリクエストが含まれています。
次の項で、SPMLクライアントの開発時に利用できる情報を提供します。
前述のとおり、SPML Webサービスでは次の処理がサポートされています。
変更処理のSPMLリクエストに必ずpsoIDが含まれているようにします。
削除処理のSPMLリクエストに必ずpsoIDが含まれているようにします。
パスワード処理のSPMLリクエストに必ずpsoIDが含まれているようにします。
一時停止機能には、suspendRequest
、resumeRequest
およびactiveUser
処理があります。resumeRequest
およびactiveUser
処理のSPMLリクエストに必ずpsoIDが含まれているようにします。
SPMLクライアントは、送信されるSPMLリクエストごとに認証される必要があります。これは、認可されていないユーザーのSPML Webサービスの使用を防ぐためです。
SPMLクライアントは、次の方法で認証されます。SPMLクライアントではSOAPヘッダーを使用してユーザー資格証明をWebサービスへ送信します。これは、次の方法で行われます。
OIM_HOME/SPMLWS/OWSMPolicy
注意: Oracle WSMをSPML Webサービスとの組合せで構成する詳細は、「Oracle Web Services Managerを使用し、SPML Webサービスをデプロイするセキュリティの有効化」を参照してください。 |
表12-1に、SPMLリクエストに含まれる必須フィールドおよび必須でないフィールドを示します。
SPML WebサービスにはOracle Identity Manager資格証明が必要です。これは、SPMLを保護するためにOracle WSMが使用されているかどうかに応じてSOAPヘッダーに指定されます。この情報について、この後の各項で説明します。
SOAPリクエストがSPML Webサービスに直接送信される場合、カスタム・セキュリティ・タグ(wsa1:OIMUser
)がSOAPヘッダーに使用され、Oracle Identity Manager資格証明が組み込まれます。SPML Webサービスでこのタグが解釈され、サーバー側のハンドラで、次のSOAPヘッダー例で示すような資格証明情報が抽出されます。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsa1:OIMUser soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning"> <wsa1:OIMUserPassword>password1</wsa1:OIMUserPassword> <wsa1:OIMUserId>user1</wsa1:OIMUserId> </wsa1:OIMUser> </soapenv:Header> </soapenv:Envelope>
SPML Webサービスを保護するためにOracle WSM GatewayまたはAgentが使用されている場合、SPML SOAPメッセージがGatewayまたはAgentによってインターセプトされます。この場合、Oracle Identity Manager資格証明は、次の例で示すように標準wsseセキュリティ・タグで指定されます。
soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1 .0.xsd"> <wsse:UsernameToken> <wsse:Username>user1</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1. 0#PasswordText">password1</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> </soapenv:Envelope>
SPMLクライアントでは、Oracle Identity Manager資格証明情報とともに、ロケール情報もSPML Webサービスに送信されます。これには、SOAPヘッダーのwsa1:lang
タグが使用されます。これらのタグはSPML Webサービスによって処理されます。Oracle Web Services Managerが構成されている場合は、SPML Webサービスではこのタグは無視されます。この場合、ヘッダー情報は次のようになります。
カスタム・タグの場合:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsa1:OIMUser soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning"> <wsa1:OIMUserPassword>password1</wsa1:OIMUserPassword> <wsa1:OIMUserId>user1</wsa1:OIMUserId> </wsa1:OIMUser> <wsa1:lang soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning"> <wsa1:language>en</wsa1:language> <wsa1:sublanguage>US</wsa1:sublanguage> </wsa1:lang> </soapenv:Header> </soapenv:Envelope>
WSSEタグの場合:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1 .0.xsd"> <wsse:UsernameToken> <wsse:Username>user1</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1. 0#PasswordText">password1</wsse:Password> </wsse:UsernameToken> </wsse:Security> <wsa1:lang soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning"> <wsa1:language>en</wsa1:language> <wsa1:sublanguage>US</wsa1:sublanguage> </wsa1:lang> </soapenv:Header> </soapenv:Envelope>
次のSOAP SPMLメッセージは、Oracle Application Server上のSPML Webサービスに対する追加リクエスト処理の例です。
カスタム・セキュリティ・タグを使用:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <wsa1:OIMUser soap:mustUnderstand="0" xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning"> <wsa1:OIMUserId xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning">user1</wsa1:OIMUserId> <wsa1:OIMUserPassword xmlns:wsa1="http://xmlns.oracle.com/OIM/provisioning">password1</wsa1:OIMUserPassword> </wsa1:OIMUser> </soap:Header> <soap:Body> <SPMLv2Document xmlns="http://xmlns.oracle.com/OIM/provisioning"> <addRequest returnData="everything" xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:dsml="urn:oasis:names:tc:DSML:2:0:core"> <data> <dsml:attr name="objectclass"> <dsml:value>Users</dsml:value> </dsml:attr> <dsml:attr name="Users.User ID"> <dsml:value>John Doe</dsml:value> </dsml:attr> <dsml:attr name="Users.First Name"> <dsml:value>John</dsml:value> </dsml:attr> <dsml:attr name="Users.Last Name"> <dsml:value>Doe</dsml:value> </dsml:attr> <dsml:attr name="Organizations.Organization Name"> <dsml:value>Xellerate Users</dsml:value> </dsml:attr> <dsml:attr name="Users.Xellerate Type"> <dsml:value>End-User</dsml:value> </dsml:attr> <dsml:attr name="Users.Role"> <dsml:value>Full-Time</dsml:value> </dsml:attr> <dsml:attr name="Users.Password"> <dsml:value>welcome</dsml:value> </dsml:attr> </data> </addRequest> </SPMLv2Document> </soap:Body> </soap:Envelope>
WSSEセキュリティ・タグを使用:
<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1 .0.xsd"> <wsse:UsernameToken> <wsse:Username>user1</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1. 0#PasswordText">password1</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <SPMLv2Document xmlns="http://xmlns.oracle.com/OIM/provisioning"> <addRequest returnData="everything" xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:dsml="urn:oasis:names:tc:DSML:2:0:core"> <data> <dsml:attr name="objectclass"> <dsml:value>Users</dsml:value> </dsml:attr> <dsml:attr name="Users.User ID"> <dsml:value>John Doe</dsml:value> </dsml:attr> <dsml:attr name="Users.First Name"> <dsml:value>John</dsml:value> </dsml:attr> <dsml:attr name="Users.Last Name"> <dsml:value>Doe</dsml:value> </dsml:attr> <dsml:attr name="Organizations.Organization Name"> <dsml:value>Xellerate Users</dsml:value> </dsml:attr> <dsml:attr name="Users.Xellerate Type"> <dsml:value>End-User</dsml:value> </dsml:attr> <dsml:attr name="Users.Role"> <dsml:value>Full-Time</dsml:value> </dsml:attr> <dsml:attr name="Users.Password"> <dsml:value>welcome</dsml:value> </dsml:attr> </data> </addRequest> </SPMLv2Document> </soapenv:Body> </soapenv:Envelope>
|
Copyright © 2009 Oracle Corporation. All Rights Reserved. |
|