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

前
 
次
 

4 コールバック・サービスの使用

コールバック・サービスは、Oracle Identity Managerのイベント処理中に、事前定義済ポイントでデプロイ固有のロジックを呼び出します。コールバック・サービスについては、次の項で説明します。

4.1 コールバック・サービスの概要

コールバック・サービスは、外部アプリケーションがOracle Identity Managerのイベント処理の一環としてなんらかのアクションを実行できるようにする通知およびコールバックをトリガーします。たとえば、Oracle Identity Managerを使用してユーザーが作成された場合、このタイプのプロビジョニング・イベントの通知を受け取るよう登録されている外部アプリケーションに通知され、これによりアプリケーションは、同じユーザー情報を独自のローカル・データ・ストアに追加できます。これは通知と呼ばれます。通知により、アプリケーションは変更内容とデータを同期できます。


注意:

外部アプリケーションのWebサービス・エンドポイントは、コールバック・サービス構成に登録されている必要があります。詳細は、「コールバック・サービスの構成」を参照してください。


外部アプリケーションがOracle Identity Managerでユーザー・プロビジョニング・イベントを開始した場合、このタイプのプロビジョニング・イベントの通知を受け取るよう登録されているその他の外部アプリケーションは、Oracle Identity Managerから通知を受け取ります。Oracle Identity Manager自体がプロビジョニング・プロセスの一環として外部アプリケーションによって呼び出された場合、その通知はコールバックと呼ばれます。したがって、コールバックとは、単に、外部アプリケーションの通知の後に、Oracle Identity Managerへのコールバックが続くものです。コールバックは、すべての登録済パーティとOracle Identity Managerとの間のイベントに関する情報を同期します。コールバックでは、イベントの成功または失敗のステータスを示すこともできます。


注意:

コールバック・サービス・インフラストラクチャは、コールバックと通知の両方を処理します。このドキュメントでは、コールバックはこの両方を示しています。


コールバック・サービスによって処理されるコールバック・タイプは複数あります。これらを次に示します。

コールバック・サービスは、ユーザー・インタフェース、Oracle Identity ManagerリクエストAPI、Service Provisioning Markup Language(SPML)クライアントを含むあらゆるソースからのイベントに対してコールバックを呼び出すように構築されています。これは、非同期クライアント・コールバックへのレスポンスを受信するリスナー・サービスです。クライアントWebサービスが呼び出されると、Oracle Identity Managerは一意の識別子を生成し、それをコールとともに送信します。クライアントは、応答時にこの識別子を使用して、レスポンスと元のWebサービス・リクエストを相関させる必要があります。コールバック・サービスは、クライアント・レスポンスに基づいて適切なアクションを実行します。次の項では、コールバック・サービスのコンポーネントについて詳しく説明します。

4.1.1 コールバックの使用

