Database Application Tablesコネクタの生成

DBATコネクタを生成するには、Groovyファイルを構成し、DBATジェネレータを実行してスキーマを検出する必要があります。

Database Application Tables (DBAT)コネクタを生成する手順は、次のステージに分かれています。

Groovyファイルの構成の概要

コネクタに同梱されているgroovyファイルを使用して、ターゲット・システム・スキーマの基本情報を格納できるプロパティの値を指定できます。

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

Groovyファイルについて

DBATコネクタには、DBATConfiguration.groovyというgroovyファイルが付属しています。このファイルは、コネクタ・インストールZIPのdbat-RELEASE_NUMBER/generator/dbat-generator-RELEASE_NUMBERディレクトリにあります。DBATConfiguration.groovyファイルを使用して、ターゲット・システム・スキーマの基本情報を格納できるプロパティの値を指定します。このファイルは、DBATジェネレータが次のタスクを実行するために使用されます。

  • スキーマの検出

  • コネクタを実行する場合のモード(信頼できるソースまたはターゲット・リソース)の構成

  • ターゲット・システムに固有のコネクタ・パッケージの生成

DBATジェネレータの実行手順と生成されたコネクタ・パッケージのディレクトリ構造については、この章で後述します。

DBATConfiguration.groovyファイルには、ほとんどのエントリに値が移入されたサンプル構成が含まれています(信頼できるソースおよびターゲット・リソース用に1つずつ)。要件に応じて、このファイルのエントリの値を指定または変更するか、または構成用の新しいセクションを作成します。次に、DBATConfiguration.groovyファイルの事前定義済セクションを示します。

  • trusted

    信頼できるソース・モードのコネクタを構成する場合、このセクションのエントリの値を指定します。

  • target

    ターゲット・リソース・モードのコネクタを構成する場合、このセクションのエントリの値を指定します。

DBATConfiguration.groovyファイルの構成

DBATConfiguration.groovyファイルを構成するには、次のようにします。

  1. Oracle Technology Networkからコネクタ・インストールZIPファイルをダウンロードします。
  2. コネクタ・インストールZIPの内容を、OIMをホストしているコンピュータ上の任意のディレクトリに抽出します。これにより、dbat-RELEASE_NUMBERというディレクトリが作成されます。コネクタ・インストールZIPのすべてのファイルおよびディレクトリの詳細は、「Database Application Tablesコネクタのファイルおよびディレクトリ」を参照してください。
  3. dbat-RELEASE_NUMBER/generator/dbat-generator-RELEASE_NUMBER.zipファイルの内容を任意のディレクトリに抽出します。これにより、dbat-generator-RELEASE_NUMBERというディレクトリが作成されます。
  4. テキスト・エディタで、dbat-generator-RELEASE_NUMBER/resourcesディレクトリにあるDBATConfiguration.groovyファイルを開きます。
  5. 次の事前定義されたセクションのいずれかのエントリの値を指定します。
    • trusted - ターゲット・システムを信頼できるソースとして構成する場合。

    • target - ターゲット・システムをターゲット・リソースとして構成する場合。

    ノート:

    これらの事前定義済セクションのエントリについては、この項の後半で説明します。

  6. DBATConfiguration.groovyファイルを保存して閉じます。

事前定義済セクションのエントリ

この項では、DBATConfiguration.groovyファイルの事前定義済セクションであるtrustedおよびtargetのエントリについて説明します。

