DBATコネクタをデプロイする手順は、インストール前、インストール、およびインストール後の3つのステージに分けることができます。
コネクタをインストールして構成する手順は、次のステージに分けることができます。
DBATコネクタの前提条件には、ターゲット・システムのユーザー・アカウントの作成およびデータベースの構成があります。
ターゲット・システムで次のインストール前の手順を実行します。
Oracle Identity Managerはユーザー・アカウントを使用し、ターゲット・システムからのデータのプロビジョニングとリコンサイルを実行します。このコネクタに対して動作保証されているすべてのターゲットに対し、ターゲット・システムのユーザー・アカウントに割り当てられる最小限の権限を次に示します。
リコンシエーション用: ユーザー・アカウントに、このコネクタにより管理される必要のある表でSelect文を実行する権限が必要です。
プロビジョニング用: ユーザー・アカウントに、このコネクタにより管理される必要のある表で選択、挿入、更新および削除操作を実行する権限が必要です。
コネクタでカスタム・ストアド・プロシージャを使用してコネクタ操作を実行するように構成する場合、ユーザー・アカウントに、関連するストアド・プロシージャの実行権限が必要です。
コネクタ操作の実行に必要なこれらの権限を持つターゲット・システムのユーザー・アカウントを作成する手順については、ターゲット・システムのドキュメントを参照してください。
プロビジョニング操作時に、コネクタはJavaストアド・プロシージャを実行し、ターゲット・システムで必要なアクションを実行します。IBM DB2インストールがIBM z/OSで実行している場合、WLMをこれらのストアド・プロシージャの実行を有効にするように構成する必要があります。WLMの構成の詳細は、IBM z/OSのドキュメントを参照してください。
ノート:
この手順はオプションです。自動増分主キーが必要な場合にのみ、このプロシージャをOracleデータベースで実行します。
Oracleデータベース表の作成後はいつでも、そのデータベース表に対して自動増分主キー列を設定できます。自動増分主キーを設定するには、シーケンスを作成し、その後、新しいレコードの親表への挿入中に、主キー・フィールドに一意の自動生成番号を挿入するトリガーを作成します。使用できるトリガーを次に示します。
CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN SELECT sequence_name.nextval INTO :new.primaty_Key_column_name FROM DUAL; END;
このコネクタ・コードは、Oracle Identity Managerでローカルに実行することも、コネクタ・サーバーでリモートで実行することもできます。
生成されたコネクタを実行する場所に応じて、コネクタのインストール・オプションは次のようになります。
コネクタ・コードをOracle Identity Managerでローカルに実行するには、「Oracle Identity Managerへのコネクタのインストール」の手順を実行します。
コネクタ・コードをコネクタ・サーバーでリモートで実行するには、「Oracle Identity Managerへのコネクタのインストール」および「コネクタ・サーバーへのコネクタ・バンドルのデプロイについて」に示されている手順を実行します。
このシナリオでは、コネクタ・インストーラを使用してコネクタをOracle Identity Managerにインストールします。
ノート:
このガイドでは、コネクタ・インストーラという用語は、Oracle Identity Manager管理およびユーザー・コンソールのコネクタ・インストーラ機能を示すために使用されます。
コネクタのこのバージョンが以前インストールされていて、ライブラリを追加する必要のある別のターゲット・システムにインストールする場合は、次のようにします。
JARダウンロード・ユーティリティを使用して、コネクタ・バンドルJARファイルをOracle Identity Managerデータベースにダウンロードします。
JARファイルのコンテンツを抽出し、ターゲット・システム用のJDBCドライバをlibディレクトリにコピーします。ターゲット・システム用のJDBCドライバを決定するには、表1-1の「JDBCドライバ」行を参照してください。
JARアップロード・ユーティリティを実行して、JARファイルをOracle Identity Managerデータベースにアップロードします。
PurgeCacheユーティリティを実行して、コネクタ・バンドルJARに関連するコンテンツをサーバー・キャッシュからクリアします。PurgeCacheユーティリティの実行の詳細は、サーバー・キャッシュからのコネクタ・リソース・バンドル関連コンテンツの消去を参照してください。
コネクタ・インストーラを実行して、コネクタ・パッケージ(DBATジェネレータの実行後に生成される)をインストールする必要があります。これを行うには、次のようにします。
解凍したコネクタ・パッケージ(「スキーマの検出とコネクタの生成」で生成)を次のディレクトリにコピーします。
OIM_HOME/server/ConnectorDefaultDirectory
OIM_HOME/ConnectorDefaultDirectory/targetsystems-libにインストーラ・パッケージと同じ名前のディレクトリを作成します。次に例を示します。
OIM_HOME/server/ConnectorDefaultDirectory/targetsystems-lib/dbat-11.1.1.6.0
JDBCドライバをこのディレクトリにコピーします。ターゲット・システムに対応するJDBCドライバを確認するには、表1-1を参照してください。
ノート:
Oracle DatabaseまたはOracle RACをターゲット・システムとして使用している場合、JDBCドライバは必要ありません。このステップは省略して、次のステップに進むことができます。
コネクタのインストール中、OIM_HOME/server/ConnectorDefaultDirectory/targetsystems-lib/dbat-11.1.1.6.0ディレクトリにあるすべてのJDBCドライバは、Oracle Identity Managerデータベースにロードされてから、Database Application Tablesコネクタに登録されます。
なんらかの理由でこのステップがスキップされた場合、JDBCドライバをコネクタのJARファイルのlibディレクトリに手動でコピーし、Oracle Identity ManagerのJARアップロード・ユーティリティを実行して、コネクタのJARファイルをOracle Identity Managerデータベースにポストする必要があります。JARアップロード・ユーティリティの実行の詳細は、Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズのJARおよびリソース・バンドルの移行に関する項を参照してください。
Oracle Identity System Administrationにログインします。
「コネクタの管理」ページで「インストール」をクリックします。
「コネクタ・リスト」で、コネクタ・パッケージ(DBATジェネレータの実行後に生成される)の名前を選択します。このリストには、ステップ1でインストール・ファイルをデフォルト・コネクタ・インストール・ディレクトリにコピーしたコネクタの、名前およびリリース番号が表示されます。
インストール・ファイルを異なるディレクトリにコピーした場合は、次のようにします。
「代替ディレクトリ」フィールドに、該当するディレクトリのフルパスおよび名前を入力します。
「リフレッシュ」をクリックして、「コネクタ・リスト」に含まれるコネクタのリストを再移入します。
「コネクタ・リスト」で、コネクタ・パッケージの名前を選択します。
「ロード」をクリックします。
「続行」をクリックして、インストール処理を開始します。
次のタスクが順番に実行されます。
コネクタ・ライブラリの構成
コネクタのXMLファイルをインポートします(デプロイメント・マネージャを使用)。
アダプタ定義のコンパイル
正常に完了したタスクには、チェックマークが表示されます。タスクが失敗すると、Xマークおよび失敗の理由を示すメッセージが表示されます。失敗の理由に応じて必要な修正を行い、次のいずれかのステップを実行します。
「再試行」をクリックして、インストールを再試行します。
インストールを取り消して、ステップ1からやりなおします。
コネクタのインストール手順の3つのタスクがすべて正常に終了すると、インストールの成功を示すメッセージが表示されます。
コネクタ・インストーラを実行するときに、構成ディレクトリにあるDBAT-CI.xmlファイルのスクリプトを処理します。このファイルは表C-1にリストされています。
Database Application Tablesコネクタは、Oracle Identity Managerにローカルにデプロイすることも、コネクタ・サーバーにリモートにデプロイすることもできます。コネクタ・サーバーは、Database Application Tablesコネクタなどのアイデンティティ・コネクタのリモート実行を可能にする別個のアプリケーションです。コネクタ・サーバーでコネクタを実行すると、コネクタ・サーバーで定義した方法で、プロビジョニングおよびリコンシエーション・リクエストがファイアウォールを通過することができます。
コネクタ・サーバーにコネクタ・バンドルをデプロイする手順は、次のステージに分かれています。
コネクタ・サーバーは、次の2つの実装で使用できます。
.Net実装として、.Net Frameworkで実装されているアイデンティティ・コネクタによって使用されます。
Javaベースのアイデンティティ・コネクタにより使用されるJavaコネクタ・サーバー実装
Database Application TablesコネクタはJavaで実装されるため、このコネクタをJavaコネクタ・サーバーにデプロイできます。
Javaコネクタ・サーバーをインストールおよび構成するには、次のステップを実行します。
ノート:
Javaコネクタ・サーバーをデプロイする前に必ず、Javaコネクタ・サーバーをインストールするコンピュータと同じコンピュータにJDKまたはJREをインストールし、JAVA_HOMEまたはJRE_HOME環境変数がこのインストールを指し示していることを確認してください。
Microsoft Windows、Solaris、LinuxでJavaコネクタ・サーバーを実行するには、Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズのJavaコネクタ・サーバーの使用に関する項を参照してください。
ここでは、DBATコネクタのインストール後に実行する必要があるタスクについて説明します。
この項では、次のインストール後の手順について説明します。
ターゲット・システムのITリソースには、ターゲット・システムに関する接続情報が含まれます。Oracle Identity Managerでは、プロビジョニングおよびリコンシリエーション時にこの情報を使用します。
DBATジェネレータを実行すると、このコネクタに対応するITリソースがOracle Identity Managerで自動的に作成されます。次のようにして、このITリソースのパラメータの値を指定する必要があります。
コネクタでは、日付データを処理する方法を構成できます。日付データは、日付エディタまたはテキストとして処理できます。
日付データを日付エディタとして処理するには:
ITリソースのdateFormatパラメータに値が入力されていないことを確認します。
Design Consoleにログインします。
プロセス・フォームで、日付エディタを示すようにすべての日付パラメータを変更します。
プロセス・フォームのフィールドのデータ型を文字列から日付に変更します。
Lookup.RESOURCE.UM.ProvAttrMap and Lookup.RESOURCE.UM.ReconAttrMap参照定義で、日付フィールドに対応するすべての参照エントリに[DATE]
タグを追加します。
リソース・オブジェクトで、リコンシリエーション・データ・フィールド・タイプを「日付」に設定して日付フィールドを更新します。
プロセス定義のリコンシリエーション・フィールド・マッピング・タブで、日付フィールドのフィールド・マッピングを追加します。
リソース・オブジェクトのオブジェクト・リコンシリエーション・タブで、「リコンシリエーション・プロファイルの作成」をクリックして、リソース・オブジェクトに対する変更をMDSにコピーします。
日付データをテキストとして処理するには:
[DATE]
タグが含まれていないことを確認します。ノート:
この項で説明する手順は、次の両方の条件を満たす場合にのみ実行します。
ターゲット・システムがターゲット・リソースとして構成されている。
ターゲット・システムのキー列が自動増分オプションを指定して構成されている。
自動増分主キーを含むターゲット・システムにコネクタを構成するには、次のステップを実行します。
デフォルトで、ターゲット・システムのキー列は、リコンシリエーション・ルールのOIMの「ユーザー・ログイン」フィールドにマップされます。コネクタ操作を実行する前に、リコンシリエーション・ルールを変更して、OIMの「ユーザー・ログイン」フィールドを別のターゲット・システム列にマップできます。
子表のキー列が自動増分オプションを指定して構成されている場合、デザイン・コンソールを使用して、子表のキー・フィールドに対する'required=true'プロパティを削除することで、子フォームを変更します。
事前移入アダプタにキー列のマッピングが含まれている場合、デザイン・コンソールを使用して、事前移入アダプタを無効にするかまたは変更して、コネクタ・キー列を削除します。
ノート:
この項で説明されている手順は、ターゲット・リソース構成モードでコネクタを使用する場合にのみ実行してください。
リコンシリエーションおよびプロビジョニング操作を実行するリソースに対し、UIフォームおよびアプリケーション・インスタンスを作成する必要があります。さらに、権限およびカタログ同期化ジョブを実行する必要があります。これらの手順について、次の各項で説明します。
サンドボックスの作成およびアクティブ化の手順は、Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズのサンドボックスの管理を参照してください。
UIフォームの新規作成の手順は、Oracle Fusion Middleware Oracle Identity Managerの管理のフォームの管理を参照してください。UIフォームを作成するときは、必ずそのフォームを関連付けるDBATコネクタに対応するリソース・オブジェクトを選択します。また、「権限フォームの生成」チェック・ボックスを選択します。
アプリケーション・インスタンスを作成する手順は、『Oracle Fusion Middleware Oracle Identity Managerの管理』の「アプリケーション・インスタンスの管理」を参照してください。アプリケーション・インスタンスを作成するときは、必ず「UIフォームの新規作成」で作成したフォームを選択します。
アプリケーション・インスタンスを作成したら、それを組織に公開して、アプリケーション・インスタンスのリクエストとそれに続くユーザーへのプロビジョニングを可能にする必要があります。ただし、ベスト・プラクティスとして、アプリケーション・インスタンスを公開する前に次の手順を実行します。
組織にアプリケーション・インスタンスを公開する手順は、Oracle Fusion Middleware Oracle Identity Managerの管理のアプリケーション・インスタンスに関連付けられた組織の管理を参照してください。
サンドボックスを公開する前に、ベスト・プラクティスとして次の手順を実行し、このステージまでに行われたすべてのサンドボックスの変更を検証してください(サンドボックスが一度公開されると変更を元に戻すことは難しいため)。
権限の収集とカタログ同期化を行うには:
UIフォームに追加されるフィールド・ラベルをローカライズするには、次のようにします。
ターゲット・システムの列名(管理およびユーザー・コンソールにGUI要素およびメッセージに対するテキスト文字列として表示される)に対するローカライズされたバージョンを含むプロパティ・ファイル(DBAT_ja.propertiesなど)を作成します。
Oracle Enterprise Managerにログインします。
左側のペインで、「アプリケーションのデプロイ」を開き、oracle.iam.console.identity.sysadmin.earを選択します。
右側のペインで、「アプリケーションのデプロイ」リストから、「MDS構成」を選択します。
「MDS構成」ページで、「エクスポート」をクリックして、ローカル・コンピュータにアーカイブを保存します。
アーカイブの内容を抽出し、テキスト・エディタで次のいずれかのファイルを開きます。
Oracle Identity Manager 11gリリース2 PS2 (11.1.2.2.0)以降のリリースの場合:
SAVED_LOCATION\xliffBundles\oracle\iam\ui\runtime\BizEditorBundle_en.xlf
Oracle Identity Manager 11gリリース2 PS2 (11.1.2.2.0)より前のリリースの場合:
SAVED_LOCATION\xliffBundles\oracle\iam\ui\runtime\BizEditorBundle.xlf
BizEditorBundle.xlfファイルを次の方法で編集します。
次のテキストを検索します。
<file source-language="en" original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf" datatype="x-oracle-adf">
次のテキストで置き換えます。
<file source-language="en" target-language="LANG_CODE"
original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
datatype="x-oracle-adf">
このテキストで、LANG_CODEを、フォーム・フィールド・ラベルをローカライズする言語のコードに置き換えます。フォーム・フィールド・ラベルを日本語でローカライズする場合の値の例を次に示します。
<file source-language="en" target-language="ja" original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf" datatype="x-oracle-adf">
アプリケーション・インスタンスのコードを検索します。このプロシージャは、Database Application Tablesアプリケーション・インスタンス用の編集の例を示しています。元のコードは次のとおりです。
<trans-unit id="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.UD_ACMEDBAP_APP_DFLT_HOME__c_description']}"> <source>APP_DFLT_HOME</source> <target/> </trans-unit> <trans-unit id="sessiondef.oracle.iam.ui.runtime.form.model.ACMEFORM.entity.ACMEFORMEO.UD_ACMEDBAP_APP_DFLT_HOME__c_LABEL"> <source>APP_DFLT_HOME</source> <target/> </trans-unit>
ステップ1で作成したプロパティ・ファイルを開き、global.udf.D_ACMEDBAP_APP_DFLT_HOME=\u4567dなどの属性の値を取得します。
ステップ7.7.cに示されている元のコードを、次のものに置き換えます。
<trans-unit id="${adfBundle['oracle.adf.businesseditor.model.util.BaseRuntimeResourceBundle']['persdef.sessiondef.oracle.iam.ui.runtime.form.model.user.entity.userEO.UD_ACMEDBAP_APP_DFLT_HOME__c_description']}"> <source>APP_DFLT_HOME</source> <target>\u4567d</target> </trans-unit> <trans-unit id="sessiondef.oracle.iam.ui.runtime.form.model.ACMEFORM.entity.ACMEFORMEO.UD_ACMEDBAP_APP_DFLT_HOME__c_LABEL"> <source>APP_DFLT_HOME</source> <target>\u4567d</target> </trans-unit>
ファイルをBizEditorBundle_LANG_CODE.xlfとして保存します。このファイル名で、LANG_CODEを、ローカライズする言語のコードに置き換えます。
サンプル・ファイル名: BizEditorBundle_ja.xlf.
ZIPファイルを再パッケージしてMDSにインポートします。
関連項目:
メタデータ・ファイルのエクスポートおよびインポートの詳細は、『Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズ』の「カスタマイズのデプロイおよびアンデプロイ」を参照してください
Oracle Identity Managerからログアウトしてから、ログインします。
コネクタをデプロイすると、リソース・バンドルがインストール・メディアのresourcesディレクトリからOracle Identity Managerデータベースにコピーされます。connectorResourcesディレクトリに新しいリソース・バンドルを追加したり、既存のリソース・バンドルに変更を加えた場合は、コネクタ・リソース・バンドルに関連するコンテンツをその都度サーバー・キャッシュから消去する必要があります。
サーバー・キャッシュからコネクタ・リソース・バンドル関連コンテンツをクリアするには、Oracle Identity Managerを再起動するか、PurgeCacheユーティリティを実行します。次に、PurgeCacheユーティリティを実行してサーバー・キャッシュをクリアする手順を示します。
Oracle Identity Managerリリースでは、ロギングにOracle Java Diagnostic Logging (OJDL)を使用します。OJDLはjava.util.Loggerに基づいています。ロギングを行うイベントのタイプを指定するには、ログ・レベルを次のいずれかに設定します。
SEVERE.intValue()+100
このレベルでは、致命的エラーに関する情報のロギングが有効化されます。
SEVERE
このレベルでは、Oracle Identity Managerの実行を続行できる可能性があるエラーに関する情報のロギングが有効化されます。
WARNING
このレベルでは、障害を引き起こす可能性のある状況に関する情報のロギングが有効化されます。
INFO
このレベルでは、アプリケーションの進行状況を示すメッセージのロギングが有効化されます。
CONFIG
このレベルでは、デバッグに役立つ詳細なイベントに関する情報のロギングが有効化されます。
FINE、FINER、FINEST
これらのレベルでは詳細なイベントに関する情報のロギングが有効化され、FINESTではすべてのイベントに関する情報が記録されます。
表3-2に示すように、これらのログ・レベルはODLのメッセージ・タイプとレベルの組合せにマップされます。
表3-2 ログ・レベルおよびODLメッセージ・タイプ: レベルの組合せ
ログ・レベル | ODLメッセージ・タイプ:レベル |
---|---|
SEVERE.intValue()+100 |
INCIDENT_ERROR:1 |
SEVERE |
ERROR:1 |
WARNING |
WARNING:1 |
INFO |
NOTIFICATION:1 |
CONFIG |
NOTIFICATION:16 |
FINE |
TRACE:1 |
FINER |
TRACE:16 |
FINEST |
TRACE:32 |
OJDLの構成ファイルはlogging.xmlであり、次のパスにあります。
DOMAIN_HOME/config/fmwconfig/servers/OIM_SERVER/logging.xml
ここで、DOMAIN_HOMEとOIM_SERVERは、Oracle Identity Managerのインストール時に指定されたドメイン名とサーバー名です。
Oracle WebLogic Serverのロギングを有効化するには、次のようにします。
次のようにしてlogging.xmlファイルを編集します。
ファイル内に次のブロックを追加します。
<log_handler name='dbat-handler' level='[LOG_LEVEL]' class='oracle.core.ojdl.logging.ODLHandlerFactory'> <property name='logreader:' value='off'/> <property name='path' value='[FILE_NAME]'/> <property name='format' value='ODL-Text'/> <property name='useThreadName' value='true'/> <property name='locale' value='en'/> <property name='maxFileSize' value='5242880'/> <property name='maxLogSize' value='52428800'/> <property name='encoding' value='UTF-8'/> </log_handler>
<logger name="ORG.IDENTITYCONNECTORS.DATABASETABLE" level="[LOG_LEVEL]" useParentHandlers="false">
<handler name="dbat-handler"/>
<handler name="console-handler"/>
</logger>
[LOG_LEVEL]
が出現したら両方を必要なODLのメッセージ・タイプとレベルの組合せに置き換えます。表3-2に、サポートされているメッセージ・タイプとレベルの組合せを示します。
同様に、[FILE_NAME]
は、ログ・メッセージを記録するログ・ファイルのフルパスおよび名前で置き換えます。
次のブロックは、[LOG_LEVEL]
および[FILE_NAME]
のサンプル値を示しています。
<log_handler name='dbat-handler' level='NOTIFICATION:1' class='oracle.core.ojdl.logging.ODLHandlerFactory'> <property name='logreader:' value='off'/> <property name='path' value='/<%OIM_DOMAIN%>/servers/oim_server1/logs/DBATlogs.log'/> <property name='format' value='ODL-Text'/> <property name='useThreadName' value='true'/> <property name='locale' value='en'/> <property name='maxFileSize' value='5242880'/> <property name='maxLogSize' value='52428800'/> <property name='encoding' value='UTF-8'/> </log_handler> <logger name="ORG.IDENTITYCONNECTORS.DATABASETABLE" level="NOTIFICATION:1" useParentHandlers="false"> <handler name="dbat-handler"/> <handler name="console-handler"/> </logger>
Oracle Identity Managerをこれらのサンプル値とともに使用すると、このコネクタに対して生成された、ログ・レベルがNOTIFICATION:1
レベル以上のすべてのメッセージが、指定したファイルに記録されます。
ファイルを保存して閉じます。
サーバー・ログをファイルにリダイレクトするには、次の環境変数を設定します。
Microsoft Windowsの場合:
set WLS_REDIRECT_LOG=FILENAME
UNIXの場合:
export WLS_REDIRECT_LOG=FILENAME
FILENAMEを、出力のリダイレクト先ファイルの場所と名前に置き換えます。
アプリケーション・サーバーを再起動します。
ノート:
この手順はオプションです。この手順は、プロビジョニング操作中に、プロセス・フォームの一部のフィールドに参照定義を入力ソースとして使用する必要がある場合にのみ実行してください。
プロビジョニングにコネクタを構成している場合は、プロセス・フォームに参照フィールドを作成する必要があります。たとえば、プロビジョニング操作中に、参照フィールドから国コード値を選択することが必要な場合があります。デプロイ後、フィールドの入力ソースを指定することで、このフィールドを参照フィールドとして設定できます。
参照定義は入力ソースとして使用できます。たとえば、国コードを含む参照定義を作成し、その参照定義を国フィールドの入力ソースとして設定できます。入力ソースとして参照定義を使用する場合、次のステップを実行します。
関連項目:
次の各ステップの詳細は、Oracle Fusion Middleware Oracle Identity Managerの管理のデータセットのフィールドの追加または編集に関する項を参照してください
Design Consoleにログインします。
入力ソースとして使用する必要のある空の参照定義を作成します。コネクタのインストール後に作成される、Lookup.DBAT.Example参照定義を使用する場合は、このステップをスキップします。
データ・フィールドをテキストから参照フィールドへ変更するようにプロセス・フォームを更新します。これを行うには、次のようにします。
「Development Tools」を開き、「Form Designer」をダブルクリックします。
リソースをターゲット・システムのユーザー・アカウントにプロビジョニングするために必要な情報を含むプロセス・フォームを検索して開きます。プロセス・フォームの名前は次の形式になります。
UD_[RESOURCE]_[TABLE_ALIAS]
「Create New Version」 をクリックします。
編集用に新しいバージョンのフォームが作成されます。
追加列タブの、参照フィールドとして設定するデータ・フィールドの行で、「フィールド・タイプ」列の値を「テキスト・フィールド」から「参照フィールド」に変更します。
「プロパティ」タブで、データ・フィールド(前のステップで「フィールド・タイプ」が「テキスト・フィールド」から「参照フィールド」に変更済)を選択して、「プロパティの追加」をクリックします。
「プロパティの追加」ダイアログ・ボックスで、次の操作を実行します。
「プロパティ名」リストから、「参照コード」を選択します。
「プロパティ値」フィールドに、入力ソースとして使用する参照定義の名前(ステップ2で使用されたもの)を入力します。
ノート:
権限用の参照フィールドを設定する場合、「プロパティ名」リストから、「権限」を選択し、その適切な値をtrue
に設定します。
「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。
プロセス・フォームの「保存」アイコンをクリックします。
「Make Version Active」をクリックします
子フォームの新しいバージョンを含む、親フォームの新しいバージョンを作成してアクティブ化します。
フィールドが参照フィールドであることを示す情報を含むように参照エントリを更新します。これを行うには、次のようにします。
「Administration」を開き、「Lookup Definition」をダブルクリックします。
Lookup.RESOURCE.UM.ProvAttrMap参照定義を検索して開きます。
参照エントリで、参照フィールドに変更された「Code Key」列のフィールド名を検索し、フィールド名に接尾辞[LOOKUP]
を付けます。これは、プロセス・フォーム・フィールドが参照フィールドであることを示します。
「Save」アイコンをクリックします。
ステップ4.4.bから4.4.dを繰り返し、リコンシリエーション属性マッピングを含む参照定義の対応するコード・キー・エントリに接尾辞[LOOKUP]
を付けます。
ステップ4.4.cの実行中に、Lookup.RESOURCE.UM.ReconAttrMap参照定義を検索して開きます。
これにより参照定義を入力ソースとして設定する手順が完了します。
子プロセス・フォーム・フィールドを権限として構成する場合、対応する参照定義にそれを関連付けて、権限プロパティをtrueに設定する必要があります。対応する参照定義が存在しない場合、手動でそれを作成する必要があります。詳細は、Oracle Fusion Middleware Oracle Identity Managerの管理の子プロセス・フォームでの権限属性のマークに関する説明を参照してください。
デフォルトでは、メタデータの生成後に、すべての日付フィールドがテキスト・フィールドとしてプロセス・フォームに表示されます。これらのフィールドを日付ピッカーとして表示する場合、次のステップを実行する必要があります。
ノート:
この手順で説明した各ステップを実行する詳細は、Oracle Fusion Middleware Oracle Identity Managerの管理のステップ3: コネクタ構成の変更に関する項を参照してください。
ノート:
この項で説明されている手順を実行し、ターゲット・システムおよびOracle Identity Manager間の通信を保護することをお薦めします。
通信を保護するための手順は、使用しているデータベースにより異なります。
ノート:
IBM DB2バージョン9.1 Fix Pack 2以降はSSLでのセキュアな通信をサポートします。
IBM DB2とOracle Identity Managerの間のセキュアな通信を構成する前に、IBM Global Security Kit (GSKit)をインストールする必要があります。
IBM DB2とクライアント・システム間のSSL通信の有効化の詳細は、IBM DB2のドキュメントを参照してください。このコンテキストでは、クライアントはOracle Identity Managerです。
IBM DB2とOracle Identity Managerの間にセキュアな通信を構成するには、次のようにします。
Microsoft SQL ServerおよびOracle Identity Manager間にセキュアな通信を構成するには、次のようにします。
Oracle DatabaseおよびOracle Identity Manager間の通信を保護するには、次の手順の一方、または両方を実行します。
データの暗号化および整合性の構成の詳細は、『Oracle Databaseセキュリティ・ガイド』のネットワークのデータ暗号化および整合性の構成に関する項を参照してください。
このコネクタをコネクタ・サーバーにデプロイ済の場合、コネクタ・サーバーとOracle Identity Manager間の通信を保護することをお薦めします。セキュアな通信を構成する手順は、「ターゲット・システムとOracle Identity Managerの間のセキュアな通信の構成について」で説明している手順と同じです。この項で説明する手順を実行する際、ターゲット・システムと同様に、コネクタ・サーバーを別個のシステムとみなすことができます。
セキュアな通信を構成する前に、次のようにします。
キーストアへのアクセスに適切な権限を持っているユーザーの下でコネクタ・サーバーが実行していることを確認します。
コネクタ・サーバーにキーストアが存在し、アクセスできることを確認します。
コネクタ・サーバーのキーストアに必要な証明書が含まれていることを確認します。
コネクタ・サーバーのデフォルトのJavaキーストアを使用していない場合、ITリソースのURLまたはjndiPropertiesプロパティ(DBATConfiguration.groovyファイル)のキーストア・パスおよびパスワードを変更し、コネクタ・サーバー上の場所と一致させます。
コネクタを使用してリコンシリエーションおよびプロビジョニング操作を実行するときに、コネクタはそれぞれデフォルトのSQL問合せおよびSQL文を実行します。シコンシリエーションまたはプロビジョニング操作を実行するために、デフォルトのSQL文および問合せではなく、コネクタがカスタム・ストアド・プロシージャを使用するようにする場合、この項に示された手順を実行する必要があります。
関連項目:
サンプルのストアド・プロシージャおよびGroovyスクリプトについては、「サンプルのストアド・プロシージャおよびGroovyスクリプト」を参照してください
カスタム・ストアド・プロシージャに対するコネクタを構成するには、次のようにします。
ターゲット・システムで、プロビジョニング操作を実行するために使用する必要のあるストアド・プロシージャを作成します。次に、グループとロールの子データを削除するDELETE SQL文を実行するサンプルのストアド・プロシージャ(Oracle Databaseで作成)を示します。Oracle Database以外のターゲット・システムでは、このサンプル・プロシージャの構文は異なる可能性があります。
DELETE_USERGROUP
のストアド・プロシージャは次のとおりです。
create or replace PROCEDURE DELETE_USERGROUP ( userin IN VARCHAR2, gId IN VARCHAR2 ) AS BEGIN DELETE from USER_GROUP where USERID=userin and GROUPID=gId; END DELETE_USERGROUP;
DELETE_USERROLE
のストアド・プロシージャは次のとおりです。
create or replace PROCEDURE DELETE_USERROLE ( userin IN VARCHAR2, rId IN VARCHAR2 ) AS BEGIN DELETE from USER_ROLE where USERID=userin and ROLEID=rId; END DELETE_USERROLE;
Oracle Identity Managerのホスト・コンピュータで、プロビジョニング操作を実行するためにターゲット・システムの関連するストアド・プロシージャを呼び出すGroovyスクリプトを作成します。次の引数は、Groovyスクリプトで直接使用できます。
connector - Database Application Tablesコネクタ・オブジェクト。
conn - JDBC接続。
timing - Groovyスクリプトが呼び出されるタイミング。また、timing属性は、実行される操作のタイプも説明します。たとえば、検索操作の場合、検索対象のオブジェクト・クラスも返されます。
次に、参照フィールド同期のtiming引数の書式を示します。
executeQuery:OBJECT_CLASS
この書式で、OBJECT_CLASSは、リコンサイルされるオブジェクトのタイプに置き換えられます。
たとえば、オブジェクト・タイプ"Role"を含む参照フィールド同期のスケジュール済ジョブの場合、timing引数の値は次のようになります。
executeQuery:Role
attributes - すべての属性。
trace - アプリケーションへのスクリプト・トレース・ブリッジとしてのロガー。
where - 問合せの実行の条件の文字列、またはnull。
handler - 問合せの実行、同期操作またはnullの返却により生成されるコネクタ・オブジェクトのresultSetHandlerまたはSyncResultsHandler。
quoting - SQLで使用される表名の引用符のタイプ。デフォルトは、空の文字列です。この引数の値は、ITリソースから取得されます。
nativeTimestamps - スクリプトによって、データベース表からjava.sql.Timestampタイプとして列のタイムスタンプ・データを取得するかどうかを指定します。この情報は、ITリソースから取得されます。
allNative - スクリプトによって、データベース表からネイティブ形式で列のデータ型を取得するかどうかを指定します。この引数の値は、ITリソースから取得されます。
rethrowAllSQLExceptions - この引数の値も、ITリソースから取得されます。この引数の値によって、ゼロ(0x00)のエラー・コードが出現したときに、スクリプトで例外をスローするかどうかを指定します。
enableEmptyString - NULL値のかわりに空の文字列の書込みのサポートを有効化するかどうかを指定します。この引数の値は、ITリソースから取得されます。
filterString - 問合せの実行の文字列フィルタ条件、またはnull。
filterParams - フィルタ・パラメータのリスト。各パラメータは、COLUMN_NAME:VALUEの形式で存在します。たとえば、FIRSTNAME:testです。
syncattribute - 増分リコンシリエーション用に構成されたデータベース列の名前。この引数は、増分リコンシリエーションの実行中に呼び出される同期スクリプトで使用できます。
synctoken - 同期属性の値。この引数は、同期スクリプトで使用できます。
次に、ステップ1で作成したDELETE_USERGROUPおよびDELETE_USERROLEストアド・プロシージャを呼び出す、サンプルのGroovyスクリプトを示します。
import org.identityconnectors.framework.common.objects.*; System.out.println("[removeMultiValuedAttributeScript] Removing Child data::"+ attributes); try { childDataEOSet = null; delSt = null; //Get UID String id = attributes.get("__UID__").getValue().get(0); if(attributes.get("USER_GROUP")!=null) { childDataEOSet=attributes.get("USER_GROUP").getValue(); //Delete child data using stored procedure delSt= conn.prepareCall("{call DELETE_USERGROUP(?,?)}"); if(childDataEOSet !=null){ System.out.println("[removeMultiValuedAttributeScript] Removing Group data."); //Iterate through child data and delete for( iterator = childDataEOSet.iterator(); iterator.hasNext(); ) { eo = iterator.next(); attrsSet = eo.getAttributes(); grpattr=AttributeUtil.find("GROUPID",attrsSet); if(grpattr!=null){ groupid=grpattr.getValue().get(0); delSt.setString(1, id); delSt.setString(2, groupid); delSt.executeUpdate(); System.out.println("[removeMultiValuedAttributeScript] Deleted Group::"+ grpattr); } }; } } } finally { if (delSt != null) delSt.close(); }; try { childDataEOSet = null; delSt = null; String id = attributes.get("__UID__").getValue().get(0); if(attributes.get("USER_ROLE")!=null) { childDataEOSet=attributes.get("USER_ROLE").getValue(); delSt= conn.prepareCall("{call DELETE_USERROLE(?,?)}"); if(childDataEOSet !=null){ System.out.println("[removeMultiValuedAttributeScript] Removing Role data."); for( iterator = childDataEOSet.iterator(); iterator.hasNext(); ) { eo = iterator.next(); attrsSet = eo.getAttributes(); roleattr=AttributeUtil.find("ROLEID",attrsSet); if(roleattr!=null){ rolename=roleattr.getValue().get(0); delSt.setString(1, id); delSt.setString(2, rolename); delSt.executeUpdate(); System.out.println("[removeMultiValuedAttributeScript] Deleted Role::"+ rolename); } }; } } } finally { if (delSt != null) delSt.close(); };
次のようにGroovyスクリプトの情報を含むように構成参照定義を更新します。
ノート:
このステップで説明されている操作は、ストアド・プロシージャ用にコネクタを構成する場合で、かつDBATConfiguration.groovyファイルにcreateScript、executeQueryScript、lookupScriptなどのスクリプト関連プロパティの値を入力していない場合にのみ実行してください。
デザイン・コンソールで、「管理」を開き、「参照定義」をダブルクリックします。
Lookup.Configuration.RESOURCE参照定義を検索して開きます。
「追加」をクリックします。
新しく追加された行で、実行するリコンシリエーションまたはプロビジョニング操作に応じて、次の参照エントリのいずれかまたはすべてを追加します。
表3-3 Groovyスクリプト構成に特有のエントリ
コード・キー | デコード |
---|---|
createScript[LOADFROMURL] |
ユーザー・アカウントの作成プロビジョニング操作用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
updateScript[LOADFROMURL] |
ユーザー・アカウントの更新プロビジョニング操作用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
deleteScript[LOADFROMURL] |
ユーザー・アカウントの削除プロビジョニング操作用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
executeQueryScript[LOADFROMURL] |
完全およびフィルタ・リコンシリエーション用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
lookupScript[LOADFROMURL] |
参照フィールド同期用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
syncScript[LOADFROMURL] |
増分リコンシリエーション用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
addMultiValuedAttributeScript[LOADFROMURL] |
複数値属性の追加プロビジョニング操作用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
removeMultiValuedAttributeScript[LOADFROMURL] |
複数値属性の削除プロビジョニング操作用に作成されたGroovyスクリプトのファイルのURLを入力します。 |
ノート:
GroovyスクリプトのファイルのURLのかわりに、デコード列にGroovyスクリプトを直接入力することもできます。この場合、対応するコード・キー値には[LOADFROMURL]が含まれないようにします。たとえば、ユーザー・アカウントの作成プロビジョニング操作用のGroovyスクリプトを直接入力する場合、対応するコード・キー・エントリはcreateScript[LOADFROMURL]ではなく、createScriptである必要があります。
次に、removeMultiValuedAttributeScript[LOADFROMURL]エントリのサンプル値を示します。
file:///home/myname/dbat/scripts/removechilddata.groovy
「Save」アイコンをクリックします。
更新の手順中にパスワードをリセットするには、次のようにします。
スクリプト引数"attributes"にパスワード(__PASSWORD__)属性が含まれているかどうか確認します。
import org.identityconnectors.common.security.GuardedString; GuardedString pass = attributes.get("__PASSWORD__")!=null?attributes.get"__PASSWORD__").getValue().get(0):null;
"attributes"に__PASSWORD__属性(Nullではない)が含まれている場合、targetstoreプロシージャ/sql問合せを呼び出してパスワードをリセットします。
upstmt = conn.prepareStatement("UPDATE PASSWORD.... if(pass!=null){ pass.access(new GuardedString.Accessor(){ public void access(char[] clearChars){ upstmt.setString(1, new String(clearChars)); } }); } else { //Update other attributes } upstmt.executeUpdate();
これによりプロビジョニング操作用のストアド・プロシージャを使用するようにコネクタを構成する手順が完了します。
コネクタをリリース11.1.1.5.0から現在のリリースにアップグレードできます。
リリース11.1.1.5.0のコネクタをこのリリースのコネクタにアップグレードする場合、コネクタ・バンドルJARファイルを更新する必要があります。他の構成手順は不要です。
アーティファクトはスキーマに基づいて動的に生成されるため、すでにインストールされているコネクタをアップグレードする必要はありません。ただし、コネクタによって提供される最新の機能にアップグレードする場合は、JARファイルを更新する必要があります。
ノート:
アップグレード手順を実行する前に、次の手順を実行します。
Oracle Identity Managerデータベースのバックアップを作成することを強くお薦めします。バックアップの作成の詳細は、データベースのドキュメントを参照してください。
ベスト・プラクティスとして、最初にテスト環境でアップグレード手順を実行します。
コネクタ・バンドルJARを更新するには、次のようにします。