7 ICFとOracle Identity Governanceの統合
この章では、Oracle Identity GovernanceとICF間の統合の概念について説明します。次の項目が含まれます。
7.1 ICF共通
OIM ICF統合レイヤーは、片面にICF APIが実装され、もう片面でOIM API (icf-oim-intg.jar)を起動します。
これにより、API抽象化が提供されるため、コネクタ開発者の複雑性が削減されます。また、プロビジョニングおよびリコンシリエーション操作もサポートします。ICF共通を使用したプロビジョニングおよびリコンシリエーションの詳細は、ICFを使用したプロビジョニングおよびICF共通でのリコンシリエーションの概念を参照してください。
7.2 統合アーキテクチャ
OIM-ICFコネクタ開発アーキテクチャを使用すると、ICF SPIを使用してコネクタ・バンドルを開発し、OIMと統合できます。
図7-1は、ICF-OIM統合アーキテクチャです。
7.3 グローバルなOracle Identity Governance参照
参照は、Oracle Identity Manager構成メタデータの格納に使用されます。
この項では、グローバルなOracle Identity Manager参照構成を説明します。次の項目が含まれます。
7.3.1 グローバル参照について
参照は、Oracle Identity Manager構成メタデータの格納に使用されます。ITリソースのパラメータ構成参照は、Oracle Identity Manager固有のすべての構成情報をカプセル化するメインの構成参照をポイントします。
参照構成に基づいて、プロパティを次の3つのクラスに分類できます。
-
ITリソース: 接続性プロパティ: ターゲット・システムへの接続の確立に使用するすべてのプロパティが含まれます。
-
メインの構成参照の構成プロパティ: リコンシリエーションまたはプロビジョニングのモードを変更する非接続性プロパティが含まれており、接続には必要ありません。接続性と構成のプロパティにはわずかな違いがあるため、1つのプロパティを両方に割り当てることができます。
-
オブジェクト・タイプ: 特定の参照(たとえば、ユーザー管理構成)、特定のオブジェクト・タイプのマッピング参照(たとえば、ユーザー、グループ、組織単位)。
ノート:
LOADFROMURLフラグは、たとえば、sampleProperty[LOADFROMURL]などのコード(キー)・フィールドのITリソースまたはメインの構成参照で使用できます。これがマーク付けされているプロパティでは、値(デコード値)はURLです。ICF統合は、特定のURLに格納されたファイルのコンテンツを読み込み、実行時に特定のプロパティの値として使用します。これは、直接参照には適合しない大きい値に役立ちます。
図7-2に、ほとんどのコネクタがユーザー管理参照を使用するOracle Identity Managerグローバル参照を示します。
7.3.2 メインの参照構成
ITリソースのパラメータ構成参照は、Oracle Identity Manager固有のすべての構成情報をカプセル化するメインの構成参照をポイントします。
Lookup.CONNECTOR_NAME.Configurationとして示される構成参照は、リコンシリエーションおよびプロビジョニング用に下位参照を参照する最上位レベルのエントリです。構成参照には表7-1に示す構造があります。
表7-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構成参照をキーとして使用できます。 |
7.3.3 ユーザー管理構成
ユーザー管理構成参照は、プロビジョニングおよびリコンシリエーション用のマッピングを制御します。また、これらの参照は、変換および検証を構成する場合があります。
この参照には、次のキーが含まれています。
-
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が実行されます。
図7-2は、ユーザー管理参照構成を説明しています。
表7-2 コネクタのユーザー管理参照構成
構成キー | 値 | 必須フィールド・タイプ | 説明 |
---|---|---|---|
プロビジョニング属性マップ |
Lookup.CONNECTOR_NAME.UM.ProvAttrMap |
はい |
この参照には、Oracle Identity Managerフィールドとアイデンティティ・コネクタ属性との間のマッピングが含まれています。このマッピングは、プロビジョニング時に使用されます。 |
リコンシリエーション属性マップ |
Lookup.CONNECTOR_NAME.UM.ReconAttrMap |
はい |
この参照には、Oracle Identity Managerリコンシリエーション・フィールドとアイデンティティ・コネクタ属性との間のマッピングが含まれています。このマッピングは、リコンシリエーション時に使用されます。 |
リコンシリエーション属性デフォルト |
Lookup.CONNECTOR_NAME.UM.ReconDefaults |
いいえ |
このマッピングには、Oracle Identity Manager属性のデフォルト値が含まれており、リコンシリエーション中にコネクタによって値が指定されない場合に置換されます。 |
リコンシリエーション変換参照 |
Lookup.CONNECTOR_NAME.UM.ReconTransformation |
いいえ |
リコンシリエーション・タスクを実行による変換の参照。変換は、LookupReconTask以外のすべてのリコンシリエーション・タスクで使用されます。 |
リコンシリエーション検証参照 |
Lookup.CONNECTOR_NAME.UM.ReconValidation |
いいえ |
リコンシリエーション・タスクを実行して検証に使用する参照。検証は、LookupReconTask以外のすべてのリコンシリエーション・タスクで使用されます。 |
リコンシリエーション除外リスト |
Lookup.CONNECTOR_NAME.UM.ReconExclusionList |
いいえ |
除外リストは、コネクタの管理されていないアカウントを処理する方法の1つです。リコンシリエーション/プロビジョニング中。除外リストからの一致は、Oracle Identity Managerによって処理されません。 除外リストによってサポートされる2つのタイプのルールがあります。
[PATTERN]タグ接尾辞を付け、パターン一致を可能にします。 コード・キー: ReconFieldName[PATTERN] デコード・キー: 除外パターン 除外パターンは、java.util.regex.Patternで定義された命名体系に従う必要があります。 この表のリコンシリエーション除外リスト・キーを参照してください。 |
プロビジョニング除外リスト |
Lookup.CONNECTOR_NAME.UM.ProvExclusionList |
いいえ |
プロビジョニングでは、コード・キーがフォーム・ラベル名で、デコード・キーが除外値/パターンです。 |
プロビジョニング検証参照 |
Lookup.CONNECTOR_NAME.UM.ProvValidation |
いいえ |
プロビジョニングによる検証の参照。 ICFは、追加のパラメータ・リストで、すべての操作に送信できるOperationOptionの概念を定義します。コネクタ実装によって、これらの操作オプションの使用が定義されます。 |
操作オプション・マップ |
Lookup.CONNECTOR_NAME.UM.OperationOptions |
いいえ |
コード・キーは、定数Operation Options Mapです。操作オプションのマップとして使用される参照のデコード値名。 たとえば、Lookup.Domino.UM.OperationOptionsでは、コード・キーがCACertifier[UPDATE,DELETE]、デコード値がCACertifierで、これは、更新および削除操作のコールに追加の操作オプションとしてこの属性が送信されることを意味します。 アクション実行を構成する場合、スクリプトに3つのパラメータを指定する必要があります。
|
スクリプト作成属性 |
スクリプトのトリガー時間は、参照キーの次のラベルによって制御されます。
スクリプトにアタッチされているプロビジョニング操作タイプは、次のラベルによって制御されます。
|
||
Before Create Action Language |
SCRIPTING_LANGUAGE_NAME |
いいえ |
Groovy/cmdなど、実行されるアクションの言語。アクションの実行を構成する場合、3つのオプションLanguage/File/Targetを指定する必要があります。プロビジョニング操作Create/Update/Deleteに、Before/Afterアクションを構成できます。 |
Before Create Action File |
FILE_PATH |
いいえ |
実行する必要のあるスクリプトを含むファイル。このファイルは、Oracle Identity Managerサーバーにアクセス可能である必要があります。 |
Before Create Action Target |
コネクタまたはリソース |
いいえ |
アクションのターゲットは、コネクタまたはリソースです。この構成に応じて、ICF APIのrunScriptOnConnectorまたはrunScriptOnResourceが使用されます。 |
7.3.4 リコンシリエーション変換参照(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; } }
リコンシリエーション変換参照を格納する参照の名前は、表7-3で示されているように、メイン構成参照(Lookup.CONNECTOR_NAME.Configuration)で定義されています。
表7-3 リコンシリエーション変換参照
キー | 値 | 説明 |
---|---|---|
リコンシリエーション・フィールド名 |
<transformationClassName> com.validationexample.MyTransform |
このリコンシリエーション・フィールドの変換を実行するJavaクラス。 |
7.3.5 リコンシリエーション検証参照(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; } }
リコンシリエーション検証参照を格納する参照の名前は、表7-4で示されているように、メイン構成参照(Lookup.CONNECTOR_NAME.Configuration)で定義されています。
表7-4 リコンシリエーション検証参照
キー | 値 | 説明 |
---|---|---|
リコンシリエーション・フィールド名 |
<transformationClassName> com.validationexample.MyValidator |
このリコンシリエーション・フィールドの検証を実行するJavaクラス。 |
7.3.6 オプションのデフォルト参照
リコンシリエーション用の欠落した値は、次の表で定義されたデフォルト値で置換されます。ユーザー・タイプは、必須のOracle Identity Manager属性で、通常、ターゲット・リソースには含まれていません。デフォルト値を設定できます。
たとえば、信頼できるリコンシリエーションでは、コネクタからの一連の属性に空でない値が必要です。ただし、すべてのリソースがこれらすべての属性タイプを指定できるわけではないため、一部デフォルト値を指定する必要があります。表7-5には、リコンシリエーションの必須属性および使用できるデフォルト値がリストされています。
コネクタがリコンシリエーションに必要なすべての属性を指定できる場合、この表はオプションになります。
表7-5 Lookup.CONNECTOR_NAME.UM.Recon.Defaults.Trusted属性
キー | 値 |
---|---|
姓 |
CONNECTOR_DEPENDENT_VALUE |
組織 |
Xellerate users |
ユーザー・タイプ |
End-User |
従業員タイプ |
Full-Time |
名 |
CONNECTOR_DEPENDENT_VALUE |
ノート:
これらのデフォルト値は、単一値フィールドでのみサポートされており、これは、複数値または子表属性がサポートされていないことを意味します。
7.4 ICF統合用のITリソースについて
ITリソースには、ターゲット・システムの接続パラメータが含まれています。これらのパラメータは、ICF統合を使用するすべてのコネクタに必須です。
表7-6は、共通のITリソース・パラメータを説明しています。
関連項目:
ターゲット・システムおよびコネクタ・サーバーのITリソース・パラメータの詳細は、デプロイ対象のコネクタのドキュメントを参照してください。
表7-6 ITリソース・パラメータ
パラメータ | 説明 |
---|---|
コネクタ・サーバー名 |
コネクタ・サーバーのITリソース名。ITリソースは、タイプがコネクタ・サーバーである必要があります。このフィールドは、必須フィールドですが、値はオプションです。 |
構成参照 |
メイン構成参照の名前。このフィールドは必須フィールドです。 |
7.5 ICFを使用したプロビジョニング
ICFを使用したプロビジョニングは、ICFプロビジョニング・マネージャを使用して行われます。
この項では、ICFを使用したプロビジョニングについて説明します。次の項目が含まれます。
7.5.1 ICFプロビジョニング・マネージャ,
ICFプロビジョニング・マネージャは、コネクタのプロビジョニング・メソッドへのアクセスを、すべてのコネクタを処理する1つのJavaタスクに結合します。
パブリック・メソッドは4つのグループに分けられます。
7.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)
7.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)
7.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)
7.5.2 プロビジョニング参照
Lookup.CONNECTOR_NAME.UM.ProvAttrMapには、単一値の属性および複数値の属性の基本的な属性マッピングが含まれています。
それらは次のとおりです。
-
単一値属性: 単純な文字列キー + 値の組合せ
-
複数値の属性(Oracle Identity Managerの子表): これらは階層の深さによってさらに分けられます。
-
単純な複数値の属性: 子表に格納されているデータのレコードを示します(表7-7の2行目を参照)。
-
複雑な複数値の属性: 組込みオブジェクトの複数のレベル(表7-7の最後の行を参照)。
表7-7 プロビジョニング参照属性
キー 値 説明 フォーム・フィールド・ラベル
ConnectorAttributeName
これは、単純なフォーム・ラベル名から単一値コネクタ属性名への基本的なマッピング・タイプです。
子フォーム名>~<子フォーム・フィールド・ラベル
ConnectorAttributeName
これは、子フォーム・フィールドを複数値ConnectorAttributeNameにマップします。
子フォーム名>~<子フォーム・フィールド・ラベル
ConnectorAttributeName>~<EmbeddedObjectClass>~<EmbeddedAttributeName
これは、子フォーム・フィールドを組込みオブジェクトのEmbeddedAttributeにマップし、これのオブジェクト・クラスはEmbeddedObjectClassで、ConnectorAttributeNameに含まれています。
-
7.5.3 ユーザー以外のオブジェクト・タイプ
たとえば、LDAP組織単位(OUとも呼ばれる)、LDAPグループ、グループなど、プロビジョニングできる追加のエンティティも多数あります。
この場合、次の例のOBJECT_TYPEを記入する必要があります。
-
メイン構成参照Lookup.CONNECTOR_NAME.Configuration
キー 値 説明 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とコネクタ間での属性マッピング。
7.5.4 プロビジョニングのオプションの参照
プロビジョニング用のオプションの参照には、FORM_FIELD_NAMEおよびmyFieldのキーがあります。
次の表に、プロビジョニング用のオプションの参照をリストします。
キー | 値 | 説明 |
---|---|---|
FORM_FIELD_NAME [Create, Update, Delete] |
ConnectorOperationOptionName |
このフィールドは、汎用的な定義に使用されます。 たとえば、フィールドがmyOperationOptionという名前のコネクタに送信されるCreateOpの操作オプションにマップされる場合です。 |
myField[Create] |
myOperationOption |
7.5.5 プロビジョニング検証参照
検証コードは、外部のOIM Javaタスクにあります。これは、Oracle Identity Managerリポジトリにアップロードされる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クラス。 |
7.5.6 プロビジョニング属性マップの参照でのオプション・フラグ
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プロパティを持つ場合、そのフォーム・フィールドの更新は次のようになります:
-
ターゲット・システムの値の更新
-
ターゲット・システムから戻された値の問合せ(正規化された値を取得するため)
-
ユーザー・フォームでのこの正規化された値の更新
-
-
プロビジョニング参照フラグ: DATE
このフラグを使用して、日付フィールドをマーク付けします。Oracle Identity Managerは、これらのフィールドにローカライズされた日付形式を適用します。
-
プロビジョニング参照フラグ: PROVIDEONPSWDCHANGE
このフラグを使用して、パスワード変更操作に必要な追加の属性をマーク付けします。デフォルトでは、フラグが適用されていない場合、__PASSWORD__属性のみが送信されます。
7.6 ICF共通でのリコンシリエーションの概念
ICF共通は、Oracle Identity Managerサーバーで定義されたリコンシリエーションの定義およびタイプを利用します。
ITリソースの名前/リソース・オブジェクト名およびオブジェクト・タイプは、ICF共通を使用した必須の属性リコンシリエーションです。ずべてのターゲット・システム属性は、最新のトークン属性として使用できます。
この項の内容は次のとおりです。
7.6.1 リコンシリエーションのタイプ
リコンシリエーションには、リソース(ターゲットとも呼ばれる)から宛先(Oracle Identity Manager)へのアイデンティティを取得することが含まれます。
この項では、ICF共通のリコンシリエーション・パラメータおよびリコンシリエーション・タイプについて説明します。次の項目が含まれます。
7.6.1.1 リコンシリエーション・タイプについて
リコンシリエーションは次の基準に基づいて分類できます。
-
宛先タイプ: 信頼できるソースのリコンシリエーション、ターゲット・リソースのリコンシリエーション
-
スコープ: 完全リコンシリエーション、増分リコンシリエーション
7.6.1.2 ICF共通のリコンシリエーション・パラメータ
表7-8は、共通のリコンシリエーション・パラメータを示します。
表7-8 ICF共通のリコンシリエーション・パラメータ
パラメータ | フィールド設定 | 説明 |
---|---|---|
フィルタ |
オプション |
フィルタ処理して、リコンサイルされるアカウントの数を制限するかまたは特定の一連のユーザーを選択します。 |
ITリソース名 |
必須 |
リコンシリエーションを実行するITリソース・インスタンスの名前。 |
オブジェクト・タイプ |
定数 |
ユーザー・オブジェクト・クラス |
リソース・オブジェクト名 |
定数 |
リコンシリエーションに使用するOIMリソース・オブジェクトを決定します。 |
7.6.1.3 ターゲットおよび信頼できるリコンシリエーション
信頼できる、ターゲットなどのキーワードを含むスケジュール済タスク名で、宛先のタイプを決定します。スケジュール済タスクを選択することで、信頼できるリコンシリエーションを開始するかまたはターゲット・リコンシリエーションを開始するかが決定されます。
7.6.1.4 完全リコンシリエーションおよび増分リコンシリエーション
完全リコンシリエーションでは、既存のすべてのユーザー・レコードをターゲット・システムからOracle Identity Managerへリコンサイルします。完全リコンシリエーション中、スケジュール済タスクが初めて開始されると、完全リコンシリエーション・モードで実行され、その次からは増分モードで実行されます。スケジュール済タスクの「最新のトークン」フィールドを空にすることで、手動で完全/増分リコンシリエーション・モードを切り替えることができます。
増分リコンシリエーション日付属性および増分リコンシリエーション属性に値が指定されていない場合は、リコンシリエーションはターゲット・リコンシリエーションとしてみなされます。
次のスケジュール済タスクは、オプションの増分リコンシリエーションを提供します。
-
Connector Target User Reconciliation
-
Connector Trusted User Reconciliation
7.6.1.5 高度な増分リコンシリエーション
最新のトークンの書式は、「リコンシリエーション日付書式」スケジュール済タスク・パラメータを設定すると変更されます。書式文字列は、Javaで使用される標準パターンに従う必要があります。Javaで使用される書式文字列の詳細は、Oracle Technology NetworkのJavaのドキュメントを参照してください。
デフォルトでは、最新のトークン
は、Unix/POSIX時間を保持するlong値です。
7.6.1.6 リコンシリエーションの削除
一部のコネクタでは、削除されたアカウントの信頼できるリコンシリエーションおよびターゲット・リコンシリエーションの両方をサポートします。ターゲット・リコンシリエーションは、リソースでアカウントを消失したOracle Identity Managerユーザーを評価し、Oracle Identity Managerでこのリソースを割当て解除します。信頼できる削除リコンシリエーションでは、さらにOracle Identity Managerユーザーを削除します。
7.6.1.7 グループ参照リコンシリエーション
一部のコネクタでは、グループまたは参照への他のオブジェクト・クラスのリコンシリエーションをサポートする場合があります。
コネクタでのプロビジョニングを初めて使用する前に、参照リコンシリエーションを開始することをお薦めします。このリコンシリエーションでは、Lookup.CONNECTOR_NAME.ObjectType
表に、リコンサイルされるITリソースで使用可能なグループを移入します。リコンシリエーションは、コネクタ参照リコンシリエーションのスケジュール済タスクによって実行されます。
ITリソースのパラメータ名、を設定する必要があり、残りのパラメータは、表7-8で示されるように定数です。
表7-9は、共通のリコンシリエーション・パラメータを示します。
表7-9 共通のグループ参照パラメータ
コード・キー | デコード・キー | オブジェクト・タイプ |
---|---|---|
フォーム・フィールド名 |
コネクタ属性 |
グループまたはその他 |
たとえば、コネクタによって返された名前のリストを使用して、プロビジョニング用の参照を移入します。新しいユーザーがプロビジョニングされたとき、グループ・フィールドに使用可能なグループのリストが表示されます。
7.6.2 Oracle Identity Governanceのリコンシリエーション・アーティファクトのリスト
リコンシリエーションを制御する方法は、リコンシリエーション・スケジュール済タスクの参照です。
この項の内容は次のとおりです。
7.6.2.1 リコンシリエーションを制御する方法
Oracle Identity Managerでは、リコンシリエーションを制御する2つの方法があります。
-
リコンシリエーションの参照: マッピング、属性の変換を定義します。
-
スケジュール済タスク - コネクタ側でのリコンシリエーションの実行方法を定義するか、またはリコンシリエーションのアカウント/参照モードを決定します。
7.6.2.2 リコンシリエーションの参照
リコンシリエーション属性マップ参照は、リコンシリエーションの参照です。リコンシリエーション属性マップには、次の組合せが含まれます。
-
コード・キー: リソース・オブジェクトのリコンシリエーション・フィールド名
-
デコード: ターゲット・システム属性名
表7-10は、リコンシリエーションを実行するスケジュール済タスクによって使用されるこのマッピング(Lookup.CONNECTOR_NAME.UM.ReconAttrMap)を示しています。
ノート:
リソース・オブジェクトは、信頼できるリコンシリエーション・モードとターゲット・リコンシリエーション・モードで異なります。
表7-10 Lookup.CONNECTOR_NAME.UM.ReconAttrMapの属性マッピング
キー | 値 | 説明 |
---|---|---|
リコンシリエーション・フィールド名 |
ConnectorAttributeName |
これは、単一値コネクタ属性名から単純なリコンシリエーション・フィールドへの基本的なマッピング・タイプです。 |
リコンシリエーション・フィールド名~子リコンシリエーション・フィールド名 |
ConnectorAttributeName |
これは、複数値のConnectorAttributeNameを子リコンシリエーション・フィールドへマップします。 |
リコンシリエーション・フィールド名~子リコンシリエーション・フィールド名 |
ConnectorAttributeName~EmbeddedObjectClass~EmbeddedAttribute |
これは、組込み属性を子リコンシリエーション・フィールドにマップします。 |
7.7 事前定義済のスケジュール済タスク
OIM ICF統合のスケジュール済タスクは、LookupReconTask、SearchReconTask、SearchReconDeleteTask、SyncReconTaskです。
ICF-OIM統合は、コネクタがサポートする事前定義済タスクの次のリストを提供します。
7.7.1 LookupReconTask
LookupReconTaskは、ICF SearchOpベースのリコンシリエーションに基づいています。
Oracle Identity Managerのタイプ参照のフォーム・フィールドには、事前定義済の一連の値が格納されています。これらの値は、コネクタの検索問合せから生成されます。コード・キー属性は、フォーム・フィールドの名前で、デコード属性は、ターゲット・システム(コネクタとも呼ばれる)上の属性の名前です。
内部的には、このタスクは、最終的にICFクラスに変換される特定のオブジェクト・タイプのコネクタで検索操作を呼び出します。
表7-11 アイデンティティ・コネクタの参照リコンシリエーション属性
キー | 値 |
---|---|
ITリソース名 |
ターゲット・システム・インストール用のITリソースの名前を指定します。 |
オブジェクト・タイプ |
ユーザー |
参照名 |
この属性は、値のフェッチ元である必要のあるデータ・ソースに各参照定義をマップする参照定義の名前を保持します。 |
デコード属性 |
参照定義のデコード・キー列を指定します。 |
コード・キー属性 |
参照定義のコード・キー列を指定します。 |
フィルタ |
スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。 |
7.7.2 SearchReconTask
SearchReconTaskは、ICF SearchOpベースのリコンシリエーションに使用されます。
表7-12 アイデンティティ・コネクタのターゲット検索リコンシリエーション属性
キー | 値 |
---|---|
ITリソース名 |
ターゲット・システム・インストール用のITリソースの名前を指定します。 |
リソース・オブジェクト名 |
リコンシリエーションに使用するリソース・オブジェクトの名前を指定します。 |
オブジェクト・タイプ |
ユーザー |
フィルタ |
スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。 |
最新のトークン |
増分リコンシリエーションの基準の1つとしてフィルタで使用します。ずべてのターゲット・システム属性は、最新のトークン属性として使用できます。この値は次のように計算されます。 リコンシリエーションによって100のレコードがフェッチされ、タイムスタンプが増分リコンシリエーション属性として選択されると、最新のトークン = 100のレコードすべての最大タイムスタンプとなります。スケジュール済タスクの実行終了タイムスタンプではありません。 |
増分リコンシリエーション日付属性(オプションで日付を入力) |
最新のトークンの更新に使用する属性。 ノート: 増分リコンシリエーション日付属性に値が指定されていない場合は、リコンシリエーションはターゲット・リコンシリエーションとしてみなされます。 |
増分リコンシリエーション属性(オプションでlongを入力) |
最新のトークンの更新に使用する属性。 ノート: 増分リコンシリエーション属性に値が指定されていない場合、リコンシリエーションはターゲット・リコンシリエーションとしてみなされます。 |
7.7.3 SearchReconDeleteTask
SearchReconDeleteTaskは、ICF SearchOpベースのリコンシリエーションに使用されます。
表7-13 アイデンティティ・コネクタのターゲット検索削除リコンシリエーション属性
キー | 値 |
---|---|
ITリソース名 |
ターゲット・システム・インストール用のITリソースの名前を指定します。 |
リソース・オブジェクト名 |
リコンシリエーションに使用するリソース・オブジェクトの名前を指定します。 |
オブジェクト・タイプ |
ユーザー |
フィルタ |
スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。 |
7.7.4 SyncReconTask
SyncReconTaskは、ICF SyncOPベースのリコンシリエーションに使用されます。「同期トークン」フィールドは、最後の同期のトークンを保持します。
表7-14 アイデンティティ・コネクタのターゲット同期リコンシリエーション属性
キー | 値 |
---|---|
ITリソース名 |
ターゲット・システム・インストール用のITリソースの名前を指定します。 |
リソース・オブジェクト名 |
リコンシリエーションに使用するリソース・オブジェクトの名前を指定します。 |
オブジェクト・タイプ |
ユーザー |
フィルタ |
スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。 |
同期トークン |
最後に行われた同期のトークン。 |
7.8 ICFフィルタの構文
GroovyFilterBuilderによって、スケジュール済タスクの実行のスピード・アップ/絞込みのための高度なフィルタ式の作成ができます。
警告:
GroovyFilterBuilderは、フィルタ処理にコネクタ属性名を使用します。属性名については、コネクタのドキュメントを参照してください。
この項の内容は次のとおりです。
7.8.1 フィルタの例
フィルタ例には、リコンサイルされるアカウントの数の制限またはフィルタ処理を含めることができます。
次の例では、リコンサイルされるアカウントを「a」から始まるアカウント名のみに制限でき、このフィルタは次の式によって示されます。
startsWith('__NAME__', 'a')
アカウント名が「z」で終わるアカウント名のみにフィルタ処理するにはより高度な検索が必要となり、フィルタは次のようになります。
startsWith('__NAME__', 'a') & endsWith('__NAME__', 'z')
図7-3は、フィルタ構文のグラフィカル・スキームを示しています。
また、and/or演算子にショートカットを使用することもできます。
たとえば、and (<filter1>, <filter2>)ではなく、<filter1> & <filter2>とすることができ、同様に、orを|に置き換えることもできます。
7.8.2 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')* ']'
7.8.3 フィルタ属性のキーワードと構文
フィルタ構文は、文字列フィルタ、等価フィルタ、不等価フィルタおよび複合フィルタが対象となります。
表7-15に、使用可能なフィルタ構文と、対応する説明およびサンプル値を示します。
ノート:
ワイルドカード文字を含むフィルタはサポートされていません。
表7-15 フィルタ属性のキーワードと構文
フィルタ構文 | 説明 |
---|---|
文字列フィルタ |
|
startsWith('ATTRIBUTE_NAME','PREFIX') |
指定した接頭辞で属性値が開始するレコードがリコンサイルされます。 例: この例では、userPrincipalNameがJohnで開始するすべてのレコードがリコンサイルされます。 |
endsWith('ATTRIBUTE_NAME','SUFFIX') |
指定した接尾辞で属性値が終了するレコードがリコンサイルされます。 例: この例では、姓がDoeで終了するすべてのレコードがリコンサイルされます。 |
contains('ATTRIBUTE_NAME','STRING') |
指定した文字列が属性値に含まれるレコードがリコンサイルされます。 例: この例では、表示名にSmithが含まれるすべてのレコードがリコンサイルされます。 |
containsAllValues('ATTRIBUTE_NAME',['STRING1','STRING2', . . . ,'STRINGn']) |
指定したすべての文字列が指定した属性に含まれるレコードがリコンサイルされます。 例: この例では、objectClassにtopとpersonの両方が含まれるすべてのレコードがリコンサイルされます。 |
等価および不等価フィルタ |
|
equalTo('ATTRIBUTE_NAME','VALUE') |
この構文に指定した値と属性値が等しいレコードがリコンサイルされます。 例: この例では、sAMAccountNameがSales Organizationであるすべてのレコードがリコンサイルされます。 |
greaterThan(' |
この構文に指定した値よりも属性値(文字列または数値)が(辞書順または数値順で)大きいレコードがリコンサイルされます。 例1: この例では、共通名が、bobという共通名よりも辞書順(すなわちアルファベット順)で後になるすべてのレコードがリコンサイルされます。 例2: この例では、従業員番号が1000よりも大きいすべてのレコードがリコンサイルされます。 |
greaterThanOrEqualTo('ATTRIBUTE_NAME','VALUE') |
この構文に指定した値に対して、属性値(文字列または数値)が辞書順または数値順で等しいか大きいレコードがリコンサイルされます。 例1: この例では、sAMAccountNameが辞書順でS以上のすべてのレコードがリコンサイルされます。 例2: この例では、従業員番号が1000以上のすべてのレコードがリコンサイルされます。 |
lessThan('ATTRIBUTE_NAME','VALUE') |
この構文に指定した値よりも属性値(文字列または数値)が(辞書順または数値順で)小さいレコードがリコンサイルされます。 例1: この例では、姓がSmithという姓よりも辞書順(すなわちアルファベット順)で後になるすべてのレコードがリコンサイルされます。 例2: この例では、従業員番号が1000未満のすべてのレコードがリコンサイルされます。 |
lessThanOrEqualTo('ATTRIBUTE_NAME','VALUE') |
この構文に指定した値に対して、属性値(文字列または数値)が辞書順または数値順で等しいか小さいレコードがリコンサイルされます。 例1: この例では、sAMAccountNameが辞書順でA以下のすべてのレコードがリコンサイルされます。 例2: この例では、従業員番号が1000番以下のすべてのレコードがリコンサイルされます。 |
複合フィルタ |
|
<FILTER1> & <FILTER2> |
filter1とfilter2両方の条件を満たすレコードがリコンサイルされます。この構文では、論理演算子& (アンパサンド記号)を使用して両方のフィルタを結合します。 例: この例では、共通名がJohnで開始し姓がDoeで終了するすべてのレコードがリコンサイルされます。 |
<FILTER1> | <FILTER2> |
filter1とfilter2の条件のいずれかを満たすレコードがリコンサイルされます。この構文では、論理演算子| (縦棒)を使用して両方のフィルタを結合します。 例: この例では、sAMAccount Name属性にAndyを含むレコードと姓にBrownを含むレコードがすべてリコンサイルされます。 |
not(<FILTER>) |
指定のフィルタ条件を満たさないレコードがリコンサイルされます。 例: この例では、共通名Markを含まないすべてのレコードがリコンサイルされます。 |