ノート:

  • 指定がないかぎり、ここで説明されているすべてのエントリは両方のセクションに共通です。

  • DBATConfiguration.groovyファイルのいずれかのオプションのエントリまたは属性の値を指定しない場合、そのエントリまたは属性の先頭に二重のスラッシュ記号(//)を追加してコメント・アウトしてください。

  • DBATConfiguration.groovyファイルの一部のエントリおよびプロパティには、USERINFO、USER_INFO、USER_GROUPなどのサンプル値が含まれます。これらのサンプル値は、ターゲット・システムに存在する実際の表名に置き換える必要があります。

itResourceDefName

これは必須エントリです。ターゲット・システムのITリソース・タイプの名前を入力します。このエントリに指定する値によって、コネクタ・パッケージ、コネクタ構成ファイルおよびコネクタ・インストーラ・ファイルの名前が決まることに注意してください。たとえば、このエントリの値としてDBATを指定すると、コネクタ・パッケージ・ディレクトリの名前もDBAT.zipになります。コネクタ・パッケージのディレクトリ構造の詳細は、「生成されたコネクタ・パッケージの理解」を参照してください。

itResourceName

これはオプション・エントリです。ターゲット・システムのITリソースの名前を入力します。このエントリがコメント化されている場合、ITリソース名はITResourceDefNameエントリの値と同じです。

サンプル値: DBAT

ノート:

このエントリの値は、ターゲット・システム・データベースに作成する各コネクタに対し一意である必要があります。また、この値は、参照定義、リソース・オブジェクト、プロセス・フォーム、スケジュール済タスクなど、(DBATジェネレータの実行後に作成されるコネクタ構成XMLファイルで定義された)すべてのコネクタ・コンポーネントの名前の一部になります。

たとえば、itResourceNameエントリの値としてDBATを指定すると、コネクタのデプロイ後に構成参照定義が作成され、その名前はLookup.Configuration.DBATになります。

connectorDir

これはオプション・エントリです。このエントリは、DBATジェネレータの実行時に生成されるコネクタ・パッケージが格納されるディレクトリの名前です。デフォルトでは、このエントリの値は、itResourceNameエントリの値と同じです。

xmlFile

これはオプション・エントリです。コネクタ・オブジェクトの定義が含まれるXMLファイルの名前と相対パスを入力します。このエントリの値を指定しない場合、ファイル名が次の形式で生成されます。

IT_RES_DEF_NAME-ConnectorConfig.xml

この形式で、IT_RES_DEF_NAMEはitResourceDefNameエントリの値です。

たとえば、このエントリの値を指定せず、DBATがitResourceDefNameエントリの値である場合、生成されるXMLファイルの名前はDBAT-ConnectorConfig.xmlです。

ノート:

特定のターゲット・システム・インストールのファイルを簡単に特定するには、この生成されたXMLファイルの名前の接頭辞にそのターゲット・システム・インストールのITリソースの名前を使用することをお薦めします。

サンプル値: DBAT-ConnectorConfig.xml

configFile

これはオプション・エントリです。コネクタ・オブジェクトの構成情報が含まれるXMLファイルの名前と相対パスを入力します。このエントリの値を指定しない場合、ファイル名が次の形式で生成されます。

IT_RES_DEF_NAME-CI.xml

この形式で、IT_RES_DEF_NAMEはitResourceDefNameエントリの値です。

たとえば、このエントリの値を指定せず、DBATがitResourceDefNameエントリの値である場合、生成されるXMLファイルの名前はDBAT-CI.xml です。

propertiesFile

これはオプション・エントリです。リソース・バンドル変換が含まれる.propertiesファイルの名前と相対パスを入力します。このエントリの値を指定しない場合、ファイル名が次の形式で生成されます。

IT_RES_DEF_NAME-generator.properties

この形式で、IT_RES_DEF_NAMEはitResourceDefNameエントリの値です。

たとえば、このエントリの値を指定せず、DBATがitResourceDefNameエントリの値である場合、生成されるプロパティ・ファイルの名前はDBAT-generator.propertiesです。

version

これはオプション・エントリです。コネクタのリリース番号を入力します。

trusted

これは、必須エントリで、信頼できるソースの構成セクションにのみ存在します。ターゲット・システムを信頼できるソースとして構成する場合、このエントリの値をtrueに設定します。

provisionDatasetFile

これはオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。Oracle Identity Manager release 11.1.1.xを使用していて、リクエストベースのプロビジョニング操作を実行するリクエスト・データセットを生成する場合にのみ、このエントリに値を指定します。

ユーザー・プロビジョニング操作の作成時にリクエスタが送信する情報を指定するリクエスト・データセット(XMLファイル)の名前と相対パスを入力します。

ノート:

特定のターゲット・システム・インストールのファイルを簡単に特定するには、この生成されたXMLファイル(プロビジョニングおよび変更の両方)の名前の接頭辞にそのターゲット・システム・インストールのITリソースの名前を使用することをお薦めします。

サンプル値: ProvisionResource_DBATUser.xml

modifyResourceDatasetFile

これはオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。Oracle Identity Manager release 11.1.1.xを使用していて、リクエストベースのプロビジョニング操作を実行するリクエスト・データセットを生成する場合にのみ、このエントリに値を指定します。

ユーザー・プロビジョニング操作の更新時にリクエスタが送信する情報を指定するリクエスト・データセット(XMLファイル)の名前と相対パスを入力します。

サンプル値: ModifyProvisionedResource_DBATUser.xml

requestDMDatasetsFile

これもオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。Oracle Identity Manager release 11.1.1.xを使用していて、デプロイメント・マネージャを使用してインポートでき、リクエストベースのプロビジョニング操作を実行するリクエスト・データセットを生成する場合にのみ、このエントリに値を指定します。

ユーザー・プロビジョニング操作時にリクエスタが送信する情報を指定するリクエスト・データセット(XMLファイル)の名前と相対パスを入力します。

サンプル値: Datasets.xml

bundleJar

これは必須エントリです。DBATジェネレータが使用するICFバンドルを含むJARファイルの名前と相対パスを入力します。

デフォルト値: ../lib/org.identityconnectors.databasetable-1.2.2.jar

このエントリの値を変更しないでください。

config

これは、コネクタ構成に関する情報を指定する必須エントリです。このコネクタ構成には、コネクタの動作とターゲット・システムへの接続方法に関する情報が含まれます。このコネクタは、次の方法のいずれかを使用してターゲット・システムに接続するように構成できます。

JDBCドライバ構成

次に、JDBCドライバ構成を使用してコネクタをターゲット・システムに接続するように構成できる2つの方法を示します。

- %h, %p, and %dなどのワイルドカード値を含むjdbcUrlTemplateプロパティの値を指定します。ワイルドカード値は、ホスト、ポートおよびデータベース・プロパティに指定した実際の値で置き換えられます。この構成方法では、ホスト、ポートおよびデータベース・プロパティに値を指定することは必須です。

- dbcUrlTemplateプロパティの値として正確なURLテンプレートを指定します。つまり、URLテンプレートにはワイルドカード値を含めることはできません。さらに、ユーザー・プロパティの値を指定します。

データソース構成

この構成方法では、次のことを行う必要があります。

- datasourceプロパティの値を指定します。さらに、データソースがJNDIエンティティにバインドされている場合、jndiPropertiesプロパティに値を指定します。

- wlfullclient.jarおよびJDBCドライバ・ファイルがdbat generatorディレクトリのlibディレクトリにその他のJARとともに存在することを確認します。

- Javaプロパティ -Dweblogic.jdbc.remoteEnabled=trueをWeblogic OIMドメイン環境スクリプトに追加し、WebLogicサーバーを再起動します。

表2-1に、Configエントリのプロパティのリストと説明を示します。

表2-1 Configエントリのプロパティ

プロパティ タイプ JDBCドライバ構成に必要か データソース構成に必要か デフォルト値 説明

table

String

はい

はい

該当なし

ユーザー・レコードを含む親表またはビューの名前。

keyColumn

String

はい

はい

該当なし

親表の各行を一意に識別する列の名前。

passwordColumn

String

いいえ

いいえ

該当なし

ターゲット・システムのレコードのパスワードを含む親表の列の名前。

次の条件の両方がtrueの場合、このプロパティに値を指定する必要があります。

- ターゲット・システムのレコードのパスワードを含む親表に列が存在する。

- アカウント・パスワードのリセット・プロビジョニング操作を実行する必要がある。

user

String

はい

いいえ

該当なし

ターゲット・システムに接続するために、Oracle Identity Managerにより使用されるデータベース・ユーザー・アカウントのユーザーID。

password

String

はい

いいえ

該当なし

ターゲット・システムに接続するために、Oracle Identity Managerにより使用される必要のあるデータベース・ユーザー・アカウントのパスワード。セキュリティ上の理由から、このプロパティはデフォルトでコメント化されています。そのため、このプロパティのコメント化を解除しないでください。DBATGenerator.cmdファイルを実行する場合、パスワードの入力を要求されます。

DBATジェネレータの実行の詳細は、「スキーマの検出とコネクタの生成」を参照してください。

jdbcUrlTemplate

String

はい(%h、%pおよび%d)

いいえ

該当なし

%h、%pおよび%dワイルドカードを含むターゲット・データベースのJDBC URLテンプレート。

IBM DB2の場合: jdbc:db2://%h:%p/%d

Microsoft SQL Serverの場合: jdbc:sqlserver://%h:%p;databaseName=%d

MySQLの場合: jdbc:mysql://%h:%p/%d

Oracle Databaseの場合: jdbc:oracle:thin:@%h:%p:%d

Sybase Adaptive Server Enterpriseの場合: jdbc:sybase:Tds:%h:%p/%d

詳細は、「jdbcUrlTemplateプロパティの値の決定」を参照してください。

jdbcDriver

String

はい

はい

該当なし

JDBCドライバのクラス名。

IBM DB2の場合: com.ibm.db2.jcc.DB2Driver

Microsoft SQL Serverの場合: com.microsoft.sqlserver.jdbc.SQLServerDriver

MySQLの場合: com.mysql.jdbc.Driver

Oracle Databaseの場合: oracle.jdbc.driver.OracleDriver

Sybase Adaptive Server Enterpriseの場合: com.sybase.jdbc3.jdbc.SybDriver

relationTables

String

いいえ

いいえ

該当なし

ユーザー・データが、親表および子表に分散している場合、子表の名前のカンマ区切りリストを入力します。

サンプル値: USER_ROLE, USER_GROUP

ノート: 外部キーに加えて、子表が一意な、nullでないまたは主キーであるその他の列を含まない場合、XMLファイルの生成は失敗します。XMLファイルの生成の詳細は、「スキーマの検出とコネクタの生成」を参照してください。

statusColumn

Boolean

いいえ

いいえ

該当なし

ユーザー・レコードのステータスを含むターゲット・システムの列の名前。次の条件の両方がtrueの場合、この属性に値を指定する必要があります。

- ユーザー・アカウントの有効化またはユーザー・アカウントのプロビジョニング操作の無効化を実行する必要がある。

- ユーザー・レコードのステータスを含むターゲット・システムの列が存在する。

enableValue

String

いいえ

いいえ

該当なし

ユーザー・レコードが有効状態であることを示すターゲット・システムで使用される値

disableValue

String

いいえ

いいえ

該当なし

ユーザー・レコードが無効状態であることを示すターゲット・システムで使用される値

database

String

はい、%dの場合

いいえ

該当なし

ターゲット・システム・データベースの名前。dbcUrlTemplateプロパティの%dワイルドカードのかわりに使用されます。

host

String

はい、%hの場合

いいえ

該当なし

ターゲット・システムのホストであるコンピュータのホスト名またはIPアドレス。dbcUrlTemplateプロパティの%hワイルドカードのかわりに使用されます。

port

String

はい、%pの場合

いいえ

該当なし

ターゲット・システムがリスニングしているポート番号。dbcUrlTemplateプロパティの%pワイルドカードのかわりに使用されます。

datasource

String

いいえ

はい

該当なし

コネクタがデータソース構成を使用してターゲット・システムに接続する場合のデータソースの名前。

サンプル値: jdbc/operationsDB

jndiProperties

String

いいえ

はい

該当なし

JDBCドライバを使用してターゲット・システムとの接続を確立する、またはJNDIを使用してデータソースを検索するために使用するプロパティ。

サンプル値: java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory, java.naming.provider.url=t3://acme.com:15000, java.naming.security.principal=weblogic, java.naming.security.credentials=weblogic1

customizedQuery

String

いいえ

いいえ

該当なし

リコンサイルする必要のある、新しく追加または変更されたレコードのサブセットを指定するWHERE句。

customizedQueryプロパティの詳細は、「customizedQueryパラメータの値の指定」を参照してください。

rethrowAllSQLExceptions

Boolean

いいえ

いいえ

false

このプロパティの値をfalseに設定した場合、ゼロ(0x00)エラー・コードでのSQL例外は成功とみなされます。つまり、ゼロ・エラー・コードでのSQL例外は検出され、SQL文により抑制されます。

このプロパティの値をtrueに設定した場合、ゼロ・エラー・コードでのすべてのSQL例外が発生します。

ノート: その他のSQL例外はこのプロパティに影響されません。

allNative

Boolean

いいえ

いいえ

false

このプロパティの値をfalseに設定した場合、属性データはJDBCドライバを使用して文字列に変換されます。

このプロパティの値をtrueに設定し、適切なJDBCタイプを使用して、強制的にコネクタに変換を実行させます。

dateFormatおよびTimestampFormatプロパティはこの設定を無効化します。

validConnectionQuery

String

いいえ

いいえ

該当なし

このプロパティに値を指定しない場合、接続は自動コミット・モードに切り替わることにより検証されます。たとえば、次のような問合せは、一部のデータベースに対しより効率的になる可能性があります。

SELECT 1 FROM DUMMY

dateFormat

String

いいえ

いいえ

dd/MM/yyyy

ユーザーが日付データの文字列への変換を書式設定できるようにします。ただし、日付形式をテキストから日付エディタに変更する場合、dateFormat ITリソース・パラメータの値を、Oracle Identity Managerのシステム構成で指定された日付形式に設定する必要があります。

このプロパティの値を指定するとallNativeプロパティが無効化されます。

timestampFormat

String

いいえ

いいえ

dd/MM/yyyy HH:mm:ss:SSS

ユーザーがタイムスタンプデータの文字列への変換を書式設定できるようにします。このプロパティを指定するとnativeTimestampsおよびallNativeプロパティが無効化されます。

enableEmptyString

Boolean

いいえ

いいえ

false

NULL値のかわりに空の文字列の書込みをサポートさせる場合、このプロパティの値をtrueに設定します。

このプロパティの値をfalseに設定した場合、NULL値として空の文字列が書き込まれます。

ノート: このプロパティは必須の文字列属性にのみ適用できます。

quoting

String

いいえ

いいえ

なし

ターゲット・システムで列の名前として保護されたキーワードを使用している場合、引用符を使用します。これはデータベースのアクセス時に生成されたSQLでquotingプロパティ(一重引用符、二重引用符など)間の列名を表示します。

引用符を使用しない場合は、Noneを指定します。

引用符を使用する場合、次のいずれかのquotingプロパティを指定します。

- IBMメインフレームで実行しているDB2の場合: Single

- MS Windowsで実行しているDB2の場合: Double

- MS SQL Serverの場合: BracketsまたはDouble

- MySQLの場合: Back

- Oracleの場合: Double

- Sybaseの場合: Double

ノート: 列名として"WHERE"キーワードを使用することはサポートされません。

changeLogColumn

String

いいえ

いいえ

該当なし

直前の更新に関連する(減少しない)、日付またはタイムスタンプベースの値が保存される列のオプション名。日付またはタイムスタンプベースではない値(数値または文字列など)を格納する列名のこともあります。

この列のデータ型は、ターゲット・システムでサポートされるいずれかのデータ型です。ただし、Oracle Databaseを使用している場合は、BLOB、CLOBおよびLONGなどのデータ型はサポートされません。ターゲット・システムでサポートされるデータ型の詳細は、「サポートされるデータ型について」を参照してください。

この列の値は、ターゲット・システムからリコンサイルされた最新のレコードを判別するために増分リコンシリエーションで使用されます。

ノート: 増分リコンシエーションを実行する場合、このプロパティに値を指定する必要があります。

nativeTimestamps

Boolean

いいえ

いいえ

false

このプロパティの値をfalseに設定した場合、タイムスタンプ・データはJDBCドライバを使用して文字列として読み取られ、これはミリ秒単位の時間の損失となる可能性があります。

このプロパティの値をtrueに設定した場合、タイムスタンプ・データはコネクタによりjava.sql.Timestampタイプとして取得されます。

createScript

String

いいえ

いいえ

なし

このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。

プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

ユーザー・アカウントの作成プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトが呼び出されると、親フォームのデータが追加されます。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/create_user.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

updateScript

String

いいえ

いいえ

なし

このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。

プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

ユーザー・アカウントの更新プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、親フォームを更新した場合、またはユーザー・アカウントを有効化/無効化した場合に呼び出されます。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/update_user.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

deleteScript

String

いいえ

いいえ

なし

このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。

プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

ユーザー・アカウントの削除プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、子データのないアカウントを除外または削除した場合に呼び出されます。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/delete_user.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

lookupScript

String

いいえ

いいえ

なし

このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。

参照フィールド同期を実行するために、デフォルトのSQL問合せではなく、カスタム・ストアド・プロシージャまたはSQL問合せを使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

参照フィールド同期用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/lookup_field_sync.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

addMultiValuedAttributeScript

String

いいえ

いいえ

なし

このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。

プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

複数値属性の追加プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、複数値の子属性を追加した場合に呼び出されます。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値:

file:///home/jdoe/dbat/scripts/add_mulval_attr.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

removeMultiValuedAttributeScript

String

いいえ

いいえ

なし

このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。

プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

参照フィールド同期用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、複数値の子属性を削除した場合に呼び出されます。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/remove_mulval_attr.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

executeQueryScript

String

いいえ

いいえ

なし

リコンシリエーションを実行するために、デフォルトのSQL問合せではなく、カスタム・ストアド・プロシージャまたはSQL問合せを使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

リコンシリエーション用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。コネクタによりリコンシリエーション操作はGroovyスクリプトに委任され、情報(コネクタ・オブジェクト)をコールバック・ハンドラに渡す責任を負います。このスクリプトは、アカウント検索(完全リコンシリエーションやフィルタ・リコンシリエーションなどの操作)を実行した場合に呼び出されます。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/recon_user.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

syncScript

String

いいえ

いいえ

なし

増分リコンシリエーションを実行するために、デフォルトのSQL問合せではなく、カスタム・ストアド・プロシージャまたはSQL問合せを使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。

増分リコンシリエーション用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。

ファイルのURLは次の書式で入力する必要があります。

file:///URL

サンプル値: file:///home/jdoe/dbat/scripts/increm_recon_user.groovy

カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。

alias

DBATジェネレータは、ターゲット・システムの列名および表名と、Oracle Identity Managerのリソース・オブジェクト・フィールド名またはプロセス・フォーム・フィールド名との間の関係を作成するために、別名を使用します。また、DBATジェネレータは、Oracle Identity Managerのフォーム名およびフォーム・フィールド名に対する文字の長さの制限を満たすように長いデータベース名を短くするため、別名を使用します。別名は、列名、表名、フォーム名およびフォーム・フィールド名のレベルで使用できます。ターゲット・システムの列はコネクタ属性として表されることに注意してください。

構成のタイプに応じて、次のセクションのいずれかの値を指定します。

  • 信頼できるソース構成の場合

    信頼できるソース構成セクションで、別名エントリを使用してコネクタ属性またはターゲット・システムの列名を、UDFなどのOIMユーザー・フォーム・フィールド名にマップします。ここで指定したマッピングを使用して、信頼できるソースのリコンシリエーション用のLookup.RESOURCE.UM.ReconAttrMap参照定義のエントリが移入されます。

    一部のOIMユーザー・フォーム・フィールド名が内部的に同じ表示名を持たないことに注意してください。そのようなフィールドの場合、コネクタ属性またはターゲット・システムの列名が表示名ではなく内部名にマップされていることを確認する必要があります。次の表には、OIMユーザー・フォーム表示名と対応する内部名がリストされています。

    表示名 内部名

    Organization

    Organization Name

    Manager

    Manager Login

    E-mail

    Email

    別名エントリのデフォルト値は次のとおりです。

    ['__UID__':'User Login', '__NAME__':'Last Name', 'Organization':'Organization Name', 'Xellerate Type':'Xellerate Type', '__ENABLE__':'Status', 'Role':'Role']

    デフォルト値で、「組織」コネクタ属性が内部名である「組織名」にマップされていることに注意してください。

    デフォルト値の既存のマッピングは削除できません。ただし、これらのマッピングを変更できません。

    別名エントリに値を指定する際には、次の書式を使用する必要があります。

    ['CONN_ATTR1 or COL_NAME1': 'OIM_FIELD1', 'CONN_ATTR2 or COL_NAME2': 'OIM_FIELD2', . . . 'CONN_ATTRn or COL_NAMEn': 'OIM_FIELDn']
    

    この書式の意味は次のとおりです。

    • CONN_ATTRは、コネクタ属性名です。

    • COL_NAMEは、ターゲット・システムの列名です。

    • OIM_FIELDは、OIMユーザー・フィールドの名前です。

    __UID__属性および__NAME__属性の詳細は、表4-12を参照してください。

  • ターゲット・リソース構成の場合

    ターゲット・リソース構成セクションで、次の1つまたはすべての目的で別名エントリを使用します。

    • relationTablesプロパティに指定した表名に別名を設定する。

    • itResourceNameエントリに指定したITリソース名に別名(一意の短縮名)を設定する。

    • コネクタ属性またはターゲット・システム列名とプロセス・フォームのフィールド名をマップする。ここで指定したマッピングを使用して、Lookup.RESOURCE.UM.ProvAttrMapおよびLookup.RESOURCE.UM.ReconAttrMap参照定義のエントリが移入されます。別名が指定されていないすべてのフィールドでは、ターゲット・システムの列名に基づいてマッピングが作成されます。

    デフォルトで、DBATConfiguration.groovyファイルには別名エントリの値として次の値が含まれています。

    ['USER_ROLE':'RO', 'USER_GROUP':'GR']

    ターゲット・システムの要件に応じてこのデフォルト値を変更できます。別名が指定されていないターゲット・システム・フィールドでは、ターゲット属性の名前を使用して作成されます。

    別名エントリにすでに存在するフィールド以外のフィールドのマッピングを追加する場合、別名エントリの既存の値に追加するか、別名+エントリに追加できます。

    別名+エントリのデフォルト値は次のとおりです。

    ['__NAME__':'User ID']

    別名エントリおよび別名+エントリに値を指定する際には、次の書式を使用する必要があります。

    ['CONN_ATTR1 or COL_NAME1': 'ALIAS_FIELD1', 'CONN_ATTR2 or COL_NAME2': 'ALIAS_FIELD2', . . . 'CONN_ATTRn or COL_NAMEn': 'ALIAS_FIELDn', . . . 'TABLE_NAME':'ALIAS','TABLE_NAME1':'ALIAS1','TABLE_NAME2':'ALIAS2', . . . 'TABLE_NAMEn':'ALIASn']
    

    この書式の意味は次のとおりです。

    • CONN_ATTRは、コネクタ属性名です。

    • COL_NAMEは、ターゲット・システムの列名です。

    • ALIAS_FIELDは、対応するコネクタ属性名またはターゲット・システムの列名の別名です。

    • TABLE_NAMEはrelationTables属性に指定した表の名前です。

    • ALIASは、対応する表の名前の別名です。

    __NAME__などのコネクタ属性の詳細は、表4-10を参照してください。

    DBATConfiguration.groovyファイルに指定した情報を使用して、DBATジェネレータ(この章の後半で説明します)を実行すると、コネクタ・パッケージが生成されます。コネクタ・パッケージにはXMLフォルダが含まれ、その中にはXMLファイルが含まれます。このXMLファイルには、ITリソース・タイプ、ITリソース、スケジュール済タスク、プロセス・フォーム、アダプタなどの、コネクタ・コンポーネントの定義が含まれます。プロセス・フォーム名はデータベース表の名前から導出され、UD_RESOURCE_NAMEという接頭辞が付きます。このRESOURCE_NAMEはitResourceNameエントリの値に置き換えられます。

    プロセス・フォーム名の文字数が8文字よりも多い場合、DBATジェネレータは自動的にプロセス・フォーム名を切り捨てます。これにより、2つのフォームが同じ名前を持つ可能性が生じますが、DBATジェネレータはこれを自動ナンバリングを使用して防止します。したがって、別名(短縮名)を指定して、自動生成のフォーム名を制御することができます。

    次に、この例を示します。

    リソース名をDB、データベース表名をUSER_ROLESとします。また、Oracle Identity ManagerにはUD_DB_USという名前のフォームが含まれます。

    DBATジェネレータを実行すると、プロセス・フォームが作成され、その名前はUD_DB_USER_ROLESです。このプロセス・フォーム名の文字数は16です。コネクタのXMLファイルをOracle Identity Managerにインポートするときに、プロセス・フォーム名が8文字よりも長いので、DBATジェネレータはプロセス・フォーム名を切り捨てます。切り捨てられたフォーム名はUD_DB_USです。Oracle Identity ManagerにはUD_DB_USという名前のフォームがすでに存在することに気を付けてください。

    このような問題、または同じ名前のフォームが発生するのを防ぐために、次のように、別名属性に値を指定します。

    alias = ['USER_ROLES':'RO']

    DBATジェネレータを実行すると、プロセス・フォームの名前はUD_DB_ROで、8文字です。したがって、プロセス・フォーム名は切り捨てられません。

prepopulate

これはオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。エンタープライズ・ターゲット・システム・リソースのプロビジョニング中に、Oracle Identity ManagerによってOIMユーザー・フィールドに事前移入する場合、このエントリに値を指定します。

デフォルトでは、このエントリの値は次のとおりです。

['USERID':'User Login', 'FIRSTNAME':'First Name', 'LASTNAME':'Last Name', 'EMAIL':'Mail Id', 'DESCRIPTION':'Description', 'SALARY':'Salary', 'JOININGDATE':'Join date']

これは、groovyファイルが次のフィールドを移入するように構成されていることを示します。

User Login

First Name

Last Name

Mail Id

Description

Salary

Join date

前述のリストにフィールドを追加またはリストから削除できます。事前移入エントリに値を指定する際には、次の書式を使用する必要があります。

['CONN_ATTR1 or COL_NAME1': 'OIM_FIELD1', 'CONN_ATTR2 or COL_NAME2': 'OIM_FIELD2', . . . 'CONN_ATTRn or COL_NAMEn': 'OIM_FIELDn']

この書式の意味は次のとおりです。

  • CONN_ATTRは、コネクタ属性名です。

  • COL_NAMEは、ターゲット・システムの列名です。

  • OIM_FIELDは、OIMユーザー・フィールドの名前です。

事前移入アダプタのアタッチおよび削除の詳細は、Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズの事前移入アダプタの使用を参照してください。

自動増分主キーを含むターゲット・システム用のDBATConfiguration.groovyファイルの構成

「事前定義済セクションのエントリ」で説明している、DBATConfiguration.groovyファイルの構成に加えて、ターゲット・システムのキー列が自動増分オプションを使用して構成されている場合、次の手順を実行します。

  • ターゲット・リソースとして構成されたターゲット・システムの場合

    DBATConfiguration.groovyファイルの事前移入エントリには、キー列のマッピングが含まれないことを確認します。または、事前移入エントリには、__NAME__属性マッピングを指定しないでください。

    同じ情報が「事前定義済セクションのエントリ」のprepopulateエントリで説明されています

  • 信頼できるソースとして構成されたターゲット・システムの場合

    デフォルトで、コネクタはITリソースに指定した表のキー列を、Oracle Identity Managerの「ユーザー・ログイン」フィールドにマップします。しかし、キー列が自動増分オプションを使用して構成されている場合、別名エントリで、OIMの「ユーザー・ログイン」フィールドを別のターゲット・システム列にマップできます。

    デフォルトのマッピングを変更する場合、__UID__属性がOracle Identity Managerの対応するフィールドにマップされていることを確認します。

    同じ情報が「事前定義済セクションのエントリ」のaliasエントリで説明されています

jdbcUrlTemplateプロパティの値の決定

この項では、jdbcUrlTemplateプロパティについて説明します。「Groovyファイルの構成の概要」で説明している手順を実行するときには、この項の情報を適用してください。

jdbcUrlTemplateプロパティに指定する値は、ターゲット・システムにより異なります。

IBM DB2の場合のjdbcUrlTemplateプロパティ

次に示す接続URLのコンポーネントを、jdbcUrlTemplateプロパティの値として入力します。

jdbc:db2://[SERVER_NAME[\INSTANCE_NAME][:PORT_NUMBER]]/DATABASE_NAME

Oracle Identity Managerとターゲット・システムとの間にセキュアな通信を構成するには、jdbcUrlTemplateプロパティの値として次を入力します。

jdbc:db2://[SERVER_NAME[\INSTANCE_NAME][:PORT_NUMBER]]/DATABASE_NAME:sslConnection=true;sslTrustStoreLocation=LOCATION;sslTrustStorePassword=PASSWORD;

両方の書式の意味は次のとおりです。

  • SERVER_NAMEは、ターゲット・システムのホスト・コンピュータのIPアドレスです(ホスト名ではありません)。

  • INSTANCE_NAMEは、ターゲット・システム・データベースの名前です。

  • PORT_NUMBERは、ターゲット・システム・データベースがリスニングしているポートです。

  • DATABASE_NAMEは、データベースの名前です。

  • LOCATIONは、トラスト・ストアのフル・パスおよび名前です。

  • PASSWORDは、トラスト・ストアの場所のパスワードです。

次に、jdbcUrlTemplateプロパティのサンプル値を示します。

jdbc:db2://192.168.16.76:50000/acmedb

Microsoft SQL Serverの場合のjdbcUrlTemplateプロパティ

次に示す接続URLのコンポーネントを、jdbcUrlTemplateプロパティの値として入力します。

jdbc:sqlserver://[SERVER_NAME[\INSTANCE_NAME][:PORT_NUMBER]];DATABASE=DATABASE_NAME

この書式の意味は次のとおりです。

  • SERVER_NAMEは、ターゲット・システムのホスト・コンピュータのIPアドレスです(ホスト名ではありません)。

  • INSTANCE_NAMEは、ターゲット・システム・データベースの名前です。

  • PORT_NUMBERは、ターゲット・システム・データベースがリスニングしているポートです。

  • DATABASE_NAMEは、ターゲット・システム・データベースの名前です。

次に、jdbcUrlTemplateプロパティのサンプル値を示します。

jdbc:sqlserver://192.168.16.76:1433;Database=acmedb

MySQLの場合のjdbcUrlTemplateプロパティ

次に示す接続URLのコンポーネントを、jdbcUrlTemplateプロパティの値として入力します。

jdbc:mysql://[SERVER_NAME][:PORT_NUMBER]/[DATABASE_NAME]

プロビジョニング操作を実行するためにカスタム・ストアド・プロシージャを使用するようにコネクタを構成し、updateScriptプロパティ(詳細は表2-1を参照)に値を指定した場合、jdbcUrlTemplateプロパティの値として次を入力します。

jdbc:mysql://[SERVER_NAME][:PORT_NUMBER]/[DATABASE_NAME]?noAccessToProcedureBodies=true

Oracle Identity Managerとターゲット・システムとの間にセキュアな通信を構成するには、jdbcUrlTemplateプロパティの値として次を入力します。

jdbc:mysql://[SERVER_NAME][:PORT_NUMBER]/[DATABASE_NAME]?useSSL=true&trustCertificateKeyStoreType=KEYSTORE_TYPE&trustCertificateKeyStorePas
sword=PASSWORD&trustCertificateKeyStoreUrl=URL

すべての書式の意味は次のとおりです。

  • SERVER_NAMEは、ターゲット・システムのホスト・コンピュータのIPアドレスです(ホスト名ではありません)。

  • PORT_NUMBERは、ターゲット・システム・データベースがリスニングしているポートです。

  • DATABASE_NAMEは、ターゲット・システム・データベースの名前です。

  • KEYSTORE_TYPEは、信頼できる証明書に使用されるキー・ストアのタイプです。デフォルトはJKSです。

  • PASSWORDは、信頼できる証明書のキー・ストアのパスワードです。

  • URLは、信頼できる証明書のキー・ストアのURLです。

次に、jdbcUrlTemplateプロパティのサンプル値を示します。

jdbc:mysql://192.168.1.251/mysql

Oracle Databaseの場合のjdbcUrlTemplateプロパティ

次に示す接続URLのコンポーネントを、jdbcUrlTemplateプロパティの値として入力します。

jdbc:oracle:thin:@TARGET_HOST_NAME_or_IP_ADDRESS:PORT_NUM:sid

次に、jdbcUrlTemplateプロパティのサンプル値を示します。

jdbc:oracle:thin:@ten.mydomain.com:1521:cust_db

Oracle 12c PDBモードを使用している場合、jdbcUrlTemplateとして次を指定します。

jdbc:oracle:thin:@//host:port/servicename

Oracle RACの場合のjdbcUrlTemplateプロパティ

次に示す接続URLのコンポーネントを、jdbcUrlTemplateプロパティの値として入力します。

ノート:

Oracle Identity Managerでの対応するパラメータの文字数の制限により、jdbcUrlTemplateプロパティは200文字を超えることはできません。

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HOST1_NAME.DOMAIN)(PORT=PORT1_NUMBER))(ADDRESS=(PROTOCOL=TCP)(HOST=HOST2_NAME.DOMAIN)(PORT=PORT2_NUMBER))(ADDRESS=(PROTOCOL=TCP)(HOST=HOST3_NAME.DOMAIN)(PORT=PORT3_NUMBER)) . . . (ADDRESS=(PROTOCOL=TCP)(HOST=HOSTn_NAME.DOMAIN)(PORT=PORTn_NUMBER))(CONNECT_DATA=(SERVICE_NAME=ORACLE_DATABASE_SERVICE_NAME)))