この項では、Oracle Identity Managerコールバックのユースケースについて説明します。このユースケースは、職務の分離(SoD)ステータス変更通知に固有のものです。このユースケースは、既存のユーザーで、POApproverロールのメンバーであるJames Northに関するものです。Jamesは、POCreatorおよびBuyerという2つの追加ロールをリクエストしています。このリクエストは、次のプロセスに従って処理されます。

  1. Oracle Identity Managerは、リクエストを受信し、IDが21の「ロールの割当て」リクエストを作成します。

    リクエストIDは、Oracle Identity Managerによって生成される一意の識別子であり、リクエストを今後のレスポンスと通信に相関させるために使用されます。

  2. Oracle Identity Managerは、Oracle Applications Access Control Governor(OAACG)を使用してSoD検証を開始します。

  3. Oracle Identity Managerリクエスト・ステータスが変更され、「SODチェック中です」を示すコールバックがコールバック登録Webサービスに返されます。このコールバックには、リクエストID、リクエストされた操作(MODIFY)、ターゲット・タイプ(IDENTITY)、ターゲットGUID(JNORTH)およびロケール(en_US)が含まれています。

  4. OAACGは、Buyerロールは許容できるが、POCreaterロールはJamesの既存のPOApproverロールが原因で違反していることを示す「条件付承認」レスポンスを返します。

  5. Oracle Identity Managerリクエスト・ステータスが変更され、「SOD改善中です」を示す2番目のコールバックがコールバック登録Webサービスに返されます。前のコールバックと同じ識別情報が含まれています。

  6. CFOOVERRIDEという名前のタグが拒否ノートに配置され、最高財務責任者(CFO)がこの違反を選択的ケースで承認できることを示します。

    OVERRIDEが最後に付くタグが拒否ノートに配置されている場合に例外承認を呼び出すようにOBRルールを構成する必要があります。

  7. AMXルールがタグを解読し、CFOの肩書きを持つ人物にタスクが割り当てられるようにするにはCFO承認が必要であることを判断します。

  8. CFOがリクエストを承認または拒否します。

    1. リクエストが拒否されると、Oracle Identity Managerリクエスト・ステータスが変更され、3番目のコールバックが「SOD改善が却下されました」として返されます。これで、Oracle Identity Managerリクエストは、「SOD改善が却下されました」ステータスでクローズされます。


      注意:

      リクエストの一部分が拒否されると、そのリクエスト全体が拒否されます。したがって、この例では、BuyerロールにSoD違反はありませんが、ユーザーにプロビジョニングされません。


    2. リクエストが承認されると、Oracle Identity Managerリクエスト・ステータスが変更され、3番目のコールバックが「SOD改善が承認されました」として返されます。Oracle Identity Managerリクエストは、「SOD改善が承認されました」ステータスで更新されます。OAACGおよびリクエスト側アプリケーションに承認が通知され、ロールがプロビジョニングされます。

  9. Oracle Identity Managerリクエスト・ステータスが「リクエストが完了しました」に変更されると、「リクエストが完了しました」ステータスでリクエストが完了したことを示す最後のコールバックが、すべてのコールバック登録Webサービスに送信されます。

4.1.2 イベント処理の理解

図4-1に、イベントが処理される方法を示します。Oracle Identity Managerは非同期呼出しを使用しますが、これにより、ヒューマン承認ワークフローの開始など、必要に応じてイベントを処理する柔軟性がコール側アプリケーションに提供されます。

図4-1 コールバック・サービス・プロセス

図4-1の説明が続きます
「図4-1 コールバック・サービス・プロセス」の説明

このリリースのコールバック・サービスでは、ハンドラおよびプラグイン・イベントがサポートされています。これらを次に示します。

  • 後処理ハンドラ: イベントが処理された後、かつリクエストが完了としてマークされる前に呼び出されます。デフォルトの後処理ハンドラは、コールバック・サービス構成に基づいて複数のコールバックを呼び出します。

  • ステータス変更プラグイン: リクエスト・ステータスに変更があった場合(ユーザー・プロビジョニング・リクエストのステータスが完了や失敗に変更された場合など)、または職務の分離(SOD)チェックによりリクエスト・ステータス変更が認識された場合に呼び出され、ステータス変更コールバックが送信されます。デフォルトのステータス変更プラグインは、コールバック・サービス構成に基づいて複数のコールバックを呼び出す場合があります。

4.1.3 コールバックの再試行

コールバック・サービスは、サービスを呼び出すときにネットワーク・エラーがあった場合は、コールバックを再試行します。Oracle Identity Managerは、固定された間隔である5秒後に、固定された回数である3回のコールバックを再試行します。これらの値は構成できません。

4.2 Oracle Identity Manager属性のマッピング

Oracle Identity Managerで使用される属性の名前は独自の名前です。たとえば、サード・パーティのアプリケーションではユーザーの姓をsurnameと呼ぶ場合がある一方で、Oracle Identity Managerでは「姓」を使用します。このため、属性マッピングが不可欠です。


