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

前
 
次
 

12 ICFとOracle Identity Managerの統合

Oracle Identity Managerの目的は、アイデンティティ管理のビジネス・ロジックを管理し、プロビジョニングおよびリコンシリエーション操作の実行をIdentity Connector Framework (ICF)に委任することです。Oracle Identity Manager (OIM)でのICFは、すべてのスケジュール済タスクとICFベースのコネクタのプロビジョニング・タスクを結合します。

この章は、ICF-OIM統合の概念情報を示す次の項で構成されています。

12.1 ICF共通

OIM ICF統合レイヤーは、片面にICF APIが実装され、もう片面でOIM API (icf-oim-intg.jar)を起動します。これにより、API抽象化が提供されるため、コネクタ開発者の複雑性が削減されます。また、プロビジョニングおよびリコンシリエーション操作もサポートします。ICF共通を使用したプロビジョニングおよびリコンシリエーションの詳細は、第12.5項「プロビジョニング」および第12.6項「ICF共通でのリコンシリエーションの概念」を参照してください。

12.2 統合アーキテクチャ

ICF-OIM統合アーキテクチャは次のとおりです。

図12-1 OIM-ICFコネクタ開発アーキテクチャ

図12-1については周囲のテキストで説明しています。

12.3 Oracle Identity Managerのグローバル参照

OIM構成メタデータの格納に参照が使用されます。ITリソースのパラメータ構成参照は、Oracle Identity Manager固有のすべての構成情報をカプセル化するメインの構成参照をポイントします。

参照構成に基づいて、プロパティを次の3つのクラスに分類できます。

図12-2に、ほとんどのコネクタがユーザー管理参照を使用するOracle Identity Managerグローバル参照を示します。

図12-2 Oracle Identity Managerコネクタ参照の階層

図12-2については周囲のテキストで説明しています。

このセクションのトピックは次のとおりです:

12.3.1 メインの参照構成

ITリソースのパラメータ構成参照は、OIM固有のすべての構成情報をカプセル化するメインの構成参照をポイントします。

Lookup.CONNECTOR_NAME.Configurationとして示される構成参照は、リコンシリエーションおよびプロビジョニング用に下位参照を参照する最上位レベルのエントリです。構成参照の構造は次のとおりです。

表12-1 コネクタの参照構成

構成キー 説明

コネクタ名

org.identityconnectors.CONNECTOR_NAME.Connector

アイデンティティ・コネクタのメイン・クラス。これは、ICFフレームワークのSPI操作を実装するクラスです。

バンドル名

org.identityconnectors.CONNECTOR_NAME

アイデンティティ・コネクタのバンドル名

バンドル・バージョン

11.1.1.5.x

アイデンティティ・コネクタのバンドル・バージョン

ユーザー構成参照

注意: 一般的なLDAPコネクタ、グループ構成参照、OU構成参照などには他のオブジェクト・タイプが定義されている場合があります。

Lookup.CONNECTOR_NAME.UM.Configuration

ユーザー固有の構成参照にリンクします。注意: ユーザーはオブジェクト・タイプである必要があります。他のオブジェクト・タイプをサポートする必要がある場合は、OBJECT_TYPE構成参照をキーとして使用できます。


12.3.2 ユーザー管理構成

これらの参照は、プロビジョニングおよびリコンシリエーション用のマッピングを制御します。また、これらの参照は、変換および検証を構成する場合があります。

この参照には、次のキーが含まれています。

  • Before Create Action Language: Lookup.CONNECTOR_NAME.UM.Configurationにこのキーが存在する場合、言語がこのキーの値であるスクリプトがあることがICFに通知されます。このキーの値(Groovy/cmd)は、作成操作の前にICFによって実行される必要のあるスクリプトの言語を示します。

  • Before Create Action File: Lookup.CONNECTOR_NAME.UM.Configurationにこのキーが存在する場合、このキーの値によって示されたスクリプトが作成アクション前にICFによって実行される必要があることが通知されます。このスクリプトは、Oracle Identity Managerサーバーにアクセス可能である必要があります。

  • Before Create Action Target: Lookup.CONNECTOR_NAME.UM.Configurationにこのキーが存在する場合、前述の2つのキーによって定義されたスクリプトをリソースまたはコネクタ上のいずれかで実行する必要があることがICFに通知されます。この構成に応じて、ICF API runScriptOnConnectorまたはrunScriptOnResourceが実行されます。

図12-1は、ユーザー管理参照構成を説明しています。

表12-2 コネクタのユーザー管理参照構成

構成キー 必須フィールド・タイプ 説明

プロビジョニング属性マップ

Lookup.CONNECTOR_NAME.UM.ProvAttrMap

Y

この参照には、Oracle Identity Managerフィールドとアイデンティティ・コネクタ属性との間のマッピングが含まれています。このマッピングは、プロビジョニング時に使用されます。

リコンシリエーション属性マップ

Lookup.CONNECTOR_NAME.UM.ReconAttrMap

Y

この参照には、Oracle Identity Managerリコンシリエーション・フィールドとアイデンティティ・コネクタ属性との間のマッピングが含まれています。このマッピングは、リコンシリエーション時に使用されます。

リコンシリエーション属性デフォルト

Lookup.CONNECTOR_NAME.UM.ReconDefaults

