ヘッダーをスキップ
Oracle Identity Manager Database Applications Table Connectorガイド
リリース9.0.4
E05496-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 コネクタの構成

プロビジョニングおよびリコンシリエーションを有効化するために使用する構成XMLファイルを変更して、コネクタを構成します。この章では、構成XMLファイルをターゲットのDatabase Application Tablesの構造と一致するように分析および変更する方法を説明します。

サンプルの構成XMLの詳細は、「コネクタを構成するファイルおよびディレクトリ」の項を参照してください。

この章では、サンプルの構成操作を使用して、使用するサンプルの構成XMLファイルをカスタマイズするために行う様々な変更について説明します。

構成XMLファイルは、xdb_app_map.xsdファイルのスキーマ定義に対して検証され、構成XMLファイルへの変更内容がスキーマ定義に準拠していることが確認されます。そのため、構成XMLファイルの変更前に、xdb_app_map.xsdファイルのスキーマ定義を確認することをお薦めします。


注意:

使用する構成XMLファイルでは、xdb_app_map.xsdxsi:noNamespaceSchemaLocation属性の値として指定する必要があります。次に例を示します。
<xdb_app_map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xdb_app_map.xsd" name="OracleApp1">

xdb_app_map.xsdファイルと構成XMLファイルが同じディレクトリにない場合は、xsi:noNamespaceSchemaLocation属性の値として、このファイルの絶対パスおよび名前を指定する必要があります。次に例を示します。

<xdb_app_map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Absolute_path/xdb_app_map.xsd" name="OracleApp1">

構成XMLファイルは、次のセクションに分けることができます。

target_application

このセクションは、ターゲット・アプリケーションの識別に使用されます。このセクションは、構成ファイルのメンテナンスを簡略化する情報を提供します。

セクション 説明 属性
Database データベースの名前 name
target_app_name アプリケーションの名前 なし
target_app_ver アプリケーションのバージョン なし
target_app_provider アプリケーションのベンダーまたはプロバイダ なし

target_database

このセクションには、データベース接続プロパティの構成に使用される情報が含まれます。

mapping_data

このセクションは、構成ファイルの変更履歴のトラッキングに使用されます。

database_adapter

このセクションは複数の操作に分割されます。各操作は、さらに1つ以上のタスクに分割されます。操作内のタスク数は、操作に関連する表の数によって異なります。ターゲット・アプリケーション表に基づいて、タスクは列に分割されます。

次の表で、database_adapterセクションの編成を説明します。

セクションの説明 属性の説明 属性の使用可能な値
operation

各操作はOracle Identity Managerコネクタとリンクされます。

name

Oracle Identity Manager操作のタイプ。

createupdatedeletereconcileCreateUpdateまたはreconcileDelete
task

各操作は、1つ以上のタスクに分割されます。操作内のタスク数は、操作に関連する表の数によって異なります。

table_name

タスクが実行される表の名前。

任意の有効な表名

xeltask_type

データベースのタスクのタイプ。

insertupdatedeleteまたはselect
column

ターゲット・アプリケーション表の単一の列を表します。

col_name

列の名前。

任意の有効な列の名前

data_type

データ型。

VARCHARVARCHAR2CHARLONGVARCHARREALDOUBLENUMERICDECIMALFLOATDATETIMETIMESTAMPNULLBOOLEANOTHERまたはINTEGER

data_typ_size

データ型のサイズ。

20

col_info

表の索引付けおよびその他の表との関係。

primaryまたはforeign

required

この列でNULL値を許可するかどうかを指定します。

trueまたはfalse

col_type

ユーザーの作成時に使用される列のデータ・ソース。

  • substitute: SYSDATEなどを使用する場合
  • xellerate: Oracle Identity Managerが指定

  • default: デフォルト値


xel_data_source

col_typesubstituteの場合、xel_data_sourceには置換文字列が保持されます(この文字列は、sysdateおよびsequence.nextValなどのファンクションに使用できます)。

col_typedefaultの場合、xel_data_sourceにはデフォルト値が保持されます。

col_typexellerateの場合、xel_data_sourceにはマッピングされたOracle Identity Managerの属性値が保持されます。

  • col_typesubstituteの場合のサンプル文字列値:
    column col_name="USR_LAST_UPDATE" data_type="DATE" data_typ_size="60" 
    required="false" col_type="substitute"
    
    
  • col_typedefaultの場合のサンプル文字列値:

    col_name="USR_STATUS" data_type="VARCHAR2" data_typ_size="5" 
    required="true" col_type="default" xel_data_source="true"
    
    
  • col_typexellerateの場合のサンプル文字列値:

    col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20" col_info="primary" 
    required="true" col_type="xellerate" xel_data_source="xel_usr_id"
    
    

encrypt

このデータを暗号化する必要があるかどうかを指定します。