次に、jdbcUrlTemplateプロパティのサンプル値を示します。

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= host1.example.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST= host2.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME= srvce1)))

Sybase Adaptive Server Enterpriseの場合のjdbcUrlTemplateプロパティ

次に示す接続URLのコンポーネントを、jdbcUrlTemplateプロパティの値として入力します。

jdbc:sybase:Tds:SERVER_NAME:PORT_NUMBER/DATABSE_NAME

この書式の意味は次のとおりです。

  • SERVER_NAMEは、ターゲット・システムのホスト・コンピュータのIPアドレスです(ホスト名ではありません)。

  • PORT_NUMBERは、ターゲット・システム・データベースがリスニングしているポートです。

  • DATABSE_NAMEは、ターゲット・システム・データベースの名前です。

次に、jdbcUrlTemplateプロパティのサンプル値を示します。

jdbc:sybase:Tds:172.21.109.62:9050/master

スキーマの検出とコネクタの生成

DBATConfiguration.groovyファイルの構成後、DBATジェネレータを実行してスキーマを検出し、コネクタ・パッケージを生成する必要があります。

トピック:

DBATジェネレータの実行

DBATジェネレータは、dbat-generator-RELEASE_NUMBER/binディレクトリ(「Groovyファイルの構成の概要」のステップ3で作成)に存在するDBATGenerator.cmdまたはDBATGenerator.shファイルです。