注意:

コールバック・サービスでは、Oracle Identity ManagerのService Provisioning Markup Language(SPML)レイヤーで定義されているのと同じ属性を使用します。これらは、(単称として)SPMLプロビジョニング・サービス・オブジェクト(PSO)と呼ばれます。詳細は、付録B「SPML属性とLDAPマッピング、およびOracle Identity Managerの属性」を参照してください。


マッピングされた属性名は、送信されたメッセージおよびコールバック構成(特にConstraintAttributeパラメータ)で使用されます。表4-1では、Oracle Identity Managerユーザー・タイプ属性が、SPML PSOを使用してコールバックでどのように表されるかを定義しています。

表4-1 Oracle Identity Managerとコールバック・サービス・ユーザー属性のマッピング

コールバック・サービス属性(PSO) Oracle Identity Managerユーザー属性

activeEndDate

終了日

activeStartDate

開始日

commonName

一般名

countryName

departmentNumber

部門番号

description

説明

displayName

氏名

employeeNumber

従業員番号

employeeType

ロール

facsimileTelephoneNumber

FAX

generationQualifier

世代修飾子

hireDate

入社日

homePhone

自宅電話番号

homePostalAddress

自宅住所

initials

イニシャル

localityName

地方名

mail

電子メール

middleName

ミドル・ネーム

mobile

モバイル

organization

LDAP組織

organizationUnit

LDAP組織単位

pager

ページャ

password

パスワード

postalAddress

住所

postalCode

郵便番号

postOfficeBox

私書箱

preferredLangauage

言語

state

都道府県

street

番地

surname

telephoneNumber

電話番号

title

役職

userId

usr_key

userName

ユーザー・ログイン


表4-2は、Oracle Identity Managerロール・タイプ属性が、SPML PSOを使用してコールバックでどのように表されるかを定義しています。

表4-2 Oracle Identity Managerとコールバック・サービス・ロール属性のマッピング

コールバック・サービス属性(PSO) Oracle Identity Managerロール属性

commonName

ロール名

description

ロールの説明

displayName

表示名


属性名がこれらの表のいずれにもない場合は、そのOracle Identity Manager属性で参照されます。

4.3 イベント・コールバックの送信

デフォルトでは、コールバックは、EventHandlers.xml(プロビジョニング・プロセスの後処理ステージで編成エンジンによって呼び出されるハンドラ)にリストされているすべてのOracle Identity Managerイベントに対して有効化されています(送信されます)。各イベントにより、適用可能なエンティティ・タイプおよび操作が指定されます。構成を変更することで、特定のコールバックを無効化できます。表4-3に、Oracle Identity Managerがコールバックを作成するユーザーとロールのイベント、およびコールバックで返される情報についてまとめます。

表4-3 コールバック開始イベント

エンティティ/操作 イベント開始側 後処理ハンドラで返される情報 ステータス変更プラグイン・コールバックで返される情報

ユーザー作成

サード・パーティ・リクエストのみ。ユーザーが、コンソールを使用して、またはリコンシリエーション・イベントを介して作成された場合、コールバックは発生しません。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • 作成された属性および値(パスワードとチャレンジ質問は除く)が含まれたプロビジョニング・サービス・オブジェクト(PSO)

    注意: PSOは作成操作に使用されます。変更オブジェクトは変更操作に使用されます。

  • ユーザーに割り当てられたロール

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ユーザー変更

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • 変更された属性および値(パスワードとチャレンジ質問は除く)が含まれた変更オブジェクト*

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ユーザー削除

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ユーザー一時停止(無効化)

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ユーザー再開(有効化)

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ユーザー割当てロール: memberOfの追加

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • 割当て済ロールのGUIDが含まれた変更オブジェクト*

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ユーザー失効ロール: memberOfの削除

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • 割当て済ロールのGUIDが含まれた変更オブジェクト*

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ロール追加