trueまたはfalse

reconcile

このフィールドをリコンサイルできるかどうかを指定します。

trueまたはfalse

encryption_impl

この操作を提供する暗号化メソッドの実装クラス。

完全修飾された任意のクラス名
look_up_group

参照フィールドのグループ化。

logic_operator

2つの参照グループと操作を接続するために使用されます。

ANDまたはOR
record_lookup_key

このタグは、表内の特定レコードの識別に必要な情報の収集に使用されます。表内のレコードの識別には、複数の参照キーを使用できます。

logic_operator

2つのレコードの参照キー(列)とグループ内の操作を接続するために使用されます。

ANDまたはOR

comparison_operator

データを列の指定されたデータと比較するために使用される演算子。

&lt;

&gt;

=

&gt;=

&lt;=

!=


table_name

表の名前。

任意の表名

col_name

列の名前。

任意の列名

data_type

データ型。

VARCHARVARCHAR2CHARLONGVARCHARREALDOUBLENUMERICDECIMALFLOATDATETIMETIMESTAMPNULLBOOLEANOTHERまたはINTEGER

data_typ_size

データ型のサイズ。

20

col_info

表の索引付けおよびその他の表との関係。

primaryまたはforeign

required

この列でNULL値を許可するかどうかを指定します。

trueまたはfalse

col_type

ユーザーの作成時に使用される列のデータ・ソース。

substitutexellerateおよびdefaultの他に、record_lookup_keyには次のタグも適用できます。

join

このタグには、複数の表に共通の列名が含まれます。

XellerateまたはDefault

xel_data_source

前述のcolumnセクションの説明に加え、col_typejoinの場合、xel_data_sourceの値はlogic_operatorを使用して論理的に比較されるマッピングされたOracle Identity Managerの属性名です。

<record_lookup_key  logic_operator="NA" comparison_operator="=" 
table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID" data_type="VARCHAR2" 
data_typ_size="20" col_info="primary" required="true" col_type="join" 
xel_data_source="xel_usr_id" /><record_lookup_key  logic_operator="AND" 
comparison_operator="=" table_name="XELUSER1.MDL2_USER_ADDN_DET" 
col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20" col_info="foreign" 
required="true" col_type="join" xel_data_source="xel_usr_id"/>


この章で説明するサンプル構成は、OraApp2.xml構成XMLファイルのコードに基づいています。ただし、この項で説明される手順は、ユーザーが使用する任意の構成XMLファイルに適用できます。

次のサンプルの表は、OraApp2.xml構成XMLファイルに定義されているレコードに対応しています。

MDL2_USER_PROF

フィールド名 型および長さ コメント 必須/オプション
USR_ID VARCHAR(20) 主キー 必須
USR_FIRST_NAME VARCHAR(60) なし 必須
USR_LAST_NAME VARCHAR(60) なし 必須
USR_PASSWORD VARCHAR(40) なし 必須
USR_STATUS VARCHAR(5) デフォルト値はtrue 必須
USR_LAST_UPDATE DATE SYSDATE 必須

MDL2_USER_ADDN_DET

フィールド名 型および長さ コメント 必須/オプション
USR_ID VARCHAR(20) 外部キー 必須
USR_GROUP VARCHAR(50) なし オプション
USR_ROLE VARCHAR(50) なし オプション
USR_TITLE VARCHAR(50) なし オプション
USR_DEPT VARCHAR(50) なし オプション
USR_EMAIL VARCHAR(60) なし オプション
USR_COMM_LANG VARCHAR(50) なし オプション
USR_LOGON_LANG VARCHAR(50) なし オプション
USR_TEL_NO VARCHAR(15) なし オプション
USR_TIME_ZONE VARCHAR(50) なし オプション
USR_DATE_FMT VARCHAR(50) なし オプション
USR_DEC_NTN VARCHAR(50) なし オプション
USR_LAST_UPDATE DATE SYSDATE 必須

これらのサンプルの表に基づき、次の項では構成XMLファイルの変更の情報を示します。


注意:

これらの項で説明するサンプルのXMLコードで、XELUSER1はデータベース・ユーザーの仮のログインIDです。

リコンシリエーション用の構成XMLファイルの変更

様々なリコンシリエーション操作用にコネクタを有効にする手順は、次の項で説明しています。

これらの項では、OraApp2.xml構成XMLファイルのコードの変更に基づく手順を説明します。「ITリソースの定義」の項に示されているConfiguration XML Pathパラメータの値として指定する構成XMLファイルに、同様の変更を行う必要があります。


関連項目:

コネクタのインストール・メディア・ディレクトリにある様々な構成XMLファイルの詳細は、「コネクタを構成するファイルおよびディレクトリ」の項を参照してください。

新規および更新されたユーザー・プロファイルのリコンシリエーションの構成


注意:

この項で説明する手順を実行する必要があります。信頼できないソース・リコンシリエーション・モードの場合、新しいユーザー・プロファイルのリコンシリエーションの結果、Oracle Identity Managerで(このターゲット・システムの)リソース・オブジェクトが作成されます。

各リコンシリエーション・イベント・レコードのデフォルトのデータ・フィールドは、構成XMLファイルから取得されます。新規および更新されたユーザー・プロファイルのリコンシリエーションの場合、データ・フィールドは、XMLファイルのreconcileCreateUpdateセクションで宣言されます。

次に、OraApp2.xmlファイルの、新規および更新されたユーザー・プロファイルのリコンシリエーションのためのサンプル・コードを示します。


関連項目:

OraApp2.xmlファイルは、「コネクタを構成するファイルおよびディレクトリ」の項にリストされています。

<operation name = "reconcileCreateUpdate" enabled="true">
    <task table_name="XELUSER1.MDL2_USER_PROF" xeltask_type="select">
        <column table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
        data_type="VARCHAR2" data_typ_size="20" col_info="primary"
        required="true"
        col_type="xellerate" xel_data_source="xel_usr_id" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_ID"
        data_type="VARCHAR2" data_typ_size="20" col_info="foreign"
        required="true"  col_type="xellerate" xel_data_source="xel_usr_id" />
        <look_up_group logic_operator="NA">
             <record_lookup_key table_name="XELUSER1.MDL2_USER_PROF"
             logic_operator="NA" comparison_operator="&gt;="
             col_name="USR_LAST_UPDATE" data_type="DATE" data_typ_size="50"
             col_type="join" xel_data_source="XEL_LAST_RECON_TIME"/>
             <record_lookup_key table_name="XELUSER1.MDL2_USER_ADDN_DET"
             logic_operator="AND" comparison_operator="&gt;="
             col_name="USR_LAST_UPDATE" data_type="DATE" data_typ_size="50"
             col_type="join" xel_data_source="XEL_LAST_RECON_TIME"/>
        </look_up_group>
        <look_up_group logic_operator="AND">
             <record_lookup_key logic_operator="NA" comparison_operator="="
             table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
             data_type="VARCHAR2" data_typ_size="20" col_info="primary"
             required="true" col_type="join" xel_data_source="xel_usr_id" />
             <record_lookup_key logic_operator="AND" comparison_operator="="
             table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_ID"
             data_type="VARCHAR2" data_typ_size="20" col_info="foreign"
             required="true" col_type="join" xel_data_source="xel_usr_id" />
        </look_up_group>
    </task>
    <task table_name="XELUSER1.MDL2_USER_PROF" xeltask_type="select">
        <column table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
        data_type="VARCHAR2" data_typ_size="20" col_info="primary"
        required="true" col_type="xellerate" xel_data_source="xel_usr_id" />
        <column table_name="XELUSER1.MDL2_USER_PROF
        col_name="USR_FIRST_NAME" data_type="VARCHAR2" data_typ_size="60"
        required="true" col_type="xellerate" xel_data_source="xel_usr_first_
        name" />
        <column table_name="XELUSER1.MDL2_USER_PROF"
        col_name="USR_FIRST_NAME" data_type="VARCHAR2" data_typ_size="60"
        required="true" col_type="xellerate" xel_data_source="xel_usr_first_
        name" />
        <column table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_LAST_NAME"
        data_type="VARCHAR2" data_typ_size="60" required="true" col_
        type="xellerate" xel_data_source="xel_usr_last_name" />
        <column table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_PASSWORD"
        data_type="VARCHAR2" data_typ_size="40" required="true" col_
        type="xellerate" xel_data_source="xel_usr_password" encrypt="false"
        reconcile="true" encryption_impl=
        "com.thortech.xl.integration.dbadapter.security.EncryptionSupportImpl
        "/>
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_GROUP" data_type="VARCHAR2" data_typ_size="50"
        required="true" col_type="xellerate" xel_data_source="xel_usr_group"
        />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_ROLE"
        data_type="VARCHAR2" data_typ_size="50" required="false" col_
        type="xellerate" xel_data_source="xel_usr_role" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_TITLE"
        data_type="VARCHAR2" data_typ_size="50" required="false" col_
        type="xellerate" xel_data_source="xel_usr_title" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_DEPT"
        data_type="VARCHAR2" data_typ_size="50" required="false" col_
        type="xellerate" xel_data_source="xel_usr_dept" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_EMAIL"
        data_type="VARCHAR2" data_typ_size="60" required="false" col_
        type="xellerate" xel_data_source="xel_usr_email" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_COMM_LANG" data_type="VARCHAR2" data_typ_size="50"
        required="false" col_type="xellerate" xel_data_source="xel_usr_comm_
        lang" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_LOGON_LANG" data_type="VARCHAR2" data_typ_size="50"
        required="false" col_type="xellerate" xel_data_source="xel_usr_logon_
        lang" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_TEL_NO" data_type="VARCHAR2" data_typ_size="15"
        required="false" col_type="xellerate" xel_data_source="xel_usr_tel_
        no" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_TIME_ZONE" data_type="VARCHAR2" data_typ_size="50"
       required="false" col_type="xellerate" xel_data_source="xel_usr_time_zone"/>
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_DATE_FMT" data_type="VARCHAR2" data_typ_size="50"
        required="false" col_type="xellerate" xel_data_source="xel_usr_date_
        fmt" />
        <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
        col_name="USR_DEC_NTN" data_type="VARCHAR2" data_typ_size="50"
        required="false" col_type="xellerate" xel_data_source="xel_usr_dec_
        ntn" />
        <look_up_group logic_operator="NA">
            <record_lookup_key table_name="XELUSER1.MDL2_USER_PROF"
            logic_operator="NA" comparison_operator="&gt;="
            col_name="USR_LAST_UPDATE" data_type="DATE" data_typ_size="50"
            col_type="join" xel_data_source="XEL_LAST_RECON_TIME"/>
            <record_lookup_key table_name="XELUSER1.MDL2_USER_ADDN_DET"
           logic_operator="AND" comparison_operator="&gt;="
           col_name="USR_LAST_UPDATE" data_type="DATE" data_typ_size="50"
           col_type="join" xel_data_source="XEL_LAST_RECON_TIME"/>
       </look_up_group>
       <look_up_group logic_operator="AND">
           <record_lookup_key logic_operator="NA" comparison_operator="="
           table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
           data_type="VARCHAR2" data_typ_size="20" col_info="primary"
           required="true" col_type="xellerate" xel_data_source="xel_usr_id"
           />
       </look_up_group>
       <look_up_group logic_operator="AND">
           <record_lookup_key logic_operator="NA" comparison_operator="="
           table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
           data_type="VARCHAR2" data_typ_size="20" col_info="primary"
           required="true" col_type="join" xel_data_source="xel_usr_id" />
           <record_lookup_key logic_operator="AND" comparison_operator="="
           table_name="XELUSER1.MDL2_USER_ADDN_DET" col_name="USR_ID"
           data_type="VARCHAR2" data_typ_size="20" col_info="foreign"
           required="true" col_type="join" xel_data_source="xel_usr_id" />
       </look_up_group>
    </task>
