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から入手可能です。
次を実行して、SPMLがOracle Identity Managerと連動することを確認します。
Oracle Identity Managerでは、SPMLの管理ロールが提供されます。この管理ロールを持つユーザーは、すべてのユースケースのSPMLリクエストを実行できます。SPML管理ロールの名前は、SPML管理者です。
SPML管理者の管理ロールには、次の権限があります。
リクエストを介したユーザーの作成、変更および削除
すべての属性でのユーザーの検索
リクエストを介したユーザー・ステータスの有効化
リクエストを介したユーザー・ステータスの無効化
リクエストを介したロール・メンバーシップの追加
リクエストを介したロール・メンバーシップの削除
すべての属性でのロールの検索
リクエストを介したロールの作成、変更および削除
SPML管理者の管理ロールは、最上位組織に公開されるグローバル管理ロールです。そのため、最上位組織のシステム管理者または組織管理者のみが、最上位組織のスコープ内で任意のユーザーにこの管理ロールを割り当てることができます。
Oracle Identity Managerの新しいデプロイメントの場合、デフォルトではSPML管理者の管理ロールはどのユーザーにも割り当てられません。したがって、最上位組織のシステム管理者または組織管理者は、関連するユーザーにこのロールを手動で割り当てる必要があります。また、「階層を含める」または「下位組織を含める」オプションを有効にして、最上位組織のスコープ内でSPML管理者の管理ロールを割り当てることもできます。その結果、SPML管理者の管理ロールのすべての権限が、Oracle Identity Managerのすべての組織を対象として、ユーザーに割り当てられます。
注意: Oracle Identity Managerのデプロイメントをアップグレードした場合は、SPML管理者の管理ロールを割り当てるために既存のSPMLユーザーがアップグレードされるため、これらのユーザーは引き続きSPMLリクエストを実行できます。 |
ユーザーにSPML管理者の管理ロールを割り当てるには、次の手順を実行します。
Oracle Identity Self Serviceにログインします。SPML管理者の管理ロールを新しいユーザーに割り当てる場合は、そのユーザーを作成します。
最上位組織を開いて「管理ロール」タブをクリックします。
SPML管理者の管理ロールを選択し、ユーザーにこのロールを割り当てます。
新たに追加したメンバーシップを変更して「下位組織を含める」オプションを選択し、「適用」をクリックします。
SPMLリクエストが自動承認されるようにするには、自動承認ポリシー・ルールが必要です。Oracle Identity Manager 11gリリース2 (11.1.2)には、リクエスト・テンプレートがありません。そのため、各SPMLユーザーに対し、システム管理者が手動で自動承認ポリシー・ルールを作成する必要があります。
作成する自動承認ポリシーはユーザー・ログインに基づくことができ、各ポリシーの承認プロセス構成は「自動承認」として選択する必要があります。各SPML操作(ユーザーの作成、ユーザーの変更、ロールの作成など)に対してSPMLユーザーが要求するすべてのSPMLリクエストがリクエスト・レベルおよび操作レベルで承認されるように、これらの操作ごとに自動承認ポリシーを作成する必要があります。
注意: ロールの作成、ロールの変更、ロールの削除操作には、リクエスト・レベルの承認ポリシーのみが必要です。 |
自動承認ポリシー・ルールを作成するには、次の手順を実行します。
次に対して新しい自動承認ポリシー・ルールを作成します。
ユーザーの作成(リクエスト・レベル)
ユーザーの作成(操作レベル)
ユーザーの変更(リクエスト・レベル)
ユーザーの変更(操作レベル)
ユーザーの削除(リクエスト・レベル)
ユーザーの削除(操作レベル)
ユーザーの有効化(リクエスト・レベル)
ユーザーの有効化(操作レベル)
ユーザーの無効化(リクエスト・レベル)
ユーザーの無効化(操作レベル)
ロールの割当て(リクエスト・レベル)
ロールの割当て(操作レベル)
ロールの削除(リクエスト・レベル)
ロールの削除(操作レベル)
ロールの作成(リクエスト・レベル)
ロールの変更(リクエスト・レベル)
ロールの削除(リクエスト・レベル)
ユーザー・ログインに基づいて各ポリシーのルールを作成します。ユーザー・ログインの評価で大/小文字が区別されることを確認してください。図32-1に、サンプル・ルールを示します。
注意: ユーザー・ログインに基づき、SPMLユーザーに対して作成された自動承認ポリシーでは、リクエストがSPML、UIまたはその他のフローを介して要求されているかに関係なく、ユーザーが要求したすべてのリクエストが自動承認されます。 |
ユーザー属性またはロール属性を使用してアイデンティティを作成するには、非同期実行モードがサポートされているaddRequest
操作を実装します。リクエスト送信が正常に行われると、リクエスト送信トラッキングIDが戻され、リクエスト・ステータスが保留としてリストされます。
ユーザーを作成するときに、addRequest
操作を使用して、ロール・メンバーシップをそのユーザーに割り当てることもできます。そのためには、typeOfReference
がmemberOf
に設定されたSPML参照機能を使用してロールGUIDをPSO参照IDとして組み込む必要があります。
注意:
|
表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]で定義された |
処理 |
ステータス操作では、非同期操作の識別子を含む属性 操作識別子が無効な場合、 ステータス操作の結果は、 |
例 |
「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リリース2 (11.1.2)では、XSDプロファイルの一部として次のSPML操作はサポートされていません。
ユーザーの検索
ロールの検索
組織に対するあらゆる操作(作成、変更、削除または検索など)
SPML XSD Webサービスは、Oracle Identity Managerをバックエンド・サービスとして使用して、Fusionアプリケーションにプロビジョニング機能を提供します。SPML Webサービスの主要ビルディング・ブロックは、プロビジョニング対象となるオブジェクトを定義するSPML Provisioning Service Object(PSO)です。PSOの例としては、アイデンティティやロールがあげられます。
この付録では、サポートされているPSO属性とそのLDAPマッピングを示し、Oracle Identity Managerの属性における文字制限について説明します。最後に、アプリケーションからSPML Webサービスに渡すことができるその他の操作データについて説明します。この章には次の項目があります。
表32-11に、Oracle Identity ManagerでのSPML実装でサポートされているアイデンティティ属性、およびこれらの属性とLDAPオブジェクト/属性のマッピングを示します。
注意: 「構文」列は、関連する属性プロパティ(型、必須かどうかなど)を示しています。 |
表32-11 アイデンティティのPSO属性
SPML属性名 | 構文 | 説明 | LDAPマッピング(Oracle Internet Directory) |
---|---|---|---|
ID |
文字列、読取り専用、必須、単一 |
変更リクエストでユーザーを識別するために使用される識別子。 |
orclUserV2: orclguid |
activeEndDate |
タイムスタンプ、単一 |
ユーザーの終了日時。 |
orclUserV2: orclActiveEndDate |
activeStartDate |
タイムスタンプ、単一 |
ユーザーのアクティブ化日時。 |
orclUserV2: orclActiveStartDate |
commonName |
文字列、 必須 |
個人の共通名(通常は、個人のフルネームに同じバリエーションを加えたものです)。 |
person: cn |
countryName |
文字列、単一 |
個人の勤務先の国(2文字の[ISO3166]国コードで表されます)。 |
orclUserV2: c |
departmentNumber |
文字列、単一 |
この個人が所属する組織内の部門コード。数字のみまたは英数字を指定できます。 |
inetOrgPerson: departmentNumber |
description |
文字列、単一 |
個人に関する判読可能な説明。 |
person: description |
displayName |
文字列、単一、MLS |
個人のエントリを表示するときに使用する優先名。 多言語サポート(MLS)に対応しており、ロケールの言語値(「en」や「fr」など)も指定できます。 |
inetOrgPerson: displayName |
employeeNumber |
文字列、単一 |
個人に割り当てられる数字または英数字の識別子(通常は、入社順や組織との関連に基づきます)。 |
inetOrgPerson: employeeNumber |
employeeType |
文字列、単一 |
従業員のタイプを識別します。有効な値のリストは、表32-12を参照してください。 |
inetOrgPerson: employeeType |
facsimileTelephoneNumber |
文字列、単一 |
個人の業務用FAX端末の電話番号。 |
organizationalPerson: facsimileTelephoneNumber |
generationQualifier |
文字列、単一 |
一般に個人名の接尾辞部となる名前文字列(「III」、「3rd」、「Jr.」など)。 |
N/A |
givenName |
文字列、単一 |
個人名の一部となる名前文字列(姓以外、名など)。 |
inetOrgPerson: givenName |
hireDate |
タイムスタンプ、単一 |
入社日。 |
orclUserV2: orclHireDate |
homePhone |
単純、文字列 |
個人に関連付けられている自宅電話番号。 |
inetOrgPerson:homePhone |
homePostalAddress |
単純、文字列 |
個人の自宅住所。 |
inetOrgPerson: homePostalAddress |
initials |
文字列、単一 |
個人名の一部またはすべて(姓以外)。 |
inetOrgPerson: initials |
localityName |
単純、文字列 |
勤務先の地域や場所の名前(市区町村、郡、その他の地理的地域など)。 |
N/A |
|
単純、文字列 |
個人の業務用インターネット・メール・アドレス(メールボックス[RFC2821]形式)。 |
inetOrgPerson: mail |
manager |
単純、文字列 |
個人のマネージャ。 |
N/A |
middleName |
文字列、単一 |
個人のミドル・ネーム。 |
orclUserV2: middleName |
mobile |
単純、文字列 |
個人に関連付けられている携帯電話番号。 |
inetOrgPerson: mobile |
organization |
文字列、単一 |
組織の名前(my_companyなど)。 |
organization |
organizationUnit |
文字列、単一 |
組織内の単位の名前(IT Supportなど)。 |
organizationalUnitName |
pager |
単純、文字列 |
個人の業務用ページャ電話番号。 |
inetOrgPerson: pager |
password |
文字列、単一 |
ユーザーのパスワード。 |
person: userPassword |
postalAddress |
文字列、単一 |
郵便業務で個人にサービスを提供するために使用される勤務先住所。 |
organizationalPerson: postalAddress |
postalCode |
文字列、単一 |
郵便業務で個人の勤務先の郵便ゾーンを識別するために使用されるコード。 |
organizationalPerson: postalCode |
postOfficeBox |
文字列、単一 |
郵便業務で使用される私書箱識別子(カスタマは、郵便局の敷地内で私書箱を通じて郵便物を受け取るように手配することができます)。 |
organizationalPerson: postOfficeBox |
preferredLanguage |
文字列、単一 |
個人の優先文字言語または優先会話言語。これは、国際化対応や人間とコンピュータの対話に役立ちます。この属性タイプの値は、[RFC2068]に定義されたAccept-Languageヘッダー・フィールドの定義に準拠する必要があります(ただし、1つの例外として、シーケンス"Accept-Language" ":"は省略してください)。 |
inetOrgPerson: preferredLanguage |
state |
文字列、単一 |
個人の勤務先の都道府県の完全名。 |
organizationalPerson: st |
street |
文字列、単一 |
個人の勤務先住所の場所情報(つまり、通り名、土地、番地)。 |
organizationalPerson: street |
surname |
文字列、単一 |
個人の姓の名前文字列。 |
person: sn |
telephoneNumber |
文字列、単一 |
個人の勤務先電話番号。 |
organizationalPerson: telephoneNumber |
title |
文字列、単一 |
組織における個人の役職。 |
organizationalPerson: title |
username |
文字列、単一 |
個人に関連付けられているコンピュータ・システム・ログイン名。 |
uid |
userType |
文字列、単一 |
ユーザーのタイプ。この属性は、エンドユーザーにDesign Consoleへのアクセスを提供するために使用します。使用可能な値はtrueとfalseです。 |
表32-12に、employeeType
属性の有効な値を示します。
表32-12 employeeTypeの有効な値
値 | 意味 |
---|---|
Full-Time |
フルタイムの従業員 |
Part-Time |
パートタイムの従業員 |
Temp |
Temp |
Intern |
Intern |
Consultant |
Consultant |
Contractor |
Contractor |
EMP |
従業員 |
CWK |
派遣就業者 |
NONW |
非就業者 |
OTHER |
その他の従業員タイプ |
注意: Oracle Identity Managerによって渡されるのは、「値」列に示すコードのみです。各コードの意味を参考のために記載しています。 |
Oracle Identity Managerの機能をサポートするためのカスタム属性が用意されています。これらの属性は、Oracle Identity Managerに存在し(ユーザー定義のフィールドを追加した場合など)、PSOには存在しません。
マッピングをエンドツーエンドで機能させるには、カスタム属性名を対応するリクエスト・データセットで指定された属性名と一致させる必要があります。
次に、カスタム属性の例をいくつか紹介します。
... <data> <pso:identity> <pso:attributes> <pso:attr name="Number Format"> <pso:value>#,##0.##[.,]</pso:value> </pso:attr> <pso:attr name="Currency"> <pso:value>USD</pso:value> </pso:attr> </attributes> ...
表32-13に、Oracle Identity ManagerでのSPML実装でサポートされているロール属性、およびこれらの属性とLDAPオブジェクト/属性のマッピングを示します。
表32-13 ロールのPSO属性
属性名 | 構文 | 説明 |
---|---|---|
ID |
文字列、読取り専用、必須、単一 |
ロールを一意に識別するPSO識別子。通常はディレクトリのGUIDです。 |
commonName |
文字列、必須、MLS |
ロールの共通名。 |
description |
単一 |
ロールに関する判読可能な説明。 |
displayName |
文字列、単一、MLS |
ロールのエントリを表示するときに使用する優先名。 |
Oracle Identity Managerの機能をサポートするためのカスタム属性が用意されています。これらの属性は、Oracle Identity Managerに存在し、PSOには存在しません。
マッピングをエンドツーエンドで機能させるには、カスタム属性名を対応するリクエスト・データセットで指定された属性名と一致させる必要があります。
次に、カスタム・ロール属性の例を紹介します。
... <pso:attributes> <pso:attr name="Role Category Name"> <pso:value>Cat1</pso:value> </pso:attr> ...
Role Category Nameは特別なカスタム・ロール属性です。これはロールの名前空間です。それぞれのロールがいずれかのロール・カテゴリに属しています。新しいロールの作成時に指定できます。指定しなかった場合は、デフォルトのロール・カテゴリが選択されます。各ロール・カテゴリおよびロール名によってロールが一意に識別されます。
表32-14に、Oracle Identity ManagerでのSPML実装でサポートされているプリファレンス属性を示します。
表32-14 プリファレンス属性
属性名 | 構文 | 説明 | LDAPマッピング |
---|---|---|---|
数値書式 |
String |
数値の表示書式 |
orclNumberFormat 値は次のとおりです。 #,##0.##[.,] #,##0.###[\u00A0,] #,##0.### #,##0.###;#,##0.###- #,##0.###[.,] #,##0.###;(#,##0.###)[.,] #,##0.##[\u00A0,] #,##0.###['.] #,##0.###[',] |
通貨 |
String |
通貨に使用する必要がある記号 |
orclCurrency 値の例は次のとおりです。 USD YUN NZD INR |
日付書式 |
String |
日付の表示書式 |
orclDateFormat 値は次のとおりです。 MM-dd-yyyy MM-dd-yy MM.dd.yyyy MM.dd.yy MM/dd/yyyy MM/dd/yy M-d-yyyy M-d-yy M.d.yyyy M.d.yy M/d/yyyy M/d/yy dd-MM-yyyydd-MM-yy d-M-yyyy d-M-yy dd.MM.yyyy dd.MM.yy d.M.yyyy d.M.yy dd/MM/yyyy dd/MM/yy d/M/yyyy d/M/yy yyyy-MM-dd yy-MM-dd yyyy-M-d yy-M-d yyyy.MM.dd yy.MM.dd yyyy.M.d yy.M.d yy. M. d yyyy/MM/dd yy/MM/dd yyyy/M/d yy/M/d |
時間書式 |
String |
時間の表示書式 |
orclTimeFormat 値は次のとおりです。 HH.mm HH.mm.ss HH:mm HH:mm:ss H:mm H:mm:ss H.mm H.mm.ss a hh.mm a hh.mm.ss a hh:mm a hh:mm:ss ah:mm ah:mm:ss hh.mm a hh.mm.ss a hh:mm a hh:mm:ss a |
埋込みヘルプ |
String |
埋込みヘルプを表示するかどうか |
orclEmbeddedHelp 値は次のとおりです。 true false |
フォント・サイズ |
String |
フォントのサイズ |
orclFontSize 値は次のとおりです。 LARGE MEDIUM |
色のコントラスト |
String |
色のコントラスト |
orclColorContrast 値は次のとおりです。 STANDARD HIGH |
アクセシビリティ・モード |
String |
ユーザーのアクセシビリティ・モード |
orclAccessibilityMode 値は次のとおりです。 screenReader inaccessible default |
FA言語 |
String |
デフォルトの優先言語 |
orclFALanguage |
ユーザー名優先言語 |
String |
ユーザーの表示名を示すためだけに使用される優先言語 注意: この属性の設定値はOracle Identity Managerでは使用されません。 |
orclDisplayNameLanguagePreference |
この項では、Oracle Identity Managerの属性に適用される文字制限を示します。これらの制限に従わないと、属性を使用して操作を実行したときにエラーが発生します。
英数字(aからz、AからZ、および0から9)とアンダースコア文字(_)は、すべてのOracle Identity Manager属性で使用できます。
Passwordフィールドでは次の特殊文字を使用できます。
パーセント記号(%)
プラス記号(+)
等号(=)
カンマ(,)
円記号(\)
一重引用符(')
スラッシュ(/)
縦線(|)
一重引用符(')は、次の属性でのみ使用できます。
ログイン
マネージャID
名
姓
ミドル・ネーム
グループ名
組織名
リソース名
セミコロン(;)はアクセス・ポリシー名でのみ使用できます。
次の特殊文字は、Oracle Identity Managerのどの属性でもサポートされていません。
ピリオド(.)
シャープ記号(#)
スラッシュ(/)
パーセント記号(%)
等号(=)
縦線(|)
プラス記号(+)
カンマ(,)
円記号(\)
二重引用符(")
小なり記号(<)
大なり記号(>)
HCM Fusionアプリケーションなどのリクエスト・アプリケーションは、SPMLリクエスタとして動作します。アプリケーションでは、PSOデータ以外に、いくつかの操作データをSPML Webサービスに渡すことができます。この項では、アプリケーションが操作データを渡す仕組みについて説明します。
操作ごとにリクエスタIDを渡すことができます。Fusionアプリケーションがリクエストで提示する資格証明は、アプリケーションIDです。監査の目的で、リクエスタIDを渡すこともできます。Oracle Identity Managerでは、操作の実際のリクエスタとして、アプリケーションIDのかわりにこのIDが監査されます。
リクエスタIDと一緒に、リクエストの理由も指定できます。
次に、操作データの例を示します。
... </pso:identity> </data> <capabilityData capabilityURI="http://xmlns.oracle.com/idm/identity/OperationData" mustUnderstand="true"> <operationData xmlns="http://xmlns.oracle.com/idm/identity/OperationData" requestorGUID="1" justification="i need this account"> </capabilityData> </addRequest>
アプリケーションは、なんらかの参照データをSPMLに渡すことで、コールバックを受け取ったときに、コンテキストでそのコールバックに対して参照データによって識別されるようにする必要もあります。これはパススルー・データであり、Oracle Identity Managerでは無視されますが、コールバックには返されます。
次に、<LdapRequestId>を扱った例を示します。
... ... </pso:identity> </data> <capabilityData capabilityURI="http://xmlns.oracle.com/idm/identity/OperationData" mustUnderstand="true"> <operationData xmlns="http://xmlns.oracle.com/idm/identity/OperationData" requestorGUID="1" justification="i need this account"> <LdapRequestId xmlns="http://xmlns.oracle.com/apps/hcm/users/ldapRequestService/">102329090340 </operationData> </capabilityData> </addRequest>
この付録では、次のSPML XSDの例を紹介します。
次に、リクエストを示します。
<addRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier" targetID="string"> <!--Zero or more repetitions:--> <data> <!--You have a CHOICE of the next 3 items at this level--> <pso:identity> <!--Optional:--> <pso:attributes> <!--Here, My Attribute is a UDF, with 'My Attribute' also added in CreateUserDataset.xml --> <pso:attr name="My Attribute"> <pso:value>New Value</pso:value> </pso:attr> </pso:attributes> <!--Optional:--> <pso:activeEndDate>2009-06-12T16:00:00</pso:activeEndDate> <!--Optional:--> <pso:activeStartDate>2009-06-11T18:00:00</pso:activeStartDate> <pso:commonName> <pso:value>All Optional Values</pso:value> </pso:commonName> <!--Optional:--> <pso:countryName>India</pso:countryName> <!--Optional:--> <pso:departmentNumber> <!--1 or more repetitions:--> <pso:value>123456</pso:value> </pso:departmentNumber> <!--Optional:--> <pso:description> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>All Optional Fields Profile</pso:value> </pso:values> </pso:description> <!--Optional:--> <pso:displayName> <!--1 or more repetitions:--> <pso:value locale="en">All Optional Values</pso:value> </pso:displayName> <!--Optional:--> <pso:employeeNumber>24073</pso:employeeNumber> <!--Optional:--> <pso:employeeType> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>Part-Time</pso:value> </pso:values> </pso:employeeType> <!--Optional:--> <pso:facsimileTelephoneNumber> <!--1 or more repetitions:--> <pso:number>08041085304</pso:number> </pso:facsimileTelephoneNumber> <!--Optional:--> <pso:generationQualifier> <!--1 or more repetitions:--> <pso:value>II</pso:value> </pso:generationQualifier> <!--Optional:--> <pso:givenName> <!--1 or more repetitions:--> <pso:value>OptionalGivenName</pso:value> </pso:givenName> <!--Optional:--> <pso:hireDate>2009-06-11T16:00:00</pso:hireDate> <!--Optional:--> <pso:homePhone> <!--1 or more repetitions:--> <pso:number>9999999999</pso:number> </pso:homePhone> <!--Optional:--> <pso:homePostalAddress> <!--1 or more repetitions:--> <pso:value>marathahalli</pso:value> </pso:homePostalAddress> <!--Optional:--> <pso:initials> <!--1 or more repetitions:--> <pso:value>SJ</pso:value> </pso:initials> <!--Optional:--> <pso:localityName> <!--1 or more repetitions:--> <pso:value>Munekolala</pso:value> </pso:localityName> <!--Optional:--> <!--pso:mail> <pso:value>jdong12@mycompany.com</pso:value> </pso:mail--> <!--Optional:--> <pso:middleName>MiddleName</pso:middleName> <!--Optional:--> <pso:mobile> <!--1 or more repetitions:--> <pso:number>9886078373</pso:number> </pso:mobile> <!--Optional:--> <pso:organization> <pso:value>2</pso:value> </pso:organization> <!--Optional:--> <pso:organizationUnit> <pso:value>Marketing</pso:value> </pso:organizationUnit> <!--Optional:--> <pso:pager> <!--1 or more repetitions:--> <pso:number>7777</pso:number> </pso:pager> <!--Optional:--> <pso:password> <!--1 or more repetitions:--> <pso:value>saijha</pso:value> </pso:password> <!--Optional:--> <pso:postalAddress> <!--1 or more repetitions:--> <pso:value>Marathahalli</pso:value> </pso:postalAddress> <!--Optional:--> <pso:postalCode> <!--1 or more repetitions:--> <pso:value>560037</pso:value> </pso:postalCode> <!--Optional:--> <pso:postOfficeBox> <!--1 or more repetitions:--> <pso:value>999</pso:value> </pso:postOfficeBox> <!--Optional:--> <pso:preferredLanguage>en</pso:preferredLanguage> <!--Optional:--> <pso:state> <!--1 or more repetitions:--> <pso:value>Karnataka</pso:value> </pso:state> <!--Optional:--> <pso:street> <!--1 or more repetitions:--> <pso:value>Satyam Street</pso:value> </pso:street> <!--Optional:--> <pso:surname> <pso:values> <!--1 or more repetitions:--> <pso:value>Jha</pso:value> </pso:values> </pso:surname> <!--Optional:--> <pso:telephoneNumber> <!--1 or more repetitions:--> <pso:number>08041085304</pso:number> </pso:telephoneNumber> <!--Optional:--> <pso:title> <pso:value>Mr</pso:value> </pso:title> <!--Optional:--> <pso:username> <!--1 or more repetitions:--> <pso:value>jsmith</pso:value> </pso:username> <pso:manager>5</pso:manager> </pso:identity> </data> </addRequest>
次に、ユーザー・ログインがすでに存在する場合のユーザーの追加レスポンスの例を示します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/> <env:Body> <ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="failure" error="malformedRequest" extendedError="IAM-3076048"> <ns3:errorMessage>username jsmith already exists.</ns3:errorMessage> </ns3:addResponse> </env:Body> </env:Envelope>
次に、単一値のみを受け入れる属性に対して複数値が渡された場合のユーザーの追加レスポンスの例を示します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="pending" requestID="5" error="malformedRequest" extendedError="IAM-3071022"><ns3:errorMessage>The attribute commonName is not multi-language enabled in OIM. Only the value John Smith will be saved.</ns3:errorMessage> <ns3:errorMessage>The attribute organization is not multi-language enabled in OIM. Only the value 1 will be saved. </ns3:errorMessage> </ns3:addResponse> </env:Body> </env:Envelope>
注意:
|
次に、リクエストを示します。
<deleteRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier" targetID="string"> <psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" /> </deleteRequest>
次に、レスポンスを示します。
<ns9:ResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns2="urn:oasis:names:tc:SPML:2:0" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="19" status="pending"/>
次に、リクエストを示します。
<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="string" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier"> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true" /> <psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" /> <modification modificationMode="add"> <component path="/identity" namespaceURI="http://www.w3.org/TR/xpath20" /> <data> <pso:identity> <pso:initials> <!--1 or more repetitions:--> <pso:value>J S</pso:value> </pso:initials> </pso:identity> </data> </modification> <modification modificationMode="replace"> <component path="/identity" namespaceURI="http://www.w3.org/TR/xpath20" /> <data> <pso:identity> <pso:localityName> <!--1 or more repetitions:--> <pso:value>new_locality</pso:value> </pso:localityName> <pso:homePhone> <!--1 or more repetitions:--> <pso:number>0123456789</pso:number> </pso:homePhone> <pso:commonName> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>FR Alice Krug1</pso:value> </pso:values> </pso:commonName> </pso:identity> </data> </modification> <modification modificationMode="delete"> <component path="/identity" namespaceURI="http://www.w3.org/TR/xpath20" /> <data> <pso:identity> <pso:pager> <!--1 or more repetitions:--> <pso:number>333</pso:number> </pso:pager> </pso:identity> </data> </modification> </modifyRequest>
次に、レスポンスを示します。
<ns9:ModifyResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns2="urn:oasis:names:tc:SPML:2:0" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="15" status="pending"/>
次に、リクエストを示します。
<resumeRequest xmlns="urn:oasis:names:tc:SPML:2:0:suspend" requestID="120"> <psoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" /> </resumeRequest>
次に、レスポンスを示します。
<ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="120" status="pending"/>
次に、リクエストを示します。
<ns4:suggestUsernameRequest xmlns:ns4="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns2="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns3="http://xmlns.oracle.com/idm/identity/PSO"> <ns2:identity> <ns3:givenName> <ns3:value>testfn</ns3:value> </ns3:givenName> <ns3:surname> <ns3:values> <ns3:value>testln</ns3:value> </ns3:values> </ns3:surname> </ns2:identity> </ns4:suggestUsernameRequest>
次に、レスポンスを示します。
<ns9:SuggestUsernameResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns9="oasis:names:tc:SPML:2:0" status="success"> <ns3:username>testfn.testln@mycompany.com</ns3:username> </ns9:SuggestUsernameResponseType>
次に、リクエストを示します。
<suspendRequest xmlns="urn:oasis:names:tc:SPML:2:0:suspend" requestID="139"> <psoID ID="6C9B96E99FC8DC32E040E50A3D5252F5"/> </suspendRequest>
次に、レスポンスを示します。
<ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="28" status="pending"/><ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="139" status="pending"/>
次に、リクエストを示します。
<validateUsernameRequest xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"> <username>testfn.testln</username> </validateUsernameRequest>
次に、レスポンスを示します。
<ns9:ValidateUsernameResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns9="oasis:names:tc:SPML:2:0" valid="true" status="success"/>
次に、リクエストを示します。
<activeRequest xmlns="urn:oasis:names:tc:SPML:2:0:suspend" requestID="143"> <psoID ID="5" targetID="string"/> </activeRequest>
次に、レスポンスを示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns4:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns3="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns4="oasis:names:tc:SPML:2:0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ActiveResponseType" active="true" requestID="143" status="success" />
次に、リクエストを示します。
<lookupUsernamePolicyRequest xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"> </lookupUsernamePolicyRequest>
次に、レスポンスを示します。
<ns9:LookupUsernamePolicyResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns9="oasis:names:tc:SPML:2:0" status="success" <ns3:description>Generates user name based on email id if it is available, else generate based on first name and last name appended with domain name.</ns3:description> >
注意: ポリシーの説明を特定のロケールで表示するには、ペイロードにロケール属性を設定します。このロケールがサポートされていない場合は、デフォルトでは、次に示すようにサーバー・ロケールで表示されます。 <lookupUsernamePolicyRequest locale="th" xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"> </lookupUsernamePolicyRequest> |
次に、ユーザー(アイデンティティ)の作成リクエストを示します。
注意:
|
<addRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:spml="urn:oasis:names:tc:SPML:2:0" executionMode="asynchronous" policyURI="create_identity_policy_prc02.xml"> <spml:data xsi:type="spml:PSOType"> <identity xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO"> <pso:commonName> <pso:values> <pso:value>John Doe</pso:value> </pso:values> </pso:commonName> <pso:displayName> <pso:value>John Doe</pso:value> </pso:displayName> <pso:givenName> <pso:value>John</pso:value> </pso:givenName> <pso:mail> <pso:value>john.doe@acme.com</pso:value> </pso:mail> <pso:middleName/> <pso:organization> <pso:values> <pso:value>ACME, Inc.</pso:value> </pso:values> </pso:organization> <pso:password> <pso:value>qwert</pso:value> </pso:password> <pso:surname> <pso:values> <pso:value>Doe</pso:value> </pso:values> </pso:surname> <pso:username> <pso:value>jdoe</pso:value> </pso:username> </identity> </spml:data> <spml:capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true" > <reference xmlns="urn:oasis:names:tc:SPML:2:0:reference" typeOfReference="memberOf"> <toPsoID ID="15"/> <!--To make the user a member of a default role--> </reference> <reference xmlns="urn:oasis:names:tc:SPML:2:0:reference" typeOfReference="memberOf"> <toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5"/> </reference> </spml:capabilityData> </addRequest>
次に、レスポンスを示します。
<spml:addResponse xmlns:spml="urn:oasis:names:tc:SPML:2:0" status="pending" requestID="10821"/>
次に、一部のロールが無効な場合のユーザーの追加とロールの割当てレスポンスの例を示します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="pending" requestID="5" error="malformedRequest" extendedError="IAM-3071022"> <ns3:errorMessage>Request contains an invalid Id/Guid identifier - xyzxyzxyz.</ns3:errorMessage> </ns3:addResponse> </env:Body> </env:Envelope>
次に、リクエストの例を示します。
注意: SPMLのロール・メンバーシップの追加を介してユーザーに付与できるのは、次のいずれかのロールのみです。
SPMLを介した他のすべてのロール付与の試行は、認可チェックに失敗します。SPMLのロール付与が機能するには、UIまたはAPIを使用して関連する組織にこれらのロールを明示的に公開する必要があります。 |
<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="gant_role_01"> <psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" /> <modification modificationMode="add"> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true"> <reference xmlns="urn:oasis:names:tc:SPML:2:0:reference" typeOfReference="memberOf"> <toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" /> </reference> </capabilityData> </modification> </modifyRequest>
次に、レスポンスの例を示します。
<spml:modifyResponse xmlns:spml="urn:oasis:names:tc:SPML:2:0" status="pending" requestID="10822"/>
次に、リクエストを示します。
<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="revoke_role_01"> <psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" /> <modification modificationMode="delete"> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true"> <reference xmlns="urn:oasis:names:tc:SPML:2:0:reference" typeOfReference="memberOf"> <toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" /> </reference> </capabilityData> </modification> </modifyRequest>
次に、レスポンスを示します。
<spml:modifyResponse xmlns:spml="urn:oasis:names:tc:SPML:2:0" status="pending" requestID="10826"/>
次に、リクエストを示します。
<addRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en_us" policyURI="Role Creation" requestID="string" returnData="identifier" targetID="string"> <!--Zero or more repetitions:--> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true" /> <data> <!--You have a CHOICE of the next 3 items at this level--> <pso:role> <pso:attributes> <pso:attr name="Role Category Name"> <!-- pso:value>OIM Roles</pso:value--> <pso:value>Default</pso:value> </pso:attr> </pso:attributes> <pso:commonName> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>TempAdmin</pso:value> </pso:values> </pso:commonName> <pso:description> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>Temporary Administrator</pso:value> </pso:values> </pso:description> <pso:displayName> <!--pso:value locale="en">Alice Krug_en_US</pso:value--> <!--pso:value locale="fr">Alice Kru_fr</pso:value--> <pso:value locale="base">Alice Kru_base</pso:value> </pso:displayName> </pso:role> </data> </addRequest>
次に、レスポンスを示します。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="pending" requestID="21792"/> </env:Body> </env:Envelope>
次に、リクエストを示します。
<addRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier" targetID="string"> <data> <!--You have a CHOICE of the next 3 items at this level--> <pso:role> <pso:commonName> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>TempAdmin</pso:value> </pso:values> </pso:commonName> <pso:description> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>Temporary Administrator</pso:value> </pso:values> </pso:description> </pso:role> </data> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true"> <reference typeOfReference="inheritsFrom" xmlns="urn:oasis:names:tc:SPML:2:0:reference"> <toPsoID ID="6C9B96E99F77DC32E040E50A3D5252F5" /> </reference> </capabilityData> </addRequest>
次に、レスポンスを示します。
<ns9:AddResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns2="urn:oasis:names:tc:SPML:2:0" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="22" status="pending"/>
次に、リクエストを示します。
<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="string" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier"> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true" /> <psoID ID="role:6C9B96E99FC8DC32E040E50A3D5252F5" /> <modification modificationMode="replace"> <component path="/role" namespaceURI="http://www.w3.org/TR/xpath20" /> <data> <pso:role> <pso:description> <!--1 or more repetitions:--> <pso:values> <pso:value>UK Updated Administrator</pso:value> </pso:values> </pso:description> </pso:role> </data> </modification> </modifyRequest>
次に、レスポンスを示します。
<ns9:ModifyResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns2="urn:oasis:names:tc:SPML:2:0" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="24" status="pending"/>
次に、リクエストを示します。
<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="string" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier"> <psoID ID="role:26" targetID="target" /> <modification modificationMode="modify"> <component path="/role" namespaceURI="http://www.w3.org/TR/xpath20" /> <data> <pso:role> <pso:description> <!--1 or more repetitions:--> <pso:values> <!--1 or more repetitions:--> <pso:value>UK Updated Administrator</pso:value> </pso:values> </pso:description> </pso:role> </data> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true"> <reference typeOfReference="inheritsFrom" xmlns="urn:oasis:names:tc:SPML:2:0:reference"> <toPsoID ID="25" /> </reference> </capabilityData> </modification> </modifyRequest>
次に、レスポンスを示します。
<ns9:ModifyResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns2="urn:oasis:names:tc:SPML:2:0" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="25" status="pending"/>
SPMLペイロードを使用して複数のアイデンティティにロールを割り当てることはできません。複数のアイデンティティを指定した場合、ロールは最後のアイデンティティのみに割り当てられます。残りのアイデンティティはペイロードから削除してください。
次に、リクエストを示します。
<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="string" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier"> <!--Zero or more repetitions:--> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true" /> <psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" /> <psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" /> <!--1 or more repetitions:--> <modification modificationMode="add"> <capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true"> <reference xmlns="urn:oasis:names:tc:SPML:2:0:reference" typeOfReference="memberOf"> <toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" /> </reference> </capabilityData> </modification> </modifyRequest>
次に、レスポンスを示します。
<ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns9="oasis:names:tc:SPML:2:0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns4:ActiveResponseType" requestID="143" status="failure"/>
次に、リクエストを示します。
<deleteRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier" targetID="string"> <psoID ID="role:6C9B96E99FC8DC32E040E50A3D5252F5" /> </deleteRequest>
次に、レスポンスを示します。
<ns9:ResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns2="urn:oasis:names:tc:SPML:2:0" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="18" status="pending"/>
次に、リクエストを示します。
<statusRequest xmlns="urn:oasis:names:tc:SPML:2:0:async" requestID="3456563" asyncRequestID="75779"/>
次に、レスポンスを示します。
<statusResponse xmlns="urn:oasis:names:tc:SPML:2:0:async" requestID="3456563" status="success"> <addResponse requestID="75779" status="pending"/> </statusResponse>
次に、別のリクエストを示します。
<statusRequest xmlns="urn:oasis:names:tc:SPML:2:0:async" requestID="12" asyncRequestID="1" returnResults="true" />
この場合、returnResults=trueを使用しています。したがって、レスポンスにはリクエストのすべての属性が含まれます。
次に、レスポンスを示します。
<ns9:StatusResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns3="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns7="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns8="urn:names:spml:ws:header" xmlns:ns9="oasis:names:tc:SPML:2:0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:StatusResponseType" requestID="12" status="success"> <ns2:addResponse requestID="14" status="success"> <pso> <psoID targetID="Identity"/> <data> <ns4:Identity xmlns:ns4="oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:suspend"> <ns2:attributes> <ns2:attr xmlns="" xmlns:ns11="urn:oasis:names:tc:SPML:2:0" name="Organization"> <ns2:value>1</ns2:value> </ns2:attr> </ns2:attributes> <ns2:activeEndDate>2009-12-25T16:00:00.000Z</ns2:activeEndDate> <ns2:activeStartDate>2009-12-24T18:00:00.000Z</ns2:activeStartDate> <ns2:commonName> <ns2:values> <ns2:value>Alice Krug</ns2:value> </ns2:values> </ns2:commonName> <ns2:countryName>Canada</ns2:countryName> <ns2:departmentNumber> <ns2:value>123</ns2:value> </ns2:departmentNumber> <ns2:description> <ns2:values> <ns2:value>Alice Krugs profile</ns2:value> </ns2:values> </ns2:description> <ns2:displayName> <ns2:value>Alice Krug</ns2:value> </ns2:displayName> <ns2:employeeNumber>333</ns2:employeeNumber> <ns2:employeeType> <ns2:values> <ns2:value>Full-Time</ns2:value> </ns2:values> </ns2:employeeType> <ns2:facsimileTelephoneNumber> <ns2:number>6506072253</ns2:number> </ns2:facsimileTelephoneNumber> <ns2:generationQualifier> <ns2:value>II</ns2:value> </ns2:generationQualifier> <ns2:givenName> <ns2:value>Alice</ns2:value> </ns2:givenName> <ns2:hireDate>1999-12-24T16:00:00.000Z</ns2:hireDate> <ns2:homePhone> <ns2:number>8888888888</ns2:number> </ns2:homePhone> <ns2:homePostalAddress> <ns2:value>Baker street</ns2:value> </ns2:homePostalAddress> <ns2:initials> <ns2:value>J S</ns2:value> </ns2:initials> <ns2:localityName> <ns2:value>SFO</ns2:value> </ns2:localityName> <ns2:middleName>A</ns2:middleName> <ns2:mobile> <ns2:number>4083485309</ns2:number> </ns2:mobile> <ns2:organization> <ns2:values> <ns2:value>1</ns2:value> </ns2:values> </ns2:organization> <ns2:organizationUnit> <ns2:values> <ns2:value>Sales</ns2:value> </ns2:values> </ns2:organizationUnit> <ns2:pager> <ns2:number>333</ns2:number> </ns2:pager> <ns2:postalAddress> <ns2:value>Baker street 222</ns2:value> </ns2:postalAddress> <ns2:postalCode> <ns2:value>4081</ns2:value> </ns2:postalCode> <ns2:postOfficeBox> <ns2:value>333n</ns2:value> </ns2:postOfficeBox> <ns2:preferredLanguage>en</ns2:preferredLanguage> <ns2:state> <ns2:value>CA</ns2:value> </ns2:state> <ns2:street> <ns2:value>Baker</ns2:value> </ns2:street> <ns2:surname> <ns2:values> <ns2:value>Krug</ns2:value> </ns2:values> </ns2:surname> <ns2:telephoneNumber> <ns2:number>6506072253</ns2:number> </ns2:telephoneNumber> <ns2:title> <ns2:values> <ns2:value>Mr</ns2:value> </ns2:values> </ns2:title> <ns2:username> <ns2:value>akrug3478</ns2:value> </ns2:username> <ns2:userType>End-User</ns2:userType> </ns4:Identity> </data> </pso> </ns2:addResponse> </ns9:StatusResponseType>