サード・パーティ・リクエストのみ。ロールが、コンソールを使用して、またはリコンシリエーション・イベントを介して作成された場合、コールバックは発生しません。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • 作成された属性および値が含まれたPSO*

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ロール変更

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • 変更された属性および値が含まれた変更オブジェクト*

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

ロール削除

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID

  • OIMリクエスト・ステータス

  • ターゲット・タイプ

  • ターゲットGUID

  • 操作

  • リクエストID


4.4 コールバック・サービスの構成

コールバック・サービスの構成では、1つ以上のコールバックが呼び出される方法およびタイミングを指定します。次の項では、構成ファイル、およびこのファイルをメタデータ・サービス・リポジトリにインポートする手順について説明します。

4.4.1 CallbackConfiguration.xmlの理解

構成は、CallbackConfiguration.xmlと呼ばれる単一ファイルに格納されています。構成ファイルは、Oracle Identity Managerメタ・ディレクトリ・リポジトリにあります。デフォルトのイベント・ハンドラおよび検証プラグインによって使用されます。次のパラメータを構成できます。

  • Policy name: コールバック・ポリシーの名前を定義します。値は、プロビジョニング・リクエストから取得されます。これは、Oracle Identity Manager固有であり、文字列値を使用します。

  • Entity type: コールバック・ポリシーを適用できるエンティティ・タイプのことです。必須で、単一の値です。可能な値は、User、RoleおよびRoleUserです。

  • Operation: コールバック・ポリシーを適用できるデータベース操作のことです。必須値は、CreateまたはDeleteのいずれかです。

  • Description: ポリシーの説明である、ローカライズされた文字列を使用します。

  • ConstraintAttributeおよびConstraintAttributeValue: 指定されたオブジェクトに対して特定のコールバックを呼び出すかどうかをハンドラおよびプラグイン・コードが決定できる、単純な制約を指定するフィールドです。この属性は、編成データまたはRequestDataのいずれかの形式で、ハンドラに対して使用可能になっているエンティティ・データで検索されます。データが存在しない場合、この制約は適用されません。

    • ConstraintAttribute: 制約が指定される属性の名前を値として使用します。この名前は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。

    • ConstraintAttributeValue: ConstraintAttributeでの値と同じ値を使用します。ここでの値は、編成データまたはリクエスト・データに存在するConstraintAttributeの値と同じである必要があります。データに複数の値がある場合は、少なくとも1つが一致する必要があります。このパラメータは、ConstraintAttribute自体に値がある場合にのみ関係します。

  • Provisioning Steps: このコールバック・ポリシーを使用する必要がある編成手順を指定します。可能な値は次のとおりです。

    • validation

    • preProcessing

    • approval

    • postProcessing

    • completion

  • stepName: 外部アプリケーションのWebサービス・エンドポイントのことです。

  • description: Webサービス・エンドポイントの説明を示す、ローカライズされた文字列を使用します。

  • InvokeOnChange: 値として1つ以上の属性名を使用し、変更操作にのみ適用可能です。このコールバックは、このパラメータの値としてリストされているいずれかの属性が変更された場合にのみ呼び出されます。この値は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。

  • CallbackOnly: Oracle Identity Managerが外部アプリケーションからのレスポンスを待機するかどうかを指定します。可能な値はtrueまたはfalseです。trueの場合、Oracle Identity Managerはアプリケーションからのレスポンスを待機し、編成プロセスはレスポンスが受信されるまで待機します。falseの場合、Oracle Identity Managerはコールバック・レスポンスを待機せず、編成プロセスは続行されます。

  • targetIDAttribute: メッセージでターゲットGUIDとして使用される属性を値として使用します。この値は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。デフォルト値はLDAP GUIDです。

  • roleIDAttribute: メッセージでロールGUIDとして使用されるロール属性を値として使用します。この値は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。デフォルト値はLDAP GUIDです。

例4-1は、サンプル構成ファイルです。

例4-1 サンプルCallbackConfiguration.xml

