4 構成後タスクの実行
これらは、Oracle Identity Governanceでアプリケーションを作成した後に実行できるタスクです。
4.1 自動増分主キーを含むターゲット・システム用のコネクタの構成
ノート:
この項で説明する手順は、次の両方の条件を満たす場合にのみ実行します。
-
ターゲット・システムがターゲット・リソースとして構成されている。
-
ターゲット・システムのキー列が自動増分オプションを指定して構成されている。
自動増分主キーを含むターゲット・システムにコネクタを構成するには、次のステップを実行します。
-
デフォルトで、ターゲット・システムのキー列は、リコンシリエーション・ルールのOIMの「ユーザー・ログイン」フィールドにマップされます。コネクタ操作を実行する前に、リコンシリエーション・ルールを変更して、OIMの「ユーザー・ログイン」フィールドを別のターゲット・システム列にマップできます。
-
子表のキー列が自動増分オプションを指定して構成されている場合、デザイン・コンソールを使用して、子表のキー・フィールドに対する'required=true'プロパティを削除することで、子フォームを変更します。
-
事前移入アダプタにキー列のマッピングが含まれている場合、デザイン・コンソールを使用して、事前移入アダプタを無効にするかまたは変更して、コネクタ・キー列を削除します。
4.2 Oracle Identity Governanceの構成
アプリケーションの作成中に、デフォルト・フォームを作成することを選択しなかった場合は、コネクタを使用して作成したアプリケーション用にUIフォームを作成する必要があります。
ノート:
この項の手順は、アプリケーションの作成時にデフォルトのフォームを作成するように選択しなかった場合にのみ実行します。
次の各トピックでは、Oracle Identity Governanceを構成する手順を示します。
4.2.1 サンドボックスの作成およびアクティブ化
カスタマイズおよびフォーム管理機能の使用を開始するには、サンドボックスを作成してアクティブにする必要があります。次に、サンドボックスを公開してそのカスタマイズを他のユーザーが使用できるようにします。
『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』のサンドボックスの作成に関する項およびサンドボックスのアクティブ化に関する項を参照してください。
4.2.2 UIフォームの新規作成
Oracle Identity System Administrationのフォーム・デザイナを使用して、アプリケーション・インスタンス・フォームを作成および管理できます。
『Oracle Fusion Middleware Oracle Identity Governanceの管理』のフォーム・デザイナを使用したフォームの作成に関する項を参照してください。
UIフォームを作成するときは、必ずそのフォームを関連付ける新しく作成されたアプリケーションに対応するリソース・オブジェクトを選択します。また、「権限フォームの生成」チェック・ボックスを選択します。
4.2.3 サンドボックスの公開
サンドボックスを公開する前に、ベスト・プラクティスとしてこの手順を実行し、このステージまでに行われたすべてのサンドボックスの変更を検証してください(サンドボックスを公開した後に変更を元に戻すことは難しいため)。
-
アイデンティティ・システム管理で、サンドボックスを非アクティブ化します。
-
アイデンティティ・システム管理をログアウトします。
-
xelsysadmユーザー資格証明を使用してIdentity Self Serviceにログインし、ステップ1で非アクティブ化したサンドボックスをアクティブ化します。
-
カタログで、リソースのアプリケーション・インスタンス・フォームが正しいフィールドとともに表示されていることを確認します。
-
サンドボックスを公開します。『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』のサンドボックスの公開に関する項を参照してください。
4.2.4 新規フォームによる既存アプリケーション・インスタンスの更新
Identity Self Serviceでアプリケーションのスキーマで行うすべての変更に対して、新しいUIフォームを作成し、アプリケーション・インスタンスでその変更を更新する必要があります。
新規フォームにより既存のアプリケーション・インスタンスを更新するには、次のようにします。
-
サンドボックスを作成してアクティブ化します。
-
リソースの新しいUIフォームを作成します。
-
既存のアプリケーション・インスタンスを開きます。
-
「フォーム」フィールドで、作成した新しいUIフォームを選択します。
-
アプリケーション・インスタンスを保存します。
-
サンドボックスを公開します。
関連項目:
-
『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』のサンドボックスの作成に関する項およびサンドボックスのアクティブ化に関する項を参照してください
-
『Oracle Fusion Middleware Oracle Identity Governanceの管理』のフォーム・デザイナを使用したフォームの作成
-
『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』のサンドボックスの公開に関する項を参照してください
4.3 権限および同期カタログの収集
権限の収集とカタログ同期化を行うには:
- 参照フィールド同期のスケジュール済ジョブに記載されている、参照フィールド同期のスケジュール済ジョブを実行します。
- 権限リスト・スケジュール済ジョブを実行して、子プロセス・フォーム表から権限割当てスキーマを移入します。このスケジュール済ジョブの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceの管理』の事前定義済のスケジュール済タスクに関する項を参照してください。
- カタログ同期化ジョブ・スケジュール済ジョブを実行します。このスケジュール済ジョブの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceの管理』の事前定義済のスケジュール済タスクに関する項を参照してください。
4.4 Oracle Identity Governanceのロギングの管理
Oracle Identity Governanceでは、Oracle Diagnostic Logging (ODL)ロギング・サービスを使用して、コネクタに関連するすべてのタイプのイベントを記録します。
4.4.1 ログ・レベルの理解
ロギングを有効化すると、Oracle Identity Governanceはプロビジョニング操作およびリコンシリエーション操作の過程で発生するイベントについての情報をログ・ファイルに自動的に格納します。
ODLはOracle Identity Governanceにより原則的に使用されるロギング・サービスで、java.util.loggerに基づいています。ロギングを行うイベントのタイプを指定するには、ログ・レベルを次のいずれかに設定します。
-
SEVERE.intValue()+100
このレベルでは、致命的エラーに関する情報のロギングが有効化されます。
-
SEVERE
このレベルでは、Oracle Identity Governanceの実行を続行できる可能性があるエラーに関する情報のロギングが有効化されます。
-
WARNING
このレベルでは、障害を引き起こす可能性のある状況に関する情報のロギングが有効化されます。
-
INFO
このレベルでは、アプリケーションの進行状況を示すメッセージのロギングが有効化されます。
-
CONFIG
このレベルでは、デバッグに役立つ詳細なイベントに関する情報のロギングが有効化されます。
-
FINE、FINER、FINEST
これらのレベルでは詳細なイベントに関する情報のロギングが有効化され、FINESTではすべてのイベントに関する情報が記録されます。
これらのメッセージ・タイプは、表4-1に示すようなODLメッセージ・タイプとレベルの組合せにマップされます。
表4-1 ログ・レベルおよびODLメッセージ・タイプ: レベルの組合せ
Javaのレベル | 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 Governanceのインストール時に指定されたドメイン名とサーバー名です。
4.4.2 ロギングの有効化
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のメッセージ・タイプとレベルの組合せに置き換えます。表4-1に、サポートされているメッセージ・タイプとレベルの組合せを示します。同様に、
[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 Governanceをこれらのサンプル値とともに使用すると、このコネクタに対して生成された、ログ・レベルが
NOTIFICATION:1
レベル以上のすべてのメッセージが、指定したファイルに記録されます。 -
-
ファイルを保存して閉じます。
-
サーバー・ログをファイルにリダイレクトするには、次の環境変数を設定します。
Microsoft Windowsの場合:
set WLS_REDIRECT_LOG=FILENAME
UNIXの場合:
export WLS_REDIRECT_LOG=FILENAME
FILENAMEを、出力のリダイレクト先ファイルの場所と名前に置き換えます。
-
アプリケーション・サーバーを再起動します。
4.5 コネクタ・サーバーのITリソースの構成
コネクタ・サーバーを使用した場合は、コネクタ・サーバーITリソースのパラメータの値を構成する必要があります。
表4-2 コネクタ・サーバーのITリソースのパラメータ
パラメータ | 説明 |
---|---|
ホスト |
コネクタ・サーバーのホスト・コンピュータのホスト名またはIPアドレスを入力します。 サンプル値: |
キー |
コネクタ・サーバーのキーを入力します。 |
ポート |
コネクタ・サーバーがリスニングしているポートの番号を入力します。 デフォルトでは、この値は空です。コネクタ・サーバーを開始するときに、端末に表示されるポート番号を入力する必要があります。 サンプル値: |
タイムアウト |
コネクタ・サーバーとOracle Identity Governanceの間の接続がタイムアウトになるまでの時間(ミリ秒)を指定する整数値を入力します。 推奨値: 値0では、接続はタイムアウトしません。 |
UseSSL |
Oracle Identity Governanceとコネクタ・サーバーとの間にSSLを構成するよう指定する場合は、 デフォルト値: ノート: SSLを構成してコネクタ・サーバーとの通信を保護することをお薦めします。SSLを構成するには、『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』のJavaコネクタ・サーバーのSSLの構成に関する項を参照してください。 |
4.6 UIフォームにおけるフィールド・ラベルのローカライズ
UIフォームに追加されるフィールド・ラベルをローカライズするには、次のようにします。
-
ターゲット・システムの列名(管理およびユーザー・コンソールにGUI要素およびメッセージに対するテキスト文字列として表示される)に対するローカライズされたバージョンを含むプロパティ・ファイル(DBAT_ja.propertiesなど)を作成します。
-
Oracle Enterprise Managerにログインします。
-
左側のペインで、「アプリケーションのデプロイ」を開き、oracle.iam.console.identity.sysadmin.earを選択します。
-
右側のペインで、「アプリケーションのデプロイ」リストから、「MDS構成」を選択します。
-
「MDS構成」ページで、「エクスポート」をクリックして、ローカル・コンピュータにアーカイブを保存します。
-
アーカイブの内容を解凍して、テキスト・エディタで次のファイルを開きます。
SAVED_LOCATION/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle_en.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.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>
-
プロセス・フォームのすべての属性に対し、ステップ7.aから7.dを繰り返します。
-
ファイルをBizEditorBundle_LANG_CODE.xlfとして保存します。このファイル名で、LANG_CODEを、ローカライズする言語のコードに置き換えます。
サンプル・ファイル名: BizEditorBundle_ja.xlf.
-
-
ZIPファイルを再パッケージしてMDSにインポートします。
関連項目:
メタデータ・ファイルのエクスポートおよびインポートの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』のカスタマイズのデプロイおよびアンデプロイに関する項を参照してください
-
Oracle Identity Governanceからログアウトしてから、ログインします。
4.7 ターゲット・システムとOracle Identity Governance間のセキュアな通信の構成
ノート:
この項で説明されている手順を実行し、ターゲット・システムおよびOracle Identity Governance間の通信を保護することをお薦めします。
通信を保護するための手順は、使用しているデータベースにより異なります。
4.7.1 IBM DB2とOracle Identity Governanceの間のセキュアな通信の構成
ノート:
-
IBM DB2バージョン11.x以降はSSL経由でのセキュアな通信をサポートします。
-
IBM DB2とOracle Identity Governanceの間のセキュアな通信を構成する前に、IBM Global Security Kit (GSKit)をインストールする必要があります。
IBM DB2とクライアント・システム間のSSL通信の有効化の詳細は、IBM DB2のドキュメントを参照してください。このコンテキストでは、クライアントはOracle Identity Governanceです。
IBM DB2とOracle Identity Governanceの間にセキュアな通信を構成するには、次のようにします。
4.7.2 Microsoft SQL ServerおよびOracle Identity Governance間のセキュアな通信の構成
Microsoft SQL ServerおよびOracle Identity Governance間にセキュアな通信を構成するには、次のようにします。
4.7.3 MySQLとOracle Identity Governanceの間のセキュアな通信の構成
MySQLとOracle Identity Governanceの間にセキュアな通信を構成するには、次のようにします。
4.7.4 Oracle DatabaseとOracle Identity Governanceの間のセキュアな通信の構成
Oracle DatabaseとOracle Identity Governanceの間の通信を保護するには、次の手順の一方、または両方を実行します。
4.7.4.1 Oracle Databaseにおけるデータ暗号化および整合性の構成
データの暗号化および整合性の構成の詳細は、『Oracle Databaseセキュリティ・ガイド』のネットワークのデータ暗号化および整合性の構成に関する項を参照してください。
4.7.4.2 Oracle DatabaseにおけるSSL通信の構成
Oracle DatabaseおよびOracle Identity Governance間でSSL通信を有効化するには、次のようにします。
ノート:
Oracle DatabaseとOracle Identity Governanceの間のSSL通信を有効化する方法の詳細は、『Oracle Databaseセキュリティ・ガイド』のセキュア・ソケット・レイヤーの有効化に関する項を参照してください。
4.8 コネクタ・サーバーとOracle Identity Governanceの間のセキュアな通信の構成
このコネクタをコネクタ・サーバーにデプロイ済の場合、コネクタ・サーバーとOracle Identity Governance間の通信を保護することをお薦めします。セキュアな通信を構成する手順は、「ターゲット・システムとOracle Identity Governance間のセキュアな通信の構成」で説明している手順と同じです。この項で説明する手順を実行する際、ターゲット・システムと同様に、コネクタ・サーバーを別個のシステムとみなすことができます。
セキュアな通信を構成する前に、次のようにします。
-
キーストアへのアクセスに適切な権限を持っているユーザーの下でコネクタ・サーバーが実行していることを確認します。
-
コネクタ・サーバーにキーストアが存在し、アクセスできることを確認します。
-
コネクタ・サーバーのキーストアに必要な証明書が含まれていることを確認します。
-
コネクタ・サーバーのデフォルトのJavaキーストアを使用していない場合、ITリソースのURLまたはjndiPropertiesプロパティ(DBATConfiguration.groovyファイル)のキーストア・パスおよびパスワードを変更し、コネクタ・サーバー上の場所と一致させます。
4.9 ストアド・プロシージャおよびGroovyスクリプト用のコネクタの構成
コネクタを使用してリコンシリエーションおよびプロビジョニング操作を実行するときに、コネクタはそれぞれデフォルトのSQL問合せおよびSQL文を実行します。シコンシリエーションまたはプロビジョニング操作を実行するために、デフォルトのSQL文および問合せではなく、コネクタがカスタム・ストアド・プロシージャを使用するようにする場合、この項に示された手順を実行する必要があります。
関連項目:
サンプルのストアド・プロシージャおよびGroovyスクリプトについては、「サンプルのストアド・プロシージャおよびGroovyスクリプト」を参照してください
この項には、次の項目が含まれます。
4.9.1 カスタム・ストアド・プロシージャに対するコネクタの構成
カスタム・ストアド・プロシージャに対するコネクタを構成するには、次のようにします。
-
ターゲット・システムで、プロビジョニング操作を実行するために使用する必要のあるストアド・プロシージャを作成します。次に、グループとロールの子データを削除する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 Governanceのホスト・コンピュータで、プロビジョニング操作を実行するためにターゲット・システムの関連するストアド・プロシージャを呼び出すGroovyスクリプトを作成します。Groovyスクリプトで直接使用できる引数の詳細は、「Groovyスクリプト引数」を参照してください。
ノート:
DELETE_USERGROUPおよびDELETE_USERROLEストアド・プロシージャをコールするサンプルのGroovyスクリプトについては、「サンプルのGroovyスクリプト」を参照してください。
-
表4-3に示すように、拡張構成の詳細定義を更新して、Groovyスクリプトに関する情報を含めます。
ノート:
GroovyスクリプトのファイルのURLのかわりに、Groovyスクリプトを直接入力することもできます。この場合、対応する属性に
[LOADFROMURL]
が含まれないようにします。たとえば、ユーザー・アカウントの作成プロビジョニング操作用のGroovyスクリプトを直接入力する場合、対応する属性名はcreateScript[LOADFROMURL]
ではなく、createScript
である必要があります。次に、removeMultiValuedAttributeScript[LOADFROMURL]エントリのサンプル値を示します。
file:///home/myname/dbat/scripts/removechilddata.groovy
-
更新の手順中にパスワードをリセットするには、次のようにします。
-
スクリプト引数"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();
-
4.9.2 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 - 同期属性の値。この引数は、同期スクリプトで使用できます。
4.9.3 サンプルのGroovyスクリプト
次に、「カスタム・ストアド・プロシージャに対するコネクタの構成」のステップ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(); };
4.9.4 Groovyスクリプト構成に特有のエントリ
表4-3に、Groovyスクリプト構成に固有の参照エントリを示します。
表4-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を入力します。 |