N

このマッピングには、OIM属性のデフォルト値が含まれており、リコンシリエーション中にコネクタによって値が指定されない場合に置換されます。

リコンシリエーション変換参照

Lookup.CONNECTOR_NAME.UM.ReconTransformation

N

リコンシリエーション・タスクを実行による変換の参照。変換は、LookupReconTask以外のすべてのリコンシリエーション・タスクで使用されます。

リコンシリエーション検証参照

Lookup.CONNECTOR_NAME.UM.ReconValidation

N

リコンシリエーション・タスクを実行して検証に使用する参照。検証は、LookupReconTask以外のすべてのリコンシリエーション・タスクで使用されます。

リコンシリエーション除外リスト

Lookup.CONNECTOR_NAME.UM.ReconExclusionList

N

除外リストは、コネクタの管理されていないアカウントを処理する方法の1つです。リコンシリエーション/プロビジョニング中、除外リストと一致するものは、OIMによって処理されません。

除外リストによってサポートされる2つのタイプのルールがあります。

  • 一致ルール

    直接一致ルール

    コード・キー: リコンシリエーション・フィールド名

    デコード・キー: 除外フィールド値

  • パターン一致ルール

[PATTERN]タグ接尾辞を付け、パターン一致を可能にします。

コード・キー: ReconFieldName[PATTERN]

デコード・キー: 除外パターン

除外パターンは、java.util.regex.Patternで定義された命名体系に従う必要があります。

この表のリコンシリエーション除外リスト・キーを参照してください。

プロビジョニング除外リスト

Lookup.CONNECTOR_NAME.UM.ProvExclusionList

N

プロビジョニングでは、コード・キーがフォーム・ラベル名で、デコード・キーが除外値/パターンです。

プロビジョニング検証参照

Lookup.CONNECTOR_NAME.UM.ProvValidation

N

プロビジョニングによる検証の参照。

ICFは、追加のパラメータ・リストで、すべての操作に送信できるOperationOptionの概念を定義します。コネクタ実装によって、これらの操作オプションの使用が定義されます。

操作オプション・マップ

Lookup.CONNECTOR_NAME.UM.OperationOptions

N

コード・キーは、定数Operation Options Mapです。操作オプションのマップとして使用される参照のデコード値名。

たとえば、Lookup.Domino.UM.OperationOptionsでは、コード・キーがCACertifier[UPDATE,DELETE]、デコード値がCACertifierで、これは、更新および削除操作のコールに追加の操作オプションとしてこの属性が送信されることを意味します。

アクション実行を構成する場合、スクリプトに3つのパラメータを指定する必要があります。

  • 言語

  • ファイル

  • ターゲット

スクリプト作成属性



スクリプトのトリガー時間は、参照キーの次のラベルによって制御されます。

  • Before

  • After

スクリプトにアタッチされているプロビジョニング操作タイプは、次のラベルによって制御されます。

  • Create

  • Update

  • Delete

Before Create Action Language

SCRIPTING_LANGUAGE_NAME

N

Groovy/cmdなど、実行されるアクションの言語。アクションの実行を構成する場合、3つのオプションLanguage/File/Targetを指定する必要があります。プロビジョニング操作Create/Update/Deleteに、Before/Afterアクションを構成できます。

Before Create Action File

FILE_PATH

N

実行する必要のあるスクリプトを含むファイル。このファイルは、Oracle Identity Managerサーバーにアクセス可能である必要があります。

Before Create Action Target

コネクタまたはリソース

N

アクションのターゲットは、コネクタまたはリソースです。この構成に応じて、ICF APIのrunScriptOnConnectorまたはrunScriptOnResourceが使用されます。


12.3.3 リコンシリエーション変換参照(Lookup.CONNECTOR_NAME.UM.ReconTransformation)

変換コードは、Oracle Identity Managerの外部Javaタスクで、LookupReconTask以外のすべてのリコンシリエーション・タスクで使用されます。これは、Oracle Identity Managerリポジトリにアップロードされる(リコンシリエーション中にターゲット・システムから取得されるデータを変換する)Javaクラスです。

変換を実行するJavaクラスには、署名public Object transform(HashMap arg0, HashMap arg1, String arg2)を持つメソッドが実装されている必要があります。ICFは、正確な署名を使用して、このメソッドを検索します。

変換javaクラスのテンプレートは、次のとおりです。

public class MyTransformer implements oracle.iam.connectors.common.transform.Transformation {
  public Object transform(java.util.HashMap hmUserDetails, java.util.HashMap hmEntitlementDetails, String sField) {
    String sFirstName= (String)hmUserDetails.get("First Name");
    String sLastName= (String)hmUserDetails.get("Last Name");
    String sFullName=sFirstName+"."+sLastName;
    return sFullName;
  }
}

リコンシリエーション変換参照を格納する参照の名前は、表12-3で示されているように、メイン構成参照(Lookup.CONNECTOR_NAME.Configuration)で定義されています。

表12-3 リコンシリエーション変換参照

キー 説明

リコンシリエーション・フィールド名

<transformationClassName>

com.validationexample.MyTransform

このリコンシリエーション・フィールドの変換を実行するJavaクラス。


12.3.4 リコンシリエーション検証参照(Lookup.CONNECTOR_NAME.UM.ReconValidation)