<?xml version='1.0' encoding='UTF-8'?>
<callbackConfiguration xmlns="http://www.oracle.com/schema/oim/callback_config" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.oracle.com/schema/oim/callback_config">
<policy>
<policyName>User Creation1</policyName>
<entityType>User</entityType>
<operation>Create</operation>
<description>Policy to create  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Enable1</policyName>
<entityType>User</entityType>
<operation>Enable</operation>
<description>Policy to enable  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Delete1</policyName>
<entityType>User</entityType>
<operation>Delete</operation>
<description>Policy to delete  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Disable1</policyName>
<entityType>User</entityType>
<operation>Disable</operation>
<description>Policy to disable  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Modify1</policyName>
<entityType>User</entityType>
<operation>Modify</operation>
<description>First Policy to modify  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Assign1</policyName>
<entityType>RoleUser</entityType>
<operation>CREATE</operation>
<description>Policy to assign roles to the user</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Revoke1</policyName>
<entityType>RoleUser</entityType>
<operation>Delete</operation>
<description>Policy to revoke role from the user</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Creation1</policyName>
<entityType>Role</entityType>
<operation>Create</operation>
<description>Policy to create  a role in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Delete1</policyName>
<entityType>Role</entityType>
<operation>Delete</operation>
<description>Policy to delete  a role in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Modify1</policyName>
<entityType>Role</entityType>
<operation>Modify</operation>
<description>Policy to modify  a role in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
   PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
</callbackConfiguration>

4.4.2 CallbackConfiguration.xmlのインポート

コールバック・サービスを構成する手順は、次のとおりです。CallbackConfiguration.xmlファイルのインポートを伴います。このファイルには、指定されたエンティティ・タイプまたは操作用のコールバック・ポリシーのリストが含まれています。

  1. マップ名oimおよびキーappid.keycredentialsを使用して、資格証明ストア・フレームワーク(CSF)で資格証明エントリを作成します。

    このエントリには、コールバックに対してOracle Identity Managerが自身を識別するために使用する、ユーザー名とパスワードが格納されています。CSFは、Oracle Identity Managerのインストール時にドメイン作成の一部として利用可能です。


    関連項目:

    資格証明ストア・フレームワークの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。


  2. weblogicImportMetadata.sh MDSユーティリティを使用して、CallbackConfiguration.xmlをメタデータ・サービス(MDS)リポジトリにインポートします。

    /metadata/iam-features-callbacks/sample_data/ネームスペースにロードされます。

CallbackConfiguration.xmlをインポートする場合の考慮事項は、次のとおりです。

  • CallbackConfiguration.xmlファイルが、MDSリポジトリの正しいメタデータ・ネームスペース(/metadata/iam-features-callbacks/sample_data/)にインポートされたことを確認します。

  • 他のメタデータ・ネームスペースにある古いCallbackConfiguration.xmlファイルを削除します。たとえば、/metadata/iam-features-callbacks/old_config/CallbackConfiguration_st3b16.xmlや/metadata/iam-features-callbacks/old_config/CallbackConfiguration.xmlは、有効ではありません。weblogicDeleteMetadata.shを使用して、MDSリポジトリで見つかった無効なエントリをすべて削除します。

  • インポート後にCallbackConfiguration.xmlに変更が加えられた場合は、変更されたファイルを説明に従って再インポートし、OIM_HOME/server/bin/ディレクトリにあるPurgeCache.shユーティリティを使用して、Oracle Identity Managerキャッシュをパージします。

4.5 コールバック・サービスのトラブルシューティング

表4-4に、コールバック・サービス・エラーが発生した場合に実行できるトラブルシューティング手順を示します。

表4-4 コールバック・サービスのトラブルシューティング

問題 解決策

SPMLリクエストを送信できません(失敗した認証)。

SPMLリクエストが、有効なSPMLユーザー(SPML_App_Roleグループのメンバー)により、正しい資格証明を使用して送信されていることを確認します。