DBATジェネレータを実行するには、次のようにします。

  1. ターゲット・システムに対応するJDBCドライバを、dbat-generator-RELEASE_NUMBER/lib/ディレクトリにコピーします。JDBCドライバは、表1-1を参照してください。
  2. コマンド・ウィンドウで、dbat-generator-RELEASE_NUMBER/binディレクトリに移動し(dbat-generator-11.1.1.6.0/binなど)、使用しているオペレーティング・システムに応じて次のコマンドのいずれかを実行します。
    • Microsoft Windowsの場合

      DBATGenerator.cmd CONFIG_FILE CONFIG_NAME

    • UNIXの場合

      DBATGenerator.sh CONFIG_FILE CONFIG_NAME

    このコマンドの次の部分を置き換えます。

    • CONFIG_FILEは、DBATConfiguration.groovyファイルの絶対または相対パス名に置き換えます。

    • CONFIG_NAMEは、ターゲット・システムに使用されている、DBATConfiguration.groovyファイル内の構成の名前に置き換えます。このファイル内の事前定義された構成は、trustedおよびtargetです。実際の要件に応じて、異なる名前を持つ追加のカスタム構成を作成できます。

    次に、サンプル・コマンドを示します。

    DBATGenerator.cmd ..\resources\DBATConfiguration.groovy target

    このコマンドで、"target"は、値が指定されているDBATConfiguration.groovyファイルのセクション名を示します。つまり、このコネクタは、ターゲット・リソースとして構成されています。

  3. 要求されたら、ターゲット・システムに接続するために、Oracle Identity Managerにより使用される必要のあるデータベース・ユーザー・アカウントのパスワードである、「ユーザー・パスワード」の値を入力します。