検証コードは、Oracle Identity Managerの外部Javaタスクで、リコンシリエーション中にターゲット・システムから取得されるデータの検証に使用されます。これは、Oracle Identity Managerリポジトリにアップロードされる(リコンシリエーション中にターゲット・システムから取得されるデータを変換する)Javaクラスです。

検証を実行するJavaクラスには、署名public boolean validate (HashMap arg0, HashMap arg1, String arg2)を持つメソッドが実装されている必要があります。ICFは、正確な署名を使用して、このメソッドを検索します。

検証Javaクラスのテンプレートは次のとおりです。

public class MyValidator implements oracle.iam.connectors.common.validate.Validator { 
  public boolean validate(java.util.HashMap hmUserDetails, java.util.HashMap hmEntitlementDetails,String sField) throws oracle.iam.connectors.common.ConnectorException {
    boolean isValid = false;
    // validation code goes HERE
    return isValid;
  }
}

リコンシリエーション検証参照を格納する参照の名前は、表12-4で示されているように、メイン構成参照(Lookup.CONNECTOR_NAME.Configuration)で定義されています。

表12-4 リコンシリエーション検証参照

キー 説明

リコンシリエーション・フィールド名

<transformationClassName>

com.validationexample.MyValidator

このリコンシリエーション・フィールドの検証を実行するJavaクラス。


12.3.5 オプションのデフォルト参照

リコンシリエーション用の欠落した値は、次の表で定義されたデフォルト値で置換されます。ユーザー・タイプは、必須のOIM属性で、通常、ターゲット・リソースには含まれていません。デフォルト値を設定できます。

たとえば、信頼できるリコンシリエーションでは、コネクタからの一連の属性に空でない値が必要です。ただし、すべてのリソースがこれらすべての属性タイプを指定できるわけではないため、一部デフォルト値を指定する必要があります。表12-5には、リコンシリエーションの必須属性および使用できるデフォルト値がリストされています。

コネクタがリコンシリエーションに必要なすべての属性を指定できる場合、この表はオプションになります。

表12-5 Lookup.CONNECTOR_NAME.UM.Recon.Defaults.Trusted属性

キー

CONNECTOR_DEPENDENT_VALUE

組織

Xellerate users

ユーザー・タイプ

End-User

従業員タイプ

Full-Time

CONNECTOR_DEPENDENT_VALUE



注意:

これらのデフォルト値は、単一値フィールドでのみサポートされており、これは、複数値または子表属性がサポートされていないことを意味します。


12.4 ITリソース

ITリソースには、ターゲット・システムの接続パラメータが含まれています。これらのパラメータは、ICF統合を使用するすべてのコネクタに必須です。

表12-6は、共通のITリソース・パラメータを説明しています。


関連項目:

ターゲット・システムおよびコネクタ・サーバーのITリソース・パラメータの詳細は、デプロイ対象のコネクタのドキュメントを参照してください。


表12-6 ITリソース・パラメータ

パラメータ 説明

コネクタ・サーバー名

コネクタ・サーバーのITリソース名。ITリソースは、タイプがコネクタ・サーバーである必要があります。このフィールドは、必須フィールドですが、値はオプションです。

構成参照

メイン構成参照の名前。このフィールドは必須フィールドです。


12.5 プロビジョニング

この項の項目は次のとおりです。

12.5.1 ICFプロビジョニング・マネージャ

ICFプロビジョニング・マネージャは、コネクタのプロビジョニング・メソッドへのアクセスを、すべてのコネクタを処理する1つのJavaタスクに結合します。

パブリック・メソッドは4つのグループに分けられます。

12.5.1.1 プロビジョニング用のAPI

単一値のCRUDオブジェクト・タイプは次のとおりです。

createObject

ターゲット・リソースに指定したタイプのオブジェクトを作成すると、現在のフォームから値が取得されます。

シグネチャ: public String createObject(String objectType)l

deleteObject

ターゲット・リソースの指定したタイプのオブジェクトを削除します。

シグネチャ: public String deleteObject(String objectType)

updateAttributeValue

ターゲット・リソースでのオブジェクトの更新では、指定されたラベルを持つ属性のみが更新されます。

シグネチャ: public String updateAttributeValue(String objectType, String attrFieldName)

updatePassword

古いパスワード値を指定する必要のある場合のみ、アダプタでこのメソッドを使用します(現在、formAPIを使用して古い値を取得する方法はありません)。パスワードを変更するために古いパスワード値が必要ない場合、かわりに#updateAttributeValue(String, String)メソッドを使用します。

シグネチャ: public String updatePassword(String objectType, String pswdFieldLabel, String oldPassword)

12.5.1.2 アカウント関連の操作

プロビジョニング操作に関連するアカウントは次のとおりです。

enableUser

非推奨、かわりにenableObject()を使用。

シグネチャ: public String enableUser()

disableUser

非推奨、かわりにdisableObject()を使用。

シグネチャ: public String disableUser()

enableObject

User: enableObject("User")の使用例。

シグネチャ: public String enableObject(String objectType)

disableObject

シグネチャ: public String disableObject(String objectType)

12.5.1.3 複数値の操作

プロビジョニングで使用する複数値操作は次のとおりです。