リクエストがクライアントAPIから送信されている場合は、互換性のあるクライアント・ポリシーが適用されている必要があることに注意してください。

次に、SPMLリクエストが不正な資格証明で送信された場合に表示されるサンプル・エラー・レスポンスを示します。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:ns0="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><faultcode>ns0:FailedAuthentication</faultcode><faultstring>FailedAuthentication : The security token cannot be authenticated.</faultstring><faultactor/></env:Fault></env:Body></env:Envelope>

ロールの割当てなど、所定のリクエスト・タイプの場合、Oracle Identity Managerは、policyNameが一致するのが1つのコールバック・サービスであっても、複数のコールバックWebサービスに対する複数のコールバックを作成します。

これは、callbackOnlyが、適格なエンティティ・タイプおよび操作(ロールの割当てリクエスト・タイプなど)すべてに関してfalseに設定されていると、一致するすべてのエンティティ・タイプおよび操作に対してコールバックがトリガーされるためです。

PolicyNameの一致は、callbackOnly属性がfalseに設定されている場合は無視されます。

callbackOnly属性がtrueに設定されている場合は、ポリシー名がチェックされます。そのポリシーに存在するすべてのコールバックWebサービスURLは、エンティティ・タイプおよび操作条件も満たされている場合にトリガーされます。

そのポリシーに存在するすべてのコールバックWebサービスURLは、エンティティ・タイプおよび操作条件も満たされている場合にトリガーされます。

ポリシー参照URI oracle/wss_saml_or_username_token_service_policyは、有効ではありません。

WSMポリシー・マネージャがデプロイされ、Oracle Identity ManagerやSPMLリクエスト開始サーバーなどの対話サーバーをターゲットにしていることを確認します。また、WSMポリシー・マネージャがアクティブ・モードで、リクエストに対応する準備ができていることを確認します。

SPML APPIDおよびOracle Identity Manager APPIDが何であるか、およびこれらのAPPIDをどこに作成するかがわかりません。

SPML APPIDは、SPMLリクエストをOracle Identity Managerに送信するために使用されます。Oracle Identity Managerによるユーザー・プロビジョニング・サービスを必要とするクライアントは、そのリポジトリにSPML APPIDが格納されている必要があります。たとえば、Fusion ApplicationsがOracle Identity Managerのクライアントである場合、Fusion Applicationsは通常、そのリポジトリとしてLDAPディレクトリを使用します。

Oracle Identity Manager APPIDは、所定のSPMLリクエスト・タイプのCallbackConfiguration.xmlファイルに登録されているすべてのWebサービスにコールバックを送信するために使用されます。

Oracle Identity Managerリポジトリまたはデータベースには、SPML APPIDのみが格納されています。Oracle Identity Manager APPIDはOracle Identity Managerリポジトリには存在せず、資格証明ストア・フレームワーク(CSF)に、マップ名がoim、キーがappid.credentialsとして存在します。

SPMLリポジトリまたはLDAPには、SPML APPIDとOracle Identity Manager APPIDの両方が含まれています。

Fusion Applicationsは、SPMLリクエストをOracle Identity Managerに送信する場合、SPML APPIDを使用してOracle Identity Managerと通信します。SPML APPIDは、SPMLリポジトリまたはLDAPに存在します。このユーザーは、Oracle Identity Manager側でデータベースに対して認証されます。したがって、Oracle Identity ManagerデータベースにはSPML APPIDが含まれています。

Oracle Identity Managerは、Fusion Applicationsと通信する場合、Oracle Identity Manager APPIDを使用してFusion Applicationsと通信します。Oracle Identity Manager APPIDは、CSFに存在します。このユーザーは、LDAPリポジトリ内のOracle Identity Manager APPIDを確認することで、Fusion Applications側でLDAPに対して認証されます。したがって、LDAPにはOracle Identity Manager APPIDが含まれています。