Oracle Identity Managerでは、クライアント・アプリケーションに対して、Service Provisioning Markup Language(SPML)を使用するアイデンティティ管理サービスを提供します。
この章では、Oracle Identity ManagerでサポートされるSPML XSD Webサービス・インタフェースについて説明します。内容は次のとおりです。
この項では、Oracle Identity ManagerでのXSDプロファイルを使用したSPMLサービスの使用について説明します。
Oracle Identity Managerでは、クライアント・アプリケーションでアイデンティティ(ユーザーおよびロール)を管理できるようにする、アイデンティティ管理サービスを提供します。このサービスでは、ユーザー、リソースおよびサービス・プロビジョニング情報の交換のための、OASIS委員会の仕様に基づくXMLフレームワークである、Service Provisioning Markup Language(SPML)が使用されます。
このドキュメントでは、Oracle Identity ManagerでサポートされるSPMLの相互作用をリストおよび説明します。
プロファイル・サポート
SPMLには、XSDプロファイルとDSMLプロファイルの2つのプロファイルがあります。このリリースのOracle Identity Managerでは、XSDプロファイルを使用します。
相互作用のタイプ
SPML仕様では、同期または非同期の相互作用が可能です。
Oracle Identity Managerでは、リクエストの追加、変更、削除、一時停止および再開のための非同期相互作用のみがサポートされています。非同期相互作用の場合、Oracle Identity Managerが保留のステータスで即時に応答し、リクエスタがstatusRequestを発行して現在の状態を取得します。
ユーザー名サービスの場合、すべてのサービスが同期となります。
検索API
アイデンティティ管理レルムの検索APIについては、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスのOracle Identity Management APIを参照してください。
統合インタフェースは、Service Provisioning Markup Language(SPML)の観点から定義されています。Oracle Identity Managerでは、SPMLの実装によって、アイデンティティとロールの管理およびユーザー名の予約機能がサポートされています。
非同期と同期の両方の実行モードがサポートされていますが、すべてのサービスで両方のモードがサポートされているわけではありません。リクエストで無効なモードが指定されていると、サービスは、unsupportedExecutionMode
SPMLエラー・コードを戻します。
SPMLサービスを使用するには、アプリケーションでWebサービス・クライアントを作成する必要があります。このクライアントのWSDLは、次のURLから入手可能です。
http://OIM_HOST:OIM_PORT/spml-xsd/SPMLService?WSDL
別の方法として、ホストされたSPML WebサービスのエンドポイントURLを使用して、WSDLおよびXMLのスキーマ定義に移動することもできます。
XSD(oracle_common_pso.xsd)は、$OIM_HOME/features/spml-xsd.jarから入手可能です。
ユーザー属性またはロール属性を使用してアイデンティティを作成するには、非同期実行モードがサポートされているaddRequest
操作を実装します。リクエスト送信が正常に行われると、リクエスト送信トラッキングIDが戻され、リクエスト・ステータスが保留としてリストされます。
ユーザーを作成するときに、addRequest
操作を使用して、ロール・メンバーシップをそのユーザーに割り当てることもできます。そのためには、typeOfReference
がmemberOf
に設定されたSPML参照機能を使用してロールGUIDをPSO参照IDとして組み込む必要があります。
注意: ユーザー名属性またはパスワード属性が指定されていない場合、適切なプラグインがインストールされていると、これらの属性をOracle Identity Managerで自動生成できます。 |
表32-1に、addRequest操作によるアイデンティティ作成の機能を示します。
表32-1 addRequestによるアイデンティティ作成
項目/機能 | 説明 |
---|---|
SPML実行モード |
非同期のみ。 |
入力 |
[SPMLv2]で定義された オプション(ロール・メンバーシップの参照機能)。 |
出力 |
[SPMLv2]で定義された |
処理 |
追加操作を使用して、アイデンティティを追加できます。必要に応じて、既存のロールをアイデンティティに割り当てる場合があります。
|
例 |
これらの例については、次の付録を参照してください。 |
次のタスクのためのSPML modifyRequest
サービスを実装します。
ロール・メンバーシップの既存のユーザー(アイデンティティ)への割当てまたは既存のユーザーからの取消し
既存のロールの変更
ユーザー属性の変更
表32-2に、modifyRequest操作によるロール・メンバーシップ管理の機能を示します。
表32-2 modifyRequestによるロール・メンバーシップ管理
項目/機能 | 説明 |
---|---|
SPML実行モード |
非同期。 |
入力 |
[SPMLv2]で定義された ロール・メンバーシップを削除するにはmodificationMode=" 参照機能(typeOfReference=" |
出力 |
[SPMLv2]で定義された |
処理 |
この操作では、アイデンティティとロールの両方について、SPML実行モードを確認します。実行モードが無効な場合は、 変更リクエストにアイデンティティPSOオブジェクトが含まれていないか、または無効なGUIDが含まれている場合、この操作により、 customError SPMLカスタム・エラー・コードを使用すると、その他のランタイム・エラーが報告されます。 |
例 |
これらの例については、次の付録を参照してください。 |
表32-3の説明に従って、SPML deleteRequest
サービスを実装し、既存のロールまたはユーザーを削除します。
表32-3 deleteRequestによるロール・メンバーシップの削除
項目/機能 | 説明 |
---|---|
SPML実行モード |
非同期。 |
入力 |
[SPMLv2]で定義された |
出力 |
[SPMLv2]で定義された |
処理 |
deleteRequest操作を使用して、既存のアイデンティティまたは既存のロールを削除できます。 この操作では、アイデンティティとロールの両方について、SPML実行モードを確認します。実行モードが無効な場合は、 削除リクエストにアイデンティティPSOオブジェクトが含まれていないか、または無効なGUIDが含まれている場合、この操作により、
|
例 |
「SPMLの例-ロールの削除」の例を参照してください。 |
ステータス操作を使用すると、リクエスタは、非同期操作が次のステータスであるかどうかを確認できます。
失敗
保留
正常終了
非同期操作の場合、リクエストが送信されると、検証エラー後のエラーをレスポンスで戻すことができません。発生したエラーはステータス・レスポンスで戻されます。statusRequestによってリクエスト・ステータスが失敗として戻される場合、statusResponseによってエラー・メッセージも表示されます。
表32-4に、statusRequest操作の機能を示します。
表32-4 リクエスト・ステータスの確認
項目/機能 | 説明 |
---|---|
SPML実行モード |
同期。 |
入力 |
[SPMLv2]で定義された |
出力 |
[SPMLv2]で定義された |
処理 |
ステータス操作では、非同期操作の識別子を含む属性 操作識別子が無効な場合、 ステータス操作の結果は、 |
例 |
C.19項「SPMLの例-ステータス・リクエスト」の例を参照してください。 |
SPML listTargets
サービスを使用すると、リクエスタは、プロバイダがプロビジョニングに使用できる一連のターゲットを取得できます。サービスによって、次のものも戻されます。
各ターゲットでサポートされているオブジェクト・タイプ
各ターゲットのそれぞれのオブジェクトに対してプロバイダでサポートされている一連の機能
現在サポートされているターゲットはOracle Identity Managerのみであり、サポートされているオブジェクト・タイプはOracle Identity Managerのすべてのオブジェクト・タイプです。
表32-5に、listTargetsによるターゲットの取得の機能を示します。
表32-5 listTargetsによるターゲットの取得
項目/機能 | 説明 |
---|---|
SPML実行モード |
同期。 |
入力 |
[SPMLv2]で定義された |
出力 |
[SPMLv2]で定義された |
処理 |
XMLスキーマのプロファイルのみがサポートされています。別のプロファイル・リクエストの場合には、 単一で静的なプロビジョニング・ターゲット PSOオブジェクト・スキーマ、各PSOに対してサポートされている機能のリストおよび操作データ機能のスキーマを |
一時停止操作を使用すると、リクエスタはユーザーを一時停止できます。
表32-6に、suspendRequest操作の機能を示します。
表32-6 suspendRequestによるユーザーの一時停止
項目/機能 | 説明 |
---|---|
SPML実行モード |
非同期。 |
入力 |
[SPMLv2]で定義された |
出力 |
[SPMLv2]で定義された |
処理 |
この操作には、有効なユーザーPSO IDおよび必要に応じて有効な一時停止日付が必要です。 PSO識別子が無効な場合は、 一時停止操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、 |
例 |
「SPMLの例-ユーザーの一時停止」の例を参照してください。 |
resumeRequest操作を使用すると、リクエスタは一時停止されたユーザーを再開したり有効化できます。
表32-7に、resumeRequest操作の機能を示します。
表32-7 resumeRequestによるユーザーの再有効化
項目/機能 | 説明 |
---|---|
SPML実行モード |
非同期。 |
入力 |
[SPMLv2]で定義された |
出力 |
[SPMLv2]で定義された |
処理 |
この操作には、有効なユーザーPSO IDが必要であり、必要に応じて有効な再開日付を指定します。 PSO識別子が無効な場合は、 再開操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、 |
例 |
「SPMLの例-ユーザーの再開」の例を参照してください。 |
activeRequest操作を使用すると、リクエスタは、指定されたユーザーがアクティブであるか、または一時停止されているかを確認できます。
表32-8に、activeRequest操作の機能を示します。
表32-8 activeRequestによるユーザーが一時停止されているかどうかの確認
項目/機能 | 説明 |
---|---|
SPML実行モード |
同期。 |
入力 |
[SPMLv2]で定義されたactiveRequest要素。 |
出力 |
[SPMLv2]で定義されたactiveResponse要素。 |
処理 |
この操作には、有効なユーザーPSO IDが必要です。 PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。 リクエストが有効であり、指定されたユーザーが存在する場合、プロバイダはユーザー・ステータスを取得する必要があります。 activeRequest操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。 |
例 |
「SPMLの例-ユーザーがアクティブであるかどうかの確認」の例を参照してください。 |
validateUsername
操作を使用すると、リクエスタは、ユーザー名がすでに存在するか、または予約されているかどうかを確認できます。
表32-9に、resumeRequest操作の機能を示します。
表32-9 resumeRequestによるユーザー名の有効性の確認
項目/機能 | 説明 |
---|---|
SPML実行モード |
同期。 |
入力 |
[SPMLv2]で定義された userNameは受け入れられる唯一の入力パラメータです。 |
出力 |
[SPMLv2]で定義された |
処理 |
この操作では、ユーザー名を取得して、このユーザー名が存在しているかどうかを確認します。 処理エラーがSPML |
例 |
「SPMLの例-ユーザー名の検証」の例を参照してください。 |
suggestUsername
操作を使用すると、リクエスタは、指定されたポリシーに対する有効なユーザー名を取得できます。
表32-10に、suggestUsername操作の機能を示します。
表32-10 suggestUsernameによるユーザー名の取得
項目/機能 | 説明 |
---|---|
SPML実行モード |
同期。 |
入力 |
[SPMLv2]で定義された |
出力 |
[SPMLv2]で定義された |
処理 |
この操作では、ユーザー情報を取得し、取得した情報を使用して、適用可能なユーザー名ポリシーに基づいたユーザー名を構成します。 処理エラーがSPML |
例 |
「SPMLの例-ユーザー名の提示」の例を参照してください。 |
この項では、SPML Webサービスを保護する方法について説明します。内容は次のとおりです。
SPML XSD Webサービスでは、Oracle Web Services Security Managerを使用してセキュリティが提供されています。SPML Webサービスは、次のポリシーを使用して保護されています。
注意: SPML XSDプロファイルのWebサービスをロードできるのは、SPML_App_Roleのメンバーであるユーザーによってのみです。これは、追加されたセキュリティに対してのみ行われます。 Webサービスに対するMBeanの構成の詳細は、Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイドを参照してください。 |
SAMLまたはユーザー名トークン・サービス・ポリシー(メッセージ保護付き):
oracle/wss11_username_token_with_message_protection_client_policy
ユーザー名トークンおよびメッセージ保護セキュリティを使用したFusion Applications環境:
oracle/wss11_username_token_with_message_protection_client_policy
デフォルトのポリシーは、Oracle Enterprise Manager Fusion Middleware Controlを使用して変更できます。
サンプルのリクエストは次のようになります。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > <soap:Header> <ns1:Security> <ns1:UsernameToken> <ns1:Username>weblogic</ns1:Username> <ns1:Password>weblogic1</ns1:******> </ns1:UsernameToken> </ns1:Security> </soap:Header> <soap:Body xmlns:ns1="urn:oasis:names:tc:SPML:2:0"> <ns1:listTargetsRequest /> </soap:Body> </soap:Envelope>
デプロイメント時に、管理者はOracle Enterprise Manager Fusion Middleware Controlコンソールを使用して適切なセキュリティ・ポリシーを適用し、サービスを保護できます。Fusion Middleware Controlの使用の詳細は、次のドキュメントを参照してください。
Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイドのセキュリティおよび管理ツールへのアクセスに関する説明
Oracle Identity Manager 11gリリース1(11.1.1)では、XSDプロファイルの一部として次のSPML操作はサポートされていません。
ユーザーの検索
ロールの検索
組織に対するあらゆる操作(作成、変更、削除または検索など)