updateAttributeValues

フィールドのグループ更新がある場合に、このメソッドを使用します。これは、一連の属性を一度に更新する場合に役立ちます。

シグネチャ: public String updateAttributeValues(String objectType, String[] labels) public String updateAttributeValues(String objectType, Map<String, String> fields) public String updateAttributeValues(String objectType, Map<String, String> fields, Map<String, String> oldFields)}}}

addChildTableValue

子表に新しく追加された行を追加することで、ターゲットを更新します。

シグネチャ: public String addChildTableValue(String objectType, String childTableName, long childPrimaryKey)

removeChildTableValue

子表から削除された行を削除して、ターゲットを更新します。

シグネチャ: public String removeChildTableValue(String objectType, String childTableName, Integer taskInstanceKey)

updateChildTableValue

削除された行を削除し、新しく作成された行を追加することで、ターゲットを更新します。

シグネチャ: public String updateChildTableValue(String objectType, String childTableName, Integer taskInstanceKey, long childPrimaryKey)

updateChildTableValue

ターゲット・リソースの子表で指定された値を更新します。

シグネチャ: public String updateChildTableValues(String objectType, String childTableName)

12.5.1.4 その他の操作

プロビジョニングで使用されるその他の操作は次のとおりです。

setEffectiveITResourceName

コネクタがプロビジョニング操作で、異なるITリソースを使用する必要がある場合、このメソッドで設定できます。

シグネチャ: public void setEffectiveITResourceName(String itResourceName)

12.5.2 プロビジョニング参照

Lookup.CONNECTOR_NAME.UM.ProvAttrMapには、2つのクラスの属性の単純な属性マッピングが含まれています。

  • 単一値属性: 単純な文字列キー + 値の組合せ

  • 複数値の属性(Oracle Identity Managerの子表): これらは階層の深さによってさらに分けられます。

    • 単純な複数値の属性: 子表に格納されているデータのレコードを示します(表12-7の2行目を参照)。

    • 複雑な複数値の属性: 組込みオブジェクトの複数のレベル(表12-7の最後の行を参照)。

      表12-7 プロビジョニング参照属性

      キー 説明

      フォーム・フィールド・ラベル

      ConnectorAttributeName

      これは、単純なフォーム・ラベル名から単一値コネクタ属性名への基本的なマッピング・タイプです。

      子フォーム名>~<子フォーム・フィールド・ラベル

      ConnectorAttributeName

      これは、子フォーム・フィールドを複数値ConnectorAttributeNameにマップします。

      子フォーム名>~<子フォーム・フィールド・ラベル

      ConnectorAttributeName>~<EmbeddedObjectClass>~<EmbeddedAttributeName

      これは、子フォーム・フィールドを組込みオブジェクトのEmbeddedAttributeにマップし、これのオブジェクト・クラスはEmbeddedObjectClassで、ConnectorAttributeNameに含まれています。


12.5.3 ユーザー以外のオブジェクト・タイプ

たとえば、LDAP組織単位(OUとも呼ばれる)、LDAPグループ、グループなど、プロビジョニングできるその他のエンティティも多数あります。この場合、次の例のOBJECT_TYPEを記入する必要があります。

メイン構成参照Lookup.CONNECTOR_NAME.Configuration

表12-8 コネクタの構成参照

キー 説明

objectType構成参照

Lookup.<ConnectorName>.<objectType>.ProvAttrMap


グループ構成参照

Lookup.LDAP.Group.ProvAttrMap

LDAPグループの例


プロビジョニング参照Lookup.CONNECTOR_NAME.OBJECT_TYPE.ProvAttrMap

キー 説明

FORM_FIELD_LABEL_ON_THE_PROCESS_FORM

ターゲット・システム属性名

Oracle Identity Managerとコネクタ間での属性マッピング。


12.5.4 プロビジョニングのオプションの参照

キー 説明

FORM_FIELD_NAME [Create, Update, Delete]

ConnectorOperationOptionName

このフィールドは、汎用的な定義に使用されます。

たとえば、フィールドがmyOperationOptionという名前のコネクタに送信されるCreateOpの操作オプションにマップされる場合です。

myField[Create]

myOperationOption



12.5.4.1 プロビジョニング検証参照

検証コードは、OIM外部Javaタスクで、OIMリポジトリにアップロードされるJavaクラスです。検証Javaクラス・テンプレート:

public class MyValidator implements oracle.iam.connectors.common.validate.Validator { 
  public boolean validate(java.util.HashMap hmUserDetails, java.util.HashMap hmEntitlementDetails,String sField) throws oracle.iam.connectors.common.ConnectorException {
    boolean isValid = false;
    // validation code goes HERE
    return isValid;
  }
}

リコンシリエーション検証参照を格納する参照の名前は、メイン構成参照(Lookup.CONNECTOR_NAME.Configuration)で定義されています。

キー 説明

フォーム・フィールド・ラベル

validatorClassName

com.validationexample.MyValidator

このリコンシリエーション・フィールドの検証を実行するJavaクラス。


12.5.5 プロビジョニング属性マップの参照でのオプション・フラグ

ICF-OIM統合により、プロビジョニングの方法を変更する高度なフラグが提供されます。参照キーのフラグの形式の例は次のとおりです。