DBATジェネレータの実行中にエラーが発生した場合、それを修正してDBATジェネレータの実行を再開する必要があります。libディレクトリにJDBCドライバがない場合、一般的なエラーのうちいずれかが発生する可能性があります。

生成されたコネクタ・パッケージの理解

コネクタ・パッケージは、/dbat-generator-RELEASE_NUMBERディレクトリに生成されるZIPファイルです。たとえば、DBATConfiguration.groovyファイルのitResourceDefNameエントリの値としてACMEを指定した場合、コネクタ・パッケージのZIPファイル(ACME.zip)が/dbat-generator-11.1.1.6.0/ディレクトリに生成されます。コネクタ・パッケージのディレクトリ構造は、次のとおりです。

CONNECTOR_PACKAGE/
         bundle/
                  org.identityconnectors.databasetable-1.2.2.jar
         configuration/
                  IT_RES_DEF-CI.xml
         dataset/
         resources/
                  dbat-generator.properties
         xml/
                  IT_RES_DEF-ConnectorConfig.xml

このディレクトリ構造の意味は次のとおりです。

  • CONNECTOR_PACKAGEは、DBATConfiguration.groovyファイルのitResourceDefNameエントリの値として指定されたITリソース定義の名前で置き換えられます。

  • IT_RES_DEFは、DBATConfiguration.groovyファイルのitResourceDefNameエントリの値として指定されたITリソース定義の名前で置き換えられます。

コネクタ構成XMLファイルが生成されると、動作が次のようになります。

  • ターゲット・システムのフィールド(列)の長さはプロセス・フォームにフェッチされません。そのため、「一意のID」フィールドと「パスワード」フィールドを除き、プロセス・フォームにおける(文字列データ型の)他のすべてのデータ・フィールドの長さは、常に255文字に設定されます。「一意のID」フィールドと「パスワード」フィールドの長さは、40文字に設定されます。

  • nullではないデータベース表のすべての列は、Oracle Identity Managerの必須プロセス・フォーム・フィールドとして表示されます。