</operation>

このサンプルの構成XMLでは、xel_data_sourceタグに指定されている値がデータ要素の名前です。これらの名前は変更できます。同じ名前が、各リコンシリエーション・イベント・レコードの要素のラベルとしても使用されます。

作成または更新のリコンシリエーション操作では、2つのタスクが実行されます。1つ目のタスクでは、最後のリコンシリエーション後に作成または変更されたユーザーが特定されます。このタスクでは、新規および変更されたユーザーのキー・フィールド値のリストが戻されます。

たとえば、ユーザーを識別するためのキー・フィールドがユーザーIDの場合には、このタスクにより、最後のリコンシリエーションの実行後に作成または変更されたユーザー・プロファイルに対応するユーザーIDのリストが戻されます。

2つ目のタスクでは、リコンシリエーション・イベントの作成に必要な、新規および変更された全ユーザーに関する情報がすべて収集されます。タスクを分割して設計しているのは、メモリーを最適に使用するためです。

タスクの参照グループは、関連データを取得するための参照条件の作成に役立ちます。このサンプルの構成XMLコードでは、次の参照条件を実装します。

  • ユーザー・プロファイル情報が格納されている2つの表を結合し、それらのユーザーの重複しないデータを取得する。

  • 最後のリコンシリエーション後に変更されたレコードのみを取得することで増分リコンシリエーションを実行する。

2つ目のタスクではユーザーIDをもう1つ参照するため、1つ目のタスクを使用することで各ユーザーIDに対してユーザー情報を取得できます。

前のリコンシリエーションの実行が完了した時間は、Reconciliation Timestamp ITリソース・パラメータに保存されます。この値は、現行のリコンシリエーションの実行終了後に、新しいシステムのタイムスタンプで更新されます。この値は、構成XMLファイルで指定されているように、ターゲット・データベース表の最終更新時間と比較されます。このファイルでは、最後にリコンシリエーションの実行が完了した時間は、XEL_LAST_RECON_TIMEとして表されます。これは、コネクタ構成定数です。

ユーザー・フィールドを更新した場合には、XEL_LAST_RECON_TIMEの値を両方の表の現在のシステムの日付(sysdate)に設定する必要があります。

たとえば、ユーザーの名を次のように更新したとします。

UPDATE MDL2_USER_PROF SET usr_first_name = 'John' WHERE usr_id='jdoe'

その場合、次の変更も行う必要があります。