<key value>[<flag>]
<key value>[<flag1, flag2, flag3>]

UnixGroupコネクタ属性にマップされるグループOIM属性があると仮定します。このOIM属性は、UI参照によって移入されます。プロビジョニング参照の正しい行は次のとおりです。

nullLookup key: Group[LOOKUP] 
Lookup value: UnixGroup }}}

次にフラグとその影響のリストを示します。

プロビジョニング参照フラグ: TRUSTED

一部の属性(たとえば、信頼できるリコンシリエーションの__ENABLE__属性)では、操作の信頼できるターゲット・モードに異なる値を渡す必要があります。ステータス「リコンシリエーション」をサポートするほとんどのコネクタでは、コード・キー: Status[Trusted]、およびデコード値: __ENABLE__が使用されます。

プロビジョニング参照フラグ: IGNORE

IGNOREとしてマーク付けされている属性は、プロビジョニング中無視されます。

プロビジョニング参照フラグ: WRITEBACK

フィールドがWRITEBACKプロパティを持つ場合、そのフォーム・フィールドの更新は次のようになります:

  1. ターゲット・システムの値の更新

  2. ターゲット・システムから戻された値の問合せ(正規化された値を取得するため)

  3. ユーザー・フォームでのこの正規化された値の更新

プロビジョニング参照フラグ: DATE

このフラグを使用して、日付フィールドをマーク付けします。Oracle Identity Managerは、これらのフィールドにローカライズされた日付形式を適用します。

プロビジョニング参照フラグ: PROVIDEONPSWDCHANGE

このフラグを使用して、パスワード変更操作に必要な追加の属性をマーク付けします。デフォルトでは、フラグが適用されていない場合、__PASSWORD__属性のみが送信されます。

12.5.6 プロビジョニング属性マップでの複合属性

ICF共通では、右辺にGroovy式を使用でき、プロビジョニングされた属性の複数のフィールドに基づいた計算を可能にします。たとえば、Active Directoryコネクタでは、名前フィールドのデコード値は次のとおりです。

__NAME__=CN=${Common_Name},${Organization_Name}

12.6 ICF共通でのリコンシリエーションの概念

ICF共通は、Oracle Identity Managerサーバーで定義されたリコンシリエーションの定義およびタイプを利用します。ITリソースの名前/リソース・オブジェクト名およびオブジェクト・タイプは、ICF共通を使用した必須の属性リコンシリエーションです。ずべてのターゲット・システム属性は、最新のトークン属性として使用できます。

この項には次のトピックが含まれます:

12.6.1 リコンシリエーションのタイプ

リコンシリエーションには、リソース(ターゲットとも呼ばれる)から宛先(Oracle Identity Manager)へのアイデンティティを取得することが含まれます。リコンシリエーションは次の基準に基づいて分類できます。

  • 宛先タイプ: 信頼できる、ターゲット・リコンシリエーション。

  • スコープ: 完全、増分リコンシリエーション。

表12-9は、共通のリコンシリエーション・パラメータを説明しています。

表12-9 ICF共通のリコンシリエーション・パラメータ

パラメータ フィールド設定 説明

フィルタ

オプション

フィルタ処理して、リコンサイルされるアカウントの数を制限するかまたは特定の一連のユーザーを選択します。

ITリソース名

必須

リコンシリエーションを実行するITリソース・インスタンスの名前。

オブジェクト・タイプ

定数

ユーザー・オブジェクト・クラス

リソース・オブジェクト名

定数

リコンシリエーションに使用するOIMリソース・オブジェクトを決定します。


12.6.1.1 ターゲットおよび信頼できるリコンシリエーション

信頼できる、ターゲットなどのキーワードを含むスケジュール済タスク名で、宛先のタイプを決定します。スケジュール済タスクを選択することで、信頼できるリコンシリエーションを開始するかまたはターゲット・リコンシリエーションを開始するかが決定されます。

12.6.1.2 完全リコンシリエーションおよび増分リコンシリエーション

完全リコンシリエーションでは、既存のすべてのユーザー・レコードをターゲット・システムからOracle Identity Managerへリコンサイルします。完全リコンシリエーション中、スケジュール済タスクが初めて開始されると、完全リコンシリエーション・モードで実行され、その次からは増分モードで実行されます。スケジュール済タスクの「最新のトークン」フィールドを空にすることで、手動で完全/増分リコンシリエーション・モードを切り替えることができます。

増分リコンシリエーション日付属性および増分リコンシリエーション属性に値が指定されていない場合は、リコンシリエーションはターゲット・リコンシリエーションとしてみなされます。

次のスケジュール済タスクは、オプションの増分リコンシリエーションを提供します。

  • Connector Target User Reconciliation

  • Connector Trusted User Reconciliation

12.6.1.3 高度な増分リコンシリエーション

最新のトークンの書式は、「リコンシリエーション日付書式」スケジュール済タスク・パラメータを設定すると変更されます。書式文字列は、Javaで使用される標準パターンに従う必要があります。Javaで使用される書式文字列の詳細は、Oracle Technology NetworkのJavaのドキュメントを参照してください。

デフォルトでは、最新のトークンは、Unix/POSIX時間を保持するlong値です。

12.6.1.4 リコンシリエーションの削除

