ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager開発者ガイド
11g リリース1(11.1.1)
B66705-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

32 SPMLサービスの使用

Oracle Identity Managerでは、クライアント・アプリケーションに対して、Service Provisioning Markup Language(SPML)を使用するアイデンティティ管理サービスを提供します。

この章では、Oracle Identity ManagerでサポートされるSPML XSD Webサービス・インタフェースについて説明します。内容は次のとおりです。


関連項目:

カスタム属性を使用したSPMLサービスのカスタマイズの詳細は、「SPMLの例-ユーザーの追加」を参照してください。


32.1 概要

この項では、Oracle Identity ManagerでのXSDプロファイルを使用したSPMLサービスの使用について説明します。

32.1.1 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を参照してください。

32.1.2 統合インタフェース

統合インタフェースは、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から入手可能です。

32.2 アイデンティティの作成(SPMLコア・サービス: addRequest)

ユーザー属性またはロール属性を使用してアイデンティティを作成するには、非同期実行モードがサポートされているaddRequest操作を実装します。リクエスト送信が正常に行われると、リクエスト送信トラッキングIDが戻され、リクエスト・ステータスが保留としてリストされます。

ユーザーを作成するときに、addRequest操作を使用して、ロール・メンバーシップをそのユーザーに割り当てることもできます。そのためには、typeOfReferencememberOfに設定されたSPML参照機能を使用してロールGUIDをPSO参照IDとして組み込む必要があります。


注意:

ユーザー名属性またはパスワード属性が指定されていない場合、適切なプラグインがインストールされていると、これらの属性をOracle Identity Managerで自動生成できます。


表32-1に、addRequest操作によるアイデンティティ作成の機能を示します。

表32-1 addRequestによるアイデンティティ作成

項目/機能 説明

SPML実行モード

非同期のみ。

入力

[SPMLv2]で定義されたaddRequest要素。

オプション(ロール・メンバーシップの参照機能)。

出力

[SPMLv2]で定義されたaddResponse要素。

処理

追加操作を使用して、アイデンティティを追加できます。必要に応じて、既存のロールをアイデンティティに割り当てる場合があります。

customError SPML カスタム・エラー・コードを使用すると、ランタイム・エラーが報告されます。レスポンスでは、検証エラーのみが戻されます。リクエストIDは戻されません。

これらの例については、次の付録を参照してください。


32.3 ユーザー、ロール、属性およびロール・メンバーシップの変更(SPMLコア・サービス: modifyRequest)

次のタスクのためのSPML modifyRequestサービスを実装します。

表32-2に、modifyRequest操作によるロール・メンバーシップ管理の機能を示します。

表32-2 modifyRequestによるロール・メンバーシップ管理

項目/機能 説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたmodifyRequest要素。

ロール・メンバーシップを削除するにはmodificationMode="delete"を使用し、ロール・メンバーシップを追加するにはmodificationMode="add"を使用します。

参照機能(typeOfReference="inheritsFrom")およびPSO IDとしてのロールGUIDを使用して宣言されたロール・メンバーシップ。

出力

[SPMLv2]で定義されたmodifyResponse要素。

処理

modifyRequest操作を使用して、既存のアイデンティティまたは既存のロールを変更できます。

この操作では、アイデンティティとロールの両方について、SPML実行モードを確認します。実行モードが無効な場合は、unsupportedExecutionMode SPMLエラー・コードが戻されます。

変更リクエストにアイデンティティPSOオブジェクトが含まれていないか、または無効なGUIDが含まれている場合、この操作により、malformedRequestまたはinvalidIdentifier SPML不正リクエスト・エラーがそれぞれ戻されます。

customError SPMLカスタム・エラー・コードを使用すると、その他のランタイム・エラーが報告されます。

これらの例については、次の付録を参照してください。


32.4 アイデンティティまたはロールの削除(SPMLコア・サービス: deleteRequest)

表32-3の説明に従って、SPML deleteRequestサービスを実装し、既存のロールまたはユーザーを削除します。

表32-3 deleteRequestによるロール・メンバーシップの削除

項目/機能 説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたdeleteRequest要素。

出力

[SPMLv2]で定義されたdeleteResponse要素。

処理

deleteRequest操作を使用して、既存のアイデンティティまたは既存のロールを削除できます。

この操作では、アイデンティティとロールの両方について、SPML実行モードを確認します。実行モードが無効な場合は、unsupportedExecutionMode SPMLエラー・コードが戻されます。

削除リクエストにアイデンティティPSOオブジェクトが含まれていないか、または無効なGUIDが含まれている場合、この操作により、malformedRequestまたはinvalidIdentifier SPML不正リクエスト・エラーがそれぞれ戻されます。

customError SPMLカスタム・エラー・コードを使用すると、その他のランタイム・エラーが報告されます。

「SPMLの例-ロールの削除」の例を参照してください。


32.5 リクエスト・ステータスの確認(SPMLコア・サービス: statusRequest)

ステータス操作を使用すると、リクエスタは、非同期操作が次のステータスであるかどうかを確認できます。

非同期操作の場合、リクエストが送信されると、検証エラー後のエラーをレスポンスで戻すことができません。発生したエラーはステータス・レスポンスで戻されます。statusRequestによってリクエスト・ステータスが失敗として戻される場合、statusResponseによってエラー・メッセージも表示されます。

表32-4に、statusRequest操作の機能を示します。

表32-4 リクエスト・ステータスの確認

項目/機能 説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたstatusRequest要素。

出力

[SPMLv2]で定義されたstatusResponse要素。

処理

ステータス操作では、非同期操作の識別子を含む属性asyncRequestIDが使用されます。