UPDATE MDL2_USER_PROF SET usr_last_update =sysdate WHERE usr_id='jdoe'
UPDATE MDL2_USER_ADDN_DET SET usr_last_update =sysdate WHERE usr_id=' jdoe'


注意:

増分リコンシリエーションは、レコードの変更または作成中に、ターゲット・アプリケーションがデータベースの最終更新時間を更新できる場合にのみ実行可能です。ターゲット・アプリケーションにこの機能がない場合には、最終リコンシリエーション時間を比較する参照グループを作成しないでください。

削除されたユーザー・プロファイルのリコンシリエーションの構成


注意:

削除されたユーザー・プロファイルのリコンシリエーションを構成しない場合は、この手順を行う必要はありません。

削除されたユーザー・プロファイルのリコンシリエーションの場合、デフォルトのデータ要素は、構成XMLファイルのreconcileDeleteセクションで宣言されます。

次に、OraApp2.xml構成XMLファイルの、ターゲット・システムから削除されたユーザーのリコンシリエーションのためのサンプル・コードを示します。

<operation name = "reconcileDelete" enabled="true">
     <task table_name="XELUSER1.MDL2_USER_PROF" xeltask_type="select">
          <column table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
          data_type="VARCHAR2" data_typ_size="20" col_info="primary"
          required="true" col_type="xellerate" xel_data_source="xel_usr_id"
          />
          <column table_name="XELUSER1.MDL2_USER_ADDN_DET"
          col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20"
          col_info="foreign" required="true" col_type="xellerate"
          xel_data_source="xel_usr_id" />
          <look_up_group logic_operator="NA">
               <record_lookup_key logic_operator="NA" comparison_operator="="
               table_name="XELUSER1.MDL2_USER_PROF" col_name="USR_ID"
               data_type="VARCHAR2" data_typ_size="20" col_info="primary"
               required="true" col_type="join"xel_data_source="xel_usr_id"/>
               <record_lookup_key logic_operator="AND" comparison_
               operator="=" table_name="XELUSER1.MDL2_USER_ADDN_DET"
               col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20"
               col_info="foreign" required="true" col_type="join
               xel_data_source="xel_usr_id" />
          </look_up_group>
     </task>
</operation>

削除リコンシリエーション・イベントの作成に必要なのは、ユーザーIDのみです。そのためこの構成XMLコードでは、ユーザーIDのみが、参照グループに指定された条件に基づいて取得されるデータ要素として示されています。

部分リコンシリエーション

デフォルトでは、前回のリコンシリエーションの実行後に追加または変更されたすべてのターゲット・システム・レコードが、現在のリコンシリエーションの実行中にリコンサイルされます。ただし、リコンサイルされるターゲット・システム・レコードのカテゴリを指定することができます。これは、リコンシリエーション・モジュールのフィルタを作成して行います。

フィルタを作成するには、構成XMLファイルのreconcileCreateUpdateセクションで、作成するフィルタの参照グループ・タグを追加します。

たとえば、USR_FIRST_NAMEフィールドの値がJohnであるレコードのみをフェッチするフィルタを作成する場合は、構成XMLファイルに次のような参照グループ・タグを追加します。

<look_up_group logic_operator="AND">
<record_lookup_key logic_operator="NA" comparison_operator="=" table_name="XELUSER1.TBL_USERS" col_name="USR_FIRST_NAME" data_type="VARCHAR2" data_typ_size="100" col_type="substitute" xel_data_source="'John'" />
</look_up_group>

フィルタを作成したら、「スケジュール済タスク属性の値の指定」で説明した手順の実行中に、スケジュール済タスクのIsFilter属性をYesに設定する必要があります。この属性の値を変更して、フィルタを有効化または無効化できます。

リコンサイルされるレコード数の指定

最初のリコンシリエーションの実行中に、ターゲット・システムのすべてのレコードがOracle Identity Managerにコピーされます。リコンサイルされるレコード数によっては、このプロセスに長い時間がかかる場合があります。これにより、コネクタのデプロイ直後にリコンシリエーションを試行するだけの場合に、不必要な遅延が発生することがあります。

この遅延を回避するために、リコンサイルされるレコード数を指定できます。これは、スケジュール済タスクのrecord_count属性を使用して行います。この属性については、「スケジュール済タスク属性の値の指定」で説明します。

プロビジョニング用の構成XMLファイルの変更

様々なプロビジョニング操作用にコネクタを有効にする手順は、次の項で説明しています。

これらの項では、OraApp2.xml構成XMLファイルのコードの変更に基づく手順を説明します。「ITリソースの定義」の項に示されているConfiguration XML Pathパラメータの値として指定する構成XMLファイルに、同様の変更を行う必要があります。


関連項目:

コネクタのインストール・メディア・ディレクトリにある様々な構成XMLファイルの詳細は、「コネクタを構成するファイルおよびディレクトリ」の項を参照してください。