一部のコネクタでは、削除されたアカウントの信頼できるリコンシリエーションおよびターゲット・リコンシリエーションの両方をサポートします。ターゲット・リコンシリエーションは、リソースでアカウントを消失したOIMユーザーを評価し、Oracle Identity Managerでこのリソースを割当て解除します。信頼できる削除リコンシリエーションでは、さらにOIMユーザーを削除します。

12.6.1.5 グループ参照リコンシリエーション

一部のコネクタでは、グループまたは参照への他のオブジェクト・クラスのリコンシリエーションをサポートする場合があります。

コネクタでのプロビジョニングを初めて使用する前に、参照リコンシリエーションを開始することをお薦めします。このリコンシリエーションでは、Lookup.CONNECTOR_NAME.ObjectType表に、リコンサイルされるITリソースで使用可能なグループを移入します。リコンシリエーションは、コネクタ参照リコンシリエーションのスケジュール済タスクによって実行されます。

ITリソースのパラメータ名、を設定する必要があり、残りのパラメータは、表12-9で示されるように定数です。

表12-10は、共通のリコンシリエーション・パラメータを示します。

表12-10 共通のグループ参照パラメータ

コード・キー デコード・キー オブジェクト・タイプ

フォーム・フィールド名

コネクタ属性

グループまたはその他


たとえば、コネクタによって返された名前のリストを使用して、プロビジョニング用の参照を移入します。新しいユーザーがプロビジョニングされたとき、グループ・フィールドに使用可能なグループのリストが表示されます。

12.6.2 Oracle Identity Managerのリコンシリエーション・アーティファクトのリスト

Oracle Identity Managerでは、リコンシリエーションを制御する2つの方法があります。

  • リコンシリエーションの参照: マッピング、属性の変換を定義します。

  • スケジュール済タスク - コネクタ側でのリコンシリエーションの実行方法を定義するか、またはリコンシリエーションのアカウント/参照モードを決定します。

12.6.2.1 リコンシリエーションの参照

リコンシリエーションの参照は次のとおりです。

リコンシリエーション属性マップ参照

リコンシリエーション属性マップには、次の組合せが含まれます。

  • コード・キー: リソース・オブジェクトのリコンシリエーション・フィールド名

  • デコード: ターゲット・システム属性名

表12-11は、リコンシリエーションを実行するスケジュール済タスクによって使用されるこのマッピング(Lookup.CONNECTOR_NAME.UM.ReconAttrMap)を示しています。


注意:

リソース・オブジェクトは、信頼できるリコンシリエーション・モードとターゲット・リコンシリエーション・モードで異なります。


表12-11 Lookup.CONNECTOR_NAME.UM.ReconAttrMapの属性マッピング

キー 説明

リコンシリエーション・フィールド名

ConnectorAttributeName

これは、単一値コネクタ属性名から単純なリコンシリエーション・フィールドへの基本的なマッピング・タイプです。

リコンシリエーション・フィールド名~子リコンシリエーション・フィールド名

ConnectorAttributeName

これは、複数値のConnectorAttributeNameを子リコンシリエーション・フィールドへマップします。

リコンシリエーション・フィールド名~子リコンシリエーション・フィールド名

ConnectorAttributeName~EmbeddedObjectClass~EmbeddedAttribute

これは、組込み属性を子リコンシリエーション・フィールドにマップします。


Design Consoleを更新して、子表でリコンシリエーションを設定する例

次の例では、Design Consoleを更新して、子表でリコンシリエーションを設定します。

  • 子表の名前: UD_FF_CHILD

  • 列名: UD_FF_CHILD_ROLE

  • フィールド・ラベル: Role

    前述の子表を使用して、リコンシリエーションを設定するには:

    1. 「リソース管理」の下の「リソース・オブジェクト」を開きます。

    2. 「オブジェクト・リコンシリエーション」タブの下に、新しいリコンシリエーション・データ・フィールドを作成します。


      注意:

      新しいリコンシリエーション・データ・フィールドの作成中に、フィールド名がロールで、フィールド・タイプが複数値属性であることを確認する必要があります。これは、UD_FF_CHILD全体として子表を表します。


    3. 新しく作成したリコンシリエーション・データ・フィールドで右クリックして、新しいプロパティ・フィールドを「ロール」として定義します。これは、子表UD_FF_CHILD_ROLEの実際の列を表します。

    4. 「プロセス定義」の下でリコンシリエーション・フィールド・マッピングを開きます。

    5. 表マップの追加をクリックします。

    6. 「フィールド名」を「ロール」として選択します。

    7. 表名をUD_FF_CHILDとして選択します。

    8. 新しく作成したフィールド名Rolesを右クリックして、適切なフィールド名の定義をクリックします。

    9. フィールド名にRoleを選択します。

    10. UD_FF_CHILD_ROLEとしてプロセス・データ・フィールドを選択します。

    11. Lookup.CONNECTOR_NAME.UM.ReconAttrMapを更新して、新しい参照フィールドにコード・キー = Roles~Roleおよびデコード = Role (これはコンテナ側の属性名です)を含めます。

    12. 「リソース・オブジェクト」に戻り、リコンシリエーション・プロファイルを作成します。

    13. キャッシュをクリアします。

12.7 事前定義済のスケジュール済タスク