操作識別子が無効な場合、noSuchIdentifierエラー・コードが戻されます。

ステータス操作の結果は、statusResponse要素のステータス属性に指定されます。

C.19項「SPMLの例-ステータス・リクエスト」の例を参照してください。


32.6 使用可能なターゲットのリスト(SPMLコア・サービス: listTargets)

SPML listTargetsサービスを使用すると、リクエスタは、プロバイダがプロビジョニングに使用できる一連のターゲットを取得できます。サービスによって、次のものも戻されます。

現在サポートされているターゲットはOracle Identity Managerのみであり、サポートされているオブジェクト・タイプはOracle Identity Managerのすべてのオブジェクト・タイプです。

表32-5に、listTargetsによるターゲットの取得の機能を示します。

表32-5 listTargetsによるターゲットの取得

項目/機能 説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたlistTargetsRequest要素。

出力

[SPMLv2]で定義されたlistTargetsResponse要素。

処理

XMLスキーマのプロファイルのみがサポートされています。別のプロファイル・リクエストの場合には、unsupportedProfileエラー・コードが表示されて失敗します。

単一で静的なプロビジョニング・ターゲットOracle Identity Managerがサポートされています。

PSOオブジェクト・スキーマ、各PSOに対してサポートされている機能のリストおよび操作データ機能のスキーマをlistTargetsResponse要素に挿入することによって、レスポンスが生成されます。


32.7 ユーザーの無効化(SPML一時停止サービス: suspendRequest)

一時停止操作を使用すると、リクエスタはユーザーを一時停止できます。

表32-6に、suspendRequest操作の機能を示します。

表32-6 suspendRequestによるユーザーの一時停止

項目/機能 説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたsuspendRequest要素。

出力

[SPMLv2]で定義されたsuspendResponse要素。

処理

この操作には、有効なユーザーPSO IDおよび必要に応じて有効な一時停止日付が必要です。

PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。

一時停止操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。

「SPMLの例-ユーザーの一時停止」の例を参照してください。


32.8 ユーザーの有効化(SPML一時停止サービス: resumeRequest)

resumeRequest操作を使用すると、リクエスタは一時停止されたユーザーを再開したり有効化できます。

表32-7に、resumeRequest操作の機能を示します。

表32-7 resumeRequestによるユーザーの再有効化

項目/機能 説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたresumeRequest要素。

出力

[SPMLv2]で定義されたresumeResponse要素。

処理

この操作には、有効なユーザーPSO IDが必要であり、必要に応じて有効な再開日付を指定します。

PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。

再開操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。

「SPMLの例-ユーザーの再開」の例を参照してください。


32.9 ユーザーがアクティブであるかどうかの確認(SPML一時停止サービス: activeRequest)

activeRequest操作を使用すると、リクエスタは、指定されたユーザーがアクティブであるか、または一時停止されているかを確認できます。

表32-8に、activeRequest操作の機能を示します。

表32-8 activeRequestによるユーザーが一時停止されているかどうかの確認

項目/機能 説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたactiveRequest要素。

出力

[SPMLv2]で定義されたactiveResponse要素。

処理

この操作には、有効なユーザーPSO IDが必要です。

PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。

リクエストが有効であり、指定されたユーザーが存在する場合、プロバイダはユーザー・ステータスを取得する必要があります。

activeRequest操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。

「SPMLの例-ユーザーがアクティブであるかどうかの確認」の例を参照してください。


32.10 ユーザー名の検証(SPMLユーザー名サービス: validateUsername)

validateUsername操作を使用すると、リクエスタは、ユーザー名がすでに存在するか、または予約されているかどうかを確認できます。

表32-9に、resumeRequest操作の機能を示します。

表32-9 resumeRequestによるユーザー名の有効性の確認

項目/機能 説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたvalidateUsernameRequest要素。

userNameは受け入れられる唯一の入力パラメータです。

出力

[SPMLv2]で定義されたvalidateUsernameResponse要素。

処理

この操作では、ユーザー名を取得して、このユーザー名が存在しているかどうかを確認します。

処理エラーがSPML customErrorコードとともに報告されます。

「SPMLの例-ユーザー名の検証」の例を参照してください。


32.11 ユーザー名の取得(SPMLユーザー名: suggestUsername)

suggestUsername操作を使用すると、リクエスタは、指定されたポリシーに対する有効なユーザー名を取得できます。

表32-10に、suggestUsername操作の機能を示します。

表32-10 suggestUsernameによるユーザー名の取得

項目/機能 説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたsuggestUsernameRequest要素。

出力

[SPMLv2]で定義されたsuggestUsernameResponse要素。

処理

この操作では、ユーザー情報を取得し、取得した情報を使用して、適用可能なユーザー名ポリシーに基づいたユーザー名を構成します。

処理エラーがSPML customErrorコードとともに報告されます。

「SPMLの例-ユーザー名の提示」の例を参照してください。


32.12 SPML Webサービスの保護

この項では、SPML Webサービスを保護する方法について説明します。内容は次のとおりです。

32.12.1 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を使用して変更できます。

32.12.2 リクエストの例

サンプルのリクエストは次のようになります。

<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>

32.12.3 ポリシーの適用

デプロイメント時に、管理者はOracle Enterprise Manager Fusion Middleware Controlコンソールを使用して適切なセキュリティ・ポリシーを適用し、サービスを保護できます。Fusion Middleware Controlの使用の詳細は、次のドキュメントを参照してください。

Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイドのセキュリティおよび管理ツールへのアクセスに関する説明

32.13 サポートされていない操作

Oracle Identity Manager 11gリリース1(11.1.1)では、XSDプロファイルの一部として次のSPML操作はサポートされていません。