ユーザー構成の作成

ユーザーを作成するには、構成XMLファイルに表名、列名および各列のプロパティが含まれている必要があります。これは、次に示すOraApp2.xml構成XMLファイルのXMLのサンプル・コードで説明しています。

<operation name="create">
    <task table_name="XELUSER1.MDL2_USER_PROF" xeltask_type="insert">
        <column col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20"
        col_info="primary" required="true" col_type="xellerate"
        xel_data_source="xel_usr_id" />
        <column col_name="USR_FIRST_NAME" data_type="VARCHAR2"
        data_typ_size="60" required="true" col_type="xellerate"
        xel_data_source="xel_usr_first_name" />
        <column col_name="USR_LAST_NAME" data_type="VARCHAR2"
        data_typ_size="60" required="true" col_type="xellerate"
        xel_data_source="xel_usr_last_name" />
        <column col_name="USR_PASSWORD" data_type="VARCHAR2"
        data_typ_size="40" required="true" col_type="xellerate"
        xel_data_source="xel_usr_password" encrypt="false" reconcile="false"
        encryption_impl=
        "com.thortech.xl.integration.dbadapter.security.EncryptionSu
        pportImpl" />
        <column col_name="USR_LAST_UPDATE" data_type="DATE"
        data_typ_size="60" required="true" col_type="substitute"
        xel_data_source="sysdate" />
    </task>
    <task table_name="XELUSER1.MDL2_USER_ADDN_DET" xeltask_type="insert">
        <column col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20"
        col_info="primary" required="true" col_type="xellerate"
        xel_data_source="xel_usr_id" />
        <column col_name="USR_GROUP" data_type="VARCHAR2"
        data_typ_size="50" required="true" col_type="xellerate"
        xel_data_source="xel_usr_group" />
        <column col_name="USR_ROLE" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_role" />
        <column col_name="USR_TITLE" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_title" />
        <column col_name="USR_DEPT" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_dept" />
        <column col_name="USR_EMAIL" data_type="VARCHAR2"
        data_typ_size="60" required="false" col_type="xellerate"
        xel_data_source="xel_usr_email" />
        <column col_name="USR_COMM_LANG" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_comm_lang" />
        <column col_name="USR_LOGON_LANG" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_logon_lang" />
        <column col_name="USR_TEL_NO" data_type="VARCHAR2"
        data_typ_size="15" required="false" col_type="xellerate"
        xel_data_source="xel_usr_tel_no" />
        <column col_name="USR_TIME_ZONE" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_time_zone" />
        <column col_name="USR_DATE_FMT" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_date_fmt" />
        <column col_name="USR_DEC_NTN" data_type="VARCHAR2"
        data_typ_size="50" required="false" col_type="xellerate"
        xel_data_source="xel_usr_dec_ntn" />
        <column col_name="USR_LAST_UPDATE" data_type="DATE"
        data_typ_size="60" required="true" col_type="substitute"
        xel_data_source="sysdate"/>
    </task>
</operation>

ユーザー・プロパティ構成の更新

更新操作には、更新する列のユーザーおよびプロパティを識別するための参照情報が必要です。これは、次に示すOraApp2.xml構成XMLファイルのサンプル・コードで説明しています。

<operation name="update" xel_data_source="xel_usr_dept">
     <task table_name="XELUSER1.MDL2_USER_ADDN_DET" xeltask_type="update">
          <column col_name="USR_DEPT" data_type="VARCHAR2"
          data_typ_size="50" required="true" col_type="xellerate"
          xel_data_source="xel_usr_dept" />
          <column col_name="USR_LAST_UPDATE" data_type="DATE"
          data_typ_size="60"  required="true" col_type="substitute"
          xel_data_source="sysdate" />
          <look_up_group logic_operator="NA">
              <record_lookup_key
              table_name="XELUSER1.MDL2_USER_ADDN_DET"
              logic_operator="NA"  comparison_operator="=" col_name="USR_ID"
              data_type="VARCHAR2" data_typ_size="20" required="true"
              col_type="xellerate" xel_data_source="xel_usr_id"/>
          </look_up_group>
     </task>
</operation>

ユーザー・パスワード構成の更新

パスワードの更新操作は、ユーザーの更新操作と同様に機能します。また、encrypt属性がtrueに設定されている場合には、データの暗号化も実行されます。

これは、次に示すOraApp2.xml構成XMLファイルのサンプル・コードで説明しています。