ICF-OIM統合は、コネクタがサポートする事前定義済タスクの次のリストを提供します。

12.7.1 LookupReconTask

このスケジュール済タスクはICF SearchOpベースのリコンシリエーションに基づいています。Oracle Identity Managerのタイプ参照のフォーム・フィールドには、事前定義済の一連の値が格納されています。これらの値は、コネクタの検索問合せから生成されます。コード・キー属性は、フォーム・フィールドの名前で、デコード属性は、ターゲット・システム(コネクタとも呼ばれる)上の属性の名前です。

内部的には、このタスクは、最終的にICFクラスに変換される特定のオブジェクト・タイプのコネクタで検索操作を呼び出します。

表12-12 アイデンティティ・コネクタの参照リコンシリエーション属性

キー

ITリソース名

ターゲット・システム・インストール用のITリソースの名前を指定します。

オブジェクト・タイプ

ユーザー

参照名

この属性は、値のフェッチ元である必要のあるデータ・ソースに各参照定義をマップする参照定義の名前を保持します。

デコード属性

参照定義のデコード・キー列を指定します。

コード・キー属性

参照定義のコード・キー列を指定します。

フィルタ

スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。


12.7.2 SearchReconTask

ICF SearchOpベースのリコンシリエーションは次のとおりです。

表12-13 アイデンティティ・コネクタのターゲット検索リコンシリエーション属性

キー

ITリソース名

ターゲット・システム・インストール用のITリソースの名前を指定します。

リソース・オブジェクト名

リコンシリエーションに使用するリソース・オブジェクトの名前を指定します。

オブジェクト・タイプ

ユーザー

フィルタ

スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。

最新のトークン

増分リコンシリエーションの基準の1つとしてフィルタで使用します。ずべてのターゲット・システム属性は、最新のトークン属性として使用できます。この値は次のように計算されます。

リコンシリエーションによって100のレコードがフェッチされ、タイムスタンプが増分リコンシリエーション属性として選択されると、最新のトークン = 100のレコードすべての最大タイムスタンプとなります。スケジュール済タスクの実行終了タイムスタンプではありません。

増分リコンシリエーション日付属性(オプションで日付を入力)

最新のトークンの更新に使用する属性。

注意: 増分リコンシリエーション日付属性に値が指定されていない場合は、リコンシリエーションはターゲット・リコンシリエーションとしてみなされます。

増分リコンシリエーション属性(オプションでlongを入力)

最新のトークンの更新に使用する属性。

注意: 増分リコンシリエーション属性に値が指定されていない場合、リコンシリエーションはターゲット・リコンシリエーションとしてみなされます。


12.7.3 SearchReconDeleteTask

このスケジュール済タスクは、ICF SearchOpベースのリコンシリエーションで使用されます。

表12-14 アイデンティティ・コネクタのターゲット検索削除リコンシリエーション属性

キー

ITリソース名

ターゲット・システム・インストール用のITリソースの名前を指定します。

リソース・オブジェクト名

リコンシリエーションに使用するリソース・オブジェクトの名前を指定します。

オブジェクト・タイプ

ユーザー

フィルタ

スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。


12.7.4 SyncReconTask

このスケジュール済タスクは、ICF SyncOpベースのリコンシリエーションに使用されます。「同期トークン」フィールドは、最後の同期のトークンを保持します。

表12-15 アイデンティティ・コネクタのターゲット同期リコンシリエーション属性

キー

ITリソース名

ターゲット・システム・インストール用のITリソースの名前を指定します。

リソース・オブジェクト名

リコンシリエーションに使用するリソース・オブジェクトの名前を指定します。

オブジェクト・タイプ

ユーザー

フィルタ

スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。

同期トークン

最後に行われた同期のトークン。


12.8 ICFフィルタの構文

GroovyFilterBuilderによって、スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。


警告:

GroovyFilterBuilderは、フィルタ処理にコネクタ属性名を使用します。属性名については、コネクタのドキュメントを参照してください。


次の例では、リコンサイルされるアカウントを「a」から始まるアカウント名のみに制限でき、このフィルタは次の式によって示されます。

startsWith('__NAME__', 'a')

アカウント名が「z」で終わるアカウント名のみにフィルタ処理するにはより高度な検索が必要となり、フィルタは次のようになります。

startsWith('__NAME__', 'a') & endsWith('__NAME__', 'z')

図12-3は、フィルタ構文のグラフィカル・スキームを示しています。

図12-3 フィルタ構文のグラフィック表現

周囲のテキストは図12-3に関する説明です。

また、and/or演算子にショートカットを使用することもできます。

たとえば、and (<filter1>, <filter2>)ではなく、<filter1> & <filter2>とすることができ、同様に、orを|に置き換えることもできます。

EBNF形式の定義:

リコンシリエーションでのフィルタの検索に使用する式言語のExtended Backus–Naur Form (EBNF)の記述は次のとおりです。

syntax = expression ( operator expression )* 
operator = 'and' | 'or' 
expression = ( 'not' )? filter 
filter = ('equalTo' | 'contains' | 'containsAllValues' | 'startsWith' | 'endsWith'  | 'greaterThan' | 'greaterThanOrEqualTo' | 'lessThan' | 'lessThanOrEqualTo' )  '(' 'attributeName' ',' attributeValue ')' 
attributeValue = singleValue  |  multipleValues
singleValue = 'value'
multipleValues = '[' 'value_1' (',' 'value_n')* ']' 

