DBATコネクタを生成するには、Groovyファイルを構成し、DBATジェネレータを実行してスキーマを検出する必要があります。
Database Application Tables (DBAT)コネクタを生成する手順は、次のステージに分かれています。
コネクタに同梱されている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ファイルの事前定義済セクションであるtrustedおよびtargetのエントリについて説明します。
ノート:
指定がないかぎり、ここで説明されているすべてのエントリは両方のセクションに共通です。
DBATConfiguration.groovyファイルのいずれかのオプションのエントリまたは属性の値を指定しない場合、そのエントリまたは属性の先頭に二重のスラッシュ記号(//)を追加してコメント・アウトしてください。
DBATConfiguration.groovyファイルの一部のエントリおよびプロパティには、USERINFO、USER_INFO、USER_GROUPなどのサンプル値が含まれます。これらのサンプル値は、ターゲット・システムに存在する実際の表名に置き換える必要があります。
これは必須エントリです。ターゲット・システムのITリソース・タイプの名前を入力します。このエントリに指定する値によって、コネクタ・パッケージ、コネクタ構成ファイルおよびコネクタ・インストーラ・ファイルの名前が決まることに注意してください。たとえば、このエントリの値としてDBATを指定すると、コネクタ・パッケージ・ディレクトリの名前もDBAT.zipになります。コネクタ・パッケージのディレクトリ構造の詳細は、「生成されたコネクタ・パッケージの理解」を参照してください。
これはオプション・エントリです。ターゲット・システムのITリソースの名前を入力します。このエントリがコメント化されている場合、ITリソース名はITResourceDefNameエントリの値と同じです。
サンプル値: DBAT
ノート:
このエントリの値は、ターゲット・システム・データベースに作成する各コネクタに対し一意である必要があります。また、この値は、参照定義、リソース・オブジェクト、プロセス・フォーム、スケジュール済タスクなど、(DBATジェネレータの実行後に作成されるコネクタ構成XMLファイルで定義された)すべてのコネクタ・コンポーネントの名前の一部になります。
たとえば、itResourceNameエントリの値としてDBATを指定すると、コネクタのデプロイ後に構成参照定義が作成され、その名前はLookup.Configuration.DBATになります。
これはオプション・エントリです。このエントリは、DBATジェネレータの実行時に生成されるコネクタ・パッケージが格納されるディレクトリの名前です。デフォルトでは、このエントリの値は、itResourceNameエントリの値と同じです。
これはオプション・エントリです。コネクタ・オブジェクトの定義が含まれるXMLファイルの名前と相対パスを入力します。このエントリの値を指定しない場合、ファイル名が次の形式で生成されます。
IT_RES_DEF_NAME-ConnectorConfig.xml
この形式で、IT_RES_DEF_NAMEはitResourceDefNameエントリの値です。
たとえば、このエントリの値を指定せず、DBATがitResourceDefNameエントリの値である場合、生成されるXMLファイルの名前はDBAT-ConnectorConfig.xmlです。
ノート:
特定のターゲット・システム・インストールのファイルを簡単に特定するには、この生成されたXMLファイルの名前の接頭辞にそのターゲット・システム・インストールのITリソースの名前を使用することをお薦めします。
サンプル値: DBAT-ConnectorConfig.xml
これはオプション・エントリです。コネクタ・オブジェクトの構成情報が含まれるXMLファイルの名前と相対パスを入力します。このエントリの値を指定しない場合、ファイル名が次の形式で生成されます。
IT_RES_DEF_NAME-CI.xml
この形式で、IT_RES_DEF_NAMEはitResourceDefNameエントリの値です。
たとえば、このエントリの値を指定せず、DBATがitResourceDefNameエントリの値である場合、生成されるXMLファイルの名前はDBAT-CI.xml です。
これはオプション・エントリです。リソース・バンドル変換が含まれる.propertiesファイルの名前と相対パスを入力します。このエントリの値を指定しない場合、ファイル名が次の形式で生成されます。
IT_RES_DEF_NAME-generator.properties
この形式で、IT_RES_DEF_NAMEはitResourceDefNameエントリの値です。
たとえば、このエントリの値を指定せず、DBATがitResourceDefNameエントリの値である場合、生成されるプロパティ・ファイルの名前はDBAT-generator.propertiesです。
これはオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。Oracle Identity Manager release 11.1.1.xを使用していて、リクエストベースのプロビジョニング操作を実行するリクエスト・データセットを生成する場合にのみ、このエントリに値を指定します。
ユーザー・プロビジョニング操作の作成時にリクエスタが送信する情報を指定するリクエスト・データセット(XMLファイル)の名前と相対パスを入力します。
ノート:
特定のターゲット・システム・インストールのファイルを簡単に特定するには、この生成されたXMLファイル(プロビジョニングおよび変更の両方)の名前の接頭辞にそのターゲット・システム・インストールのITリソースの名前を使用することをお薦めします。
サンプル値: ProvisionResource_DBATUser.xml
これはオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。Oracle Identity Manager release 11.1.1.xを使用していて、リクエストベースのプロビジョニング操作を実行するリクエスト・データセットを生成する場合にのみ、このエントリに値を指定します。
ユーザー・プロビジョニング操作の更新時にリクエスタが送信する情報を指定するリクエスト・データセット(XMLファイル)の名前と相対パスを入力します。
サンプル値: ModifyProvisionedResource_DBATUser.xml
これもオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。Oracle Identity Manager release 11.1.1.xを使用していて、デプロイメント・マネージャを使用してインポートでき、リクエストベースのプロビジョニング操作を実行するリクエスト・データセットを生成する場合にのみ、このエントリに値を指定します。
ユーザー・プロビジョニング操作時にリクエスタが送信する情報を指定するリクエスト・データセット(XMLファイル)の名前と相対パスを入力します。
サンプル値: Datasets.xml
これは必須エントリです。DBATジェネレータが使用するICFバンドルを含むJARファイルの名前と相対パスを入力します。
デフォルト値: ../lib/org.identityconnectors.databasetable-1.2.2.jar
このエントリの値を変更しないでください。
これは、コネクタ構成に関する情報を指定する必須エントリです。このコネクタ構成には、コネクタの動作とターゲット・システムへの接続方法に関する情報が含まれます。このコネクタは、次の方法のいずれかを使用してターゲット・システムに接続するように構成できます。
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の場合: Microsoft SQL Serverの場合: MySQLの場合: Oracle Databaseの場合: Sybase Adaptive Server Enterpriseの場合: 詳細は、「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 |
いいえ |
いいえ |
該当なし |
ユーザー・データが、親表および子表に分散している場合、子表の名前のカンマ区切りリストを入力します。 サンプル値: ノート: 外部キーに加えて、子表が一意な、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 |
いいえ |
はい |
該当なし |
コネクタがデータソース構成を使用してターゲット・システムに接続する場合のデータソースの名前。 サンプル値: |
jndiProperties |
String |
いいえ |
はい |
該当なし |
JDBCドライバを使用してターゲット・システムとの接続を確立する、またはJNDIを使用してデータソースを検索するために使用するプロパティ。 サンプル値: |
customizedQuery |
String |
いいえ |
いいえ |
該当なし |
リコンサイルする必要のある、新しく追加または変更されたレコードのサブセットを指定するWHERE句。 customizedQueryプロパティの詳細は、「customizedQueryパラメータの値の指定」を参照してください。 |
rethrowAllSQLExceptions |
Boolean |
いいえ |
いいえ |
false |
このプロパティの値を このプロパティの値を ノート: その他のSQL例外はこのプロパティに影響されません。 |
allNative |
Boolean |
いいえ |
いいえ |
false |
このプロパティの値を このプロパティの値を dateFormatおよびTimestampFormatプロパティはこの設定を無効化します。 |
validConnectionQuery |
String |
いいえ |
いいえ |
該当なし |
このプロパティに値を指定しない場合、接続は自動コミット・モードに切り替わることにより検証されます。たとえば、次のような問合せは、一部のデータベースに対しより効率的になる可能性があります。
|
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値のかわりに空の文字列の書込みをサポートさせる場合、このプロパティの値を このプロパティの値を ノート: このプロパティは必須の文字列属性にのみ適用できます。 |
quoting |
String |
いいえ |
いいえ |
なし |
ターゲット・システムで列の名前として保護されたキーワードを使用している場合、引用符を使用します。これはデータベースのアクセス時に生成されたSQLでquotingプロパティ(一重引用符、二重引用符など)間の列名を表示します。 引用符を使用しない場合は、 引用符を使用する場合、次のいずれかの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 |
このプロパティの値を このプロパティの値を |
createScript |
String |
いいえ |
いいえ |
なし |
このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。 プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 ユーザー・アカウントの作成プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトが呼び出されると、親フォームのデータが追加されます。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
updateScript |
String |
いいえ |
いいえ |
なし |
このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。 プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 ユーザー・アカウントの更新プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、親フォームを更新した場合、またはユーザー・アカウントを有効化/無効化した場合に呼び出されます。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
deleteScript |
String |
いいえ |
いいえ |
なし |
このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。 プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 ユーザー・アカウントの削除プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、子データのないアカウントを除外または削除した場合に呼び出されます。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
lookupScript |
String |
いいえ |
いいえ |
なし |
このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。 参照フィールド同期を実行するために、デフォルトのSQL問合せではなく、カスタム・ストアド・プロシージャまたはSQL問合せを使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 参照フィールド同期用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
addMultiValuedAttributeScript |
String |
いいえ |
いいえ |
なし |
このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。 プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 複数値属性の追加プロビジョニング操作用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、複数値の子属性を追加した場合に呼び出されます。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値:
カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
removeMultiValuedAttributeScript |
String |
いいえ |
いいえ |
なし |
このプロパティは、ターゲット・リソース構成のセクションにのみ存在します。 プロビジョニング操作を実行するために、デフォルトのSQL文ではなく、カスタム・ストアド・プロシージャまたはSQL文を使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 参照フィールド同期用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。このスクリプトは、複数値の子属性を削除した場合に呼び出されます。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
executeQueryScript |
String |
いいえ |
いいえ |
なし |
リコンシリエーションを実行するために、デフォルトのSQL問合せではなく、カスタム・ストアド・プロシージャまたはSQL問合せを使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 リコンシリエーション用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。コネクタによりリコンシリエーション操作はGroovyスクリプトに委任され、情報(コネクタ・オブジェクト)をコールバック・ハンドラに渡す責任を負います。このスクリプトは、アカウント検索(完全リコンシリエーションやフィルタ・リコンシリエーションなどの操作)を実行した場合に呼び出されます。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
syncScript |
String |
いいえ |
いいえ |
なし |
増分リコンシリエーションを実行するために、デフォルトのSQL問合せではなく、カスタム・ストアド・プロシージャまたはSQL問合せを使用するようにコネクタを構成する場合にのみ、このプロパティに値を指定します。 増分リコンシリエーション用に作成されたGroovyスクリプトまたはGroovyスクリプトのファイルのURLを入力します。 ファイルのURLは次の書式で入力する必要があります。 file:///URL サンプル値: カスタム・ストアド・プロシージャを使用するコネクタの構成の詳細は、「ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成」を参照してください。 |
DBATジェネレータは、ターゲット・システムの列名および表名と、Oracle Identity Managerのリソース・オブジェクト・フィールド名またはプロセス・フォーム・フィールド名との間の関係を作成するために、別名を使用します。また、DBATジェネレータは、Oracle Identity Managerのフォーム名およびフォーム・フィールド名に対する文字の長さの制限を満たすように長いデータベース名を短くするため、別名を使用します。別名は、列名、表名、フォーム名およびフォーム・フィールド名のレベルで使用できます。ターゲット・システムの列はコネクタ属性として表されることに注意してください。
構成のタイプに応じて、次のセクションのいずれかの値を指定します。
信頼できるソース構成の場合
信頼できるソース構成セクションで、別名エントリを使用してコネクタ属性またはターゲット・システムの列名を、UDFなどのOIMユーザー・フォーム・フィールド名にマップします。ここで指定したマッピングを使用して、信頼できるソースのリコンシリエーション用のLookup.RESOURCE.UM.ReconAttrMap参照定義のエントリが移入されます。
一部のOIMユーザー・フォーム・フィールド名が内部的に同じ表示名を持たないことに注意してください。そのようなフィールドの場合、コネクタ属性またはターゲット・システムの列名が表示名ではなく内部名にマップされていることを確認する必要があります。次の表には、OIMユーザー・フォーム表示名と対応する内部名がリストされています。
| 表示名 | 内部名 |
|---|---|
Organization |
Organization Name |
Manager |
Manager Login |
別名エントリのデフォルト値は次のとおりです。
['__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文字です。したがって、プロセス・フォーム名は切り捨てられません。
これはオプションのエントリで、ターゲット・リソース構成のセクションにのみ存在します。エンタープライズ・ターゲット・システム・リソースのプロビジョニング中に、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ファイルの事前移入エントリには、キー列のマッピングが含まれないことを確認します。または、事前移入エントリには、__NAME__属性マッピングを指定しないでください。
同じ情報が「事前定義済セクションのエントリ」のprepopulateエントリで説明されています
信頼できるソースとして構成されたターゲット・システムの場合
デフォルトで、コネクタはITリソースに指定した表のキー列を、Oracle Identity Managerの「ユーザー・ログイン」フィールドにマップします。しかし、キー列が自動増分オプションを使用して構成されている場合、別名エントリで、OIMの「ユーザー・ログイン」フィールドを別のターゲット・システム列にマップできます。
デフォルトのマッピングを変更する場合、__UID__属性がOracle Identity Managerの対応するフィールドにマップされていることを確認します。
同じ情報が「事前定義済セクションのエントリ」のaliasエントリで説明されています
この項では、jdbcUrlTemplateプロパティについて説明します。「Groovyファイルの構成の概要」で説明している手順を実行するときには、この項の情報を適用してください。
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
次に示す接続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
次に示す接続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
次に示す接続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
次に示す接続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)))
次に示す接続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-generator-RELEASE_NUMBER/binディレクトリ(「Groovyファイルの構成の概要」のステップ3で作成)に存在するDBATGenerator.cmdまたはDBATGenerator.shファイルです。
DBATジェネレータを実行するには、次のようにします。
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の必須プロセス・フォーム・フィールドとして表示されます。