<operation name="update" xel_data_source="xel_usr_password">
    <task table_name="XELUSER1.MDL1_USER_PROF" xeltask_type="update">
         <column col_name="USR_PASSWORD" data_type="VARCHAR2"
         data_typ_size="40" required="true" col_type="xellerate"
         xel_data_source="xel_usr_password" encrypt="true" reconcile="false"
         encryption_impl=
         "com.thortech.xl.integration.dbadapter.security.EncryptionSu
         pportImpl" />
         <column col_name="USR_LAST_UPDATE" data_type="DATE"
         data_typ_size="60"  required="true" col_type="substitute"
         xel_data_source="sysdate" />
         <look_up_group logic_operator="NA">
              <record_lookup_key table_name="XELUSER1.MDL1_USER_PROF"
              logic_operator="NA"  comparison_operator="=" col_name="USR_ID"
              data_type="VARCHAR2" data_typ_size="20" required="true"
              col_type="xellerate" xel_data_source="xel_usr_id"/>
         </look_up_group>
    </task>
</operation>

ユーザー構成の削除

削除操作に必要なのは、削除されるユーザーを検索するための参照情報のみです。列の情報は、表内のユーザーの検索に使用されます。これは、次に示すOraApp2.xml構成XMLファイルのXMLのサンプル・コードで説明しています。

lookup_up_groupタグは、record_lookup_keyに指定されている参照条件のグループ化に使用されます。


注意:

両方の表からユーザー・レコードを削除するために、2つのタスクが実行されます。セカンダリ表に関連するタスクは、プライマリ表のタスクの前に実行する必要があります。順序が適切でない場合には、参照整合性の例外がスローされます。

<operation name="delete">
    <task table_name="XELUSER1.MDL2_USER_ADDN_DET" xeltask_type="delete">
        <look_up_group logic_operator="NA">
             <record_lookup_key logic_operator="NA"  comparison_operator="="
             col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20"
             required="true" col_type="xellerate" xel_data_source="xel_usr_
             id"/>
        </look_up_group>
    </task>
    <task table_name="XELUSER1.MDL2_USER_PROF" xeltask_type="delete">
        <look_up_group logic_operator="NA">
             <record_lookup_key logic_operator="NA"  comparison_operator="="
             col_name="USR_ID" data_type="VARCHAR2" data_typ_size="20"
             required="true" col_type="xellerate" xel_data_source="xel_usr_
             id"/>
        </look_up_group>
    </task>
</operation>

プロビジョニングおよびリコンシリエーション用のカスタム・データベース列の追加

プロビジョニングまたはリコンシリエーション用のカスタム・データベース列を追加するには、次のようにします。

  1. 追加するデータベース列のcolumnタグを作成します。

    リコンサイルするデータベース列のリストに、MDL2_USER_PROF表のUSR_DESIGNATION列を追加するとします。これには、次のようなUSR_DESTINATION columnタグを作成します。

      <column table_name="XELUSER1.MDL2_USER_PROF"
      col_name="USR_DESIGNATION" data_type="VARCHAR2" data_typ_size="60"
      required="true" col_type="xellerate" xel_data_source="xel_usr_designation" />
    
    
  2. 列に対して構成するすべての操作のoperationタグに、columnタグを追加します。

    たとえば、新規ユーザー・プロファイルおよび更新されたユーザー・プロファイルのリコンシリエーションの一部として、USR_DESIGNATION列値をOracle Identity Managerにリコンサイルするとします。これには、USR_DESIGNATION columnタグを、reconcileCreateUpdate operationタグの2つ目のtaskタグに追加します。このoperationタグについては、「新規および更新されたユーザー・プロファイルのリコンシリエーションの構成」で説明しています。

    同様に、Create Userプロビジョニング・アクションの実行中に、Oracle Identity Managerの指定値をUSR_DESIGNATION列に伝播するとします。これには、create operationタグの2つ目のtaskタグに、USR_DESIGNATION columnタグを追加する必要があります。

    この手順で最初に説明したように、この章の前の項で説明したすべての操作のoperationタグに、必要に応じてcolumnタグを追加できます。

  3. リソース・オブジェクトに、columnタグのxel_data_source属性値と同じ名前を持つフィールドを追加します。

    たとえば、USR_DESIGNATION columnタグを追加するには、リソース・オブジェクトにxel_usr_designationフィールドを作成する必要があります。

セキュリティの考慮事項に対応するための構成XMLファイルの変更

この項では、このコネクタを使用する際に対応する必要のあるセキュリティの考慮事項の概要を説明します。この項の項目は次のとおりです。

これらのトピックでは、OraApp2.xml構成XMLファイルのコードの変更に基づく手順を説明します。「ITリソースの定義」の項に示されているConfiguration XML Pathパラメータの値として指定する構成XMLファイルに、同様の変更を行う必要があります。


関連項目:

コネクタのインストール・メディア・ディレクトリにある様々な構成XMLファイルの詳細は、「コネクタを構成するファイルおよびディレクトリ」の項を参照してください。

安全なJDBC接続