表12-16に、使用可能なフィルタ構文と、対応する説明およびサンプル値を示します。


注意:

ワイルドカード文字のあるフィルタはサポートされません、


表12-16 フィルタ属性のキーワードと構文

フィルタ構文 説明

文字列フィルタ


startsWith('ATTRIBUTE_NAME','PREFIX')

指定された接頭辞で始まる属性値のあるレコードがリコンサイルされます。

例: startsWith('userPrincipalName','John')

この例では、userPrincipalNameが「John」で始まるすべてのレコードがリコンサイルされます。

endsWith('ATTRIBUTE_NAME','SUFFIX')

指定された接尾辞で終わる属性値のあるレコードがリコンサイルされます。

例: endsWith('sn','Doe')

この例では、姓が「Doe」で終わるすべてのレコードがリコンサイルされます。

contains('ATTRIBUTE_NAME','STRING')

指定された文字列が属性の値に含まれるレコードがリコンサイルされます。

例: contains('displayName','Smith')

この例では、表示名に「Smith」を含むすべてのレコードがリコンサイルされます。

containsAllValues('ATTRIBUTE_NAME',['STRING1','STRING2', . . . ,'STRINGn'])

指定の属性に対して指定された文字列をすべて含むレコードがリコンサイルされます。

例: containsAllValues('objectClass',['person','top'])

この例では、「top」と「person」の両方を含むobjectClassのすべてのレコードがリコンサイルされます。

等価フィルタと非等価フィルタ


equalTo('ATTRIBUTE_NAME','VALUE')

構文に指定された値と等しい属性値のあるレコードがリコンサイルされます。

例: equalTo('sAMAccountName','Sales Organization')

この例では、sAMAccountNameが販売組織であるすべてのレコードがリコンサイルされます。

greaterThan('ATTRIBUTE_NAME','VALUE')

構文に指定された値よりも(辞書順または番号順で)大きい属性値(文字列または数字)のあるレコードがリコンサイルされます。

例1: greaterThan('cn','bob')

この例では、共通名「bob」よりも辞書順(つまりアルファベット順)で後に共通名があるすべてのレコードがリコンサイルされます。

例2: greaterThan('employeeNumber','1000')

この例では、従業委員番号が1000番以降のすべてのレコードがリコンサイルされます。

greaterThanOrEqualTo('ATTRIBUTE_NAME','VALUE')

構文で指定された値よりも辞書順または番号順で上回るまたは等しい属性値(文字列または数字)のあるレコードがリコンサイルされます。

例1: greaterThanOrEqualTo('sAMAccountName','S')

この例では、sAMAccountNameが辞書順で「S」と等しいまたは「S」以降であるすべてのレコードがリコンサイルされます。

例2: greaterThanOrEqualTo('employeeNumber','1000')

この例では、従業員番号が1000番以降のすべてのレコードがリコンサイルされます。

lessThan('ATTRIBUTE_NAME','VALUE')

構文で指定された値よりも(辞書順または番号順で)小さい属性値(文字列または数値)のあるレコードがリコンサイルされます。

例1: lessThan('sn','Smith')

この例では、辞書順(つまりアルファベット順)で姓「Smith」より前に姓があるすべてのレコードがリコンサイルされます。

例2: lessThan('employeeNumber','1000')

この例では、従業員番号が1000番未満のすべてのレコードがリコンサイルされます。

lessThanOrEqualTo('ATTRIBUTE_NAME','VALUE')

構文に指定された値よりも辞書順または番号順で下回るまたは等しい属性値(文字列または数字)があるレコードがリコンサイルされます。

例1: lessThanOrEqualTo('sAMAccountName','A')

この例では、sAMAccountNameが辞書順で「A」と等しいまたは「A」よりも若いすべてのレコードがリコンサイルされます。

例2: lessThanOrEqualTo('employeeNumber','1000')

この例では、従業員番号が1000番以下のすべてのレコードがリコンサイルされます。

複合フィルタ


<FILTER1> & <FILTER2>

FILTER1とFILTER2の条件をどちらも満たすレコードがリコンサイルされます。この構文では、2つのフィルタの結合に論理演算子&(アンパサンド記号)が使用されます。

例: startsWith('cn', 'John') & endsWith('sn', 'Doe')

この例では、共通名が「John」で始まり、姓が「Doe」で終わるすべてのレコードがリコンサイルされます。

<FILTER1> | <FILTER2>

FILTER1またはFILTER2の条件のどちらかを満たすレコードがリコンサイルされます。この構文では、2つのフィルタの結合に論理演算子 | (縦線)が使用されます。

例: contains('sAMAccountName', 'Andy') | contains('sn', 'Brown')

この例では、sAMAccountName属性に「Andy」を含むすべてのレコードまたは姓に「Brown」を含むすべてのレコードがリコンサイルされます。

not(<FILTER>)

指定のフィルタ条件を満たさないレコードがリコンサイルされます。

例: not(contains('cn', 'Mark'))

この例では、共通名「Mark」を含まないすべてのレコードがリコンサイルされます。