構成XMLファイルのセキュリティ・プロパティに関する情報を指定し、データベース・サーバーの安全な接続を有効にすることで、ターゲット・データベースとの安全なJDBC接続を確立できます。セキュリティ構成は、ターゲット・データベースによって異なります。

次の項では、OraApp2.xml構成XMLファイルのコードを説明しています。ITリソース定義にConfiguration XML Pathパラメータの値として指定する構成XMLファイルに、同様の変更を行う必要があります。


関連項目:


JDBC接続の保護に関する情報は、使用するデータベースに応じて、次のいずれかの項を参照してください。

安全なJDBC接続を使用しない場合には、次の項を参照してください。

Oracle Database用の安全なJDBC接続の構成

構成XMLファイルの、Oracle Databaseのセキュリティ構成XMLコードを次に示します。

<target_database>
     <database name="Oracle">
          <properties>
          <encryption_nego_level impl_class_name="oracle.net.encryption_
           client" value ="REQUESTED"/>
          <encryption_algorithm impl_class_name="oracle.net.encryption_
          client" value="DES40"/>
          <crypto_seed impl_class_name="oracle.net.crypto_seed"
          value="xelsysadmin_seed"/>
          <crypto_checksum_level
          impl_class_name="oracle.net.crypto_checksum_client"
          value="REQUIRED"/>
          <crypto_checksum_client
          impl_class_name="oracle.net.crypto_checksum_types_client"
          value="MD5"/>
    </properties>
    </database
</target_database>

この構成には、Oracle Databaseへの安全な接続を確立するためにJDBCドライバに提供されるセキュリティ・プロパティが含まれています。これらのパラメータが指定されていない場合、ターゲット・データベースに対して安全でないJDBC接続が確立されることに注意してください。

次に、前述の構成XMLコードに記載されている各構成パラメータに使用可能な値を示します。

構成パラメータ 使用可能な値
encryption_nego_level REJECTEDACCEPTEDREQUESTEDまたはREQUIRED
encryption_algorithm RC4_256RC4_128RC4_56RC4_40AES256AES192AES1283DES1683DES112DESまたはDES40
crypto_seed xelsysadmin_seed
crypto_checksum_level REJECTEDACCEPTEDREQUESTEDまたはREQUIRED
crypto_checksum_client MD5またはSHA1

構成XMLファイルへの変更に加え、sqlnet.oraファイルに次のパラメータを追加する必要があります。

SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER= (MD5)
SQLNET.AUTHENTICATION_SERVICES= (NTS)
SQLNET.ENCRYPTION_TYPES_SERVER= (DES40)
SQLNET.CRYPTO_SEED = xelsysadmin_seed

使用しているOracle Databaseのリリースに応じて、このファイルは次のパスに類似のディレクトリに格納されています。

oracle_home\ora92\network\admin

Sybase用の安全なJDBC接続の構成

構成XMLファイルの、Sybaseのセキュリティ構成を次に示します。

<target_database>
<database name="Sybase">
    <properties>
        <cipher_suites impl_class_name="CIPHER_SUITES_1"
        value="SSL_DH_anon_EXPORT_WITH_RC4_40_MD5"/>
    </properties>
</database>
</target_database>

このXMLコードで、暗号スイートに次のいずれかの値を割り当てることができます。

  • SSL_DH_anon_EXPORT_WITH_RC4_40_MD5

  • SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA

  • SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5

  • SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA

安全なJDBC接続の無効化

安全なJDBC接続を実装しない場合は、構成XMLファイルで、コメントに<database>タグの子タグを入力します。

次の例に示します。

<target_database>
 <database name="Oracle">
  <!--<properties>
   <encryption_nego_level impl_class_name="oracle.net.encryption_client" value ="REQUESTED"/>
   <encryption_algorithm impl_class_name="oracle.net.encryption_client" value="DES40"/>
   <crypto_seed impl_class_name="oracle.net.crypto_seed"value="xelsysadmin_seed"/>
   <crypto_checksum_levelimpl_class_name="oracle.net.crypto_checksum_client" value="REQUIRED"/>
<crypto_checksum_clientimpl_class_name="oracle.net.crypto_checksum_types_client"value="MD5"/>
  </properties>-->
 </database>
</target_database>

パスワードの暗号化および複合化

このコネクタを使用する場合には、サード・パーティの暗号化および複合化アルゴリズムを実装できます。コネクタにより、EncryptionSupportIntfインタフェースが公開されます。ユーザーはこのインタフェースを実装し、CLASSPATH環境変数で使用可能にする必要があります。

列の暗号化を構成する際には、完全修飾クラス名を指定する必要があります。データベースのデータを更新する前に、コネクタによりデータが暗号化されます。暗号化されたパスワードのリコンシリエーションが可能な場合には、複合化メソッドを使用して実際のパスワードを取得し、Oracle Identity Managerのパスワードをリコンサイルする必要があります。