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 サンドボックスの公開

サンドボックスを公開する前に、ベスト・プラクティスとしてこの手順を実行し、このステージまでに行われたすべてのサンドボックスの変更を検証してください(サンドボックスを公開した後に変更を元に戻すことは難しいため)。

  1. アイデンティティ・システム管理で、サンドボックスを非アクティブ化します。

  2. アイデンティティ・システム管理をログアウトします。

  3. xelsysadmユーザー資格証明を使用してIdentity Self Serviceにログインし、ステップ1で非アクティブ化したサンドボックスをアクティブ化します。

  4. カタログで、リソースのアプリケーション・インスタンス・フォームが正しいフィールドとともに表示されていることを確認します。

  5. サンドボックスを公開します。『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』サンドボックスの公開に関する項を参照してください。

4.2.4 新規フォームによる既存アプリケーション・インスタンスの更新

Identity Self Serviceでアプリケーションのスキーマで行うすべての変更に対して、新しいUIフォームを作成し、アプリケーション・インスタンスでその変更を更新する必要があります。

新規フォームにより既存のアプリケーション・インスタンスを更新するには、次のようにします。

  1. サンドボックスを作成してアクティブ化します。

  2. リソースの新しいUIフォームを作成します。

  3. 既存のアプリケーション・インスタンスを開きます。

  4. 「フォーム」フィールドで、作成した新しいUIフォームを選択します。

  5. アプリケーション・インスタンスを保存します。

  6. サンドボックスを公開します。

関連項目:

4.3 権限および同期カタログの収集

権限の収集とカタログ同期化を行うには:

  1. 参照フィールド同期のスケジュール済ジョブに記載されている、参照フィールド同期のスケジュール済ジョブを実行します。
  2. 権限リスト・スケジュール済ジョブを実行して、子プロセス・フォーム表から権限割当てスキーマを移入します。このスケジュール済ジョブの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceの管理』事前定義済のスケジュール済タスクに関する項を参照してください。
  3. カタログ同期化ジョブ・スケジュール済ジョブを実行します。このスケジュール済ジョブの詳細は、『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_HOMEOIM_SERVERは、それぞれOracle Identity Governanceのインストール時に指定されたドメイン名とサーバー名です。

4.4.2 ロギングの有効化

Oracle WebLogic Serverのロギングを有効化するには、次のようにします。

  1. 次のようにしてlogging.xmlファイルを編集します。

    1. ファイル内に次のブロックを追加します。

      <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>
      
    2. [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レベル以上のすべてのメッセージが、指定したファイルに記録されます。

  2. ファイルを保存して閉じます。

  3. サーバー・ログをファイルにリダイレクトするには、次の環境変数を設定します。

    Microsoft Windowsの場合:

    set WLS_REDIRECT_LOG=FILENAME
     

    UNIXの場合:

    export WLS_REDIRECT_LOG=FILENAME
     

    FILENAMEを、出力のリダイレクト先ファイルの場所と名前に置き換えます。

  4. アプリケーション・サーバーを再起動します。

4.5 コネクタ・サーバーのITリソースの構成

コネクタ・サーバーを使用した場合は、コネクタ・サーバーITリソースのパラメータの値を構成する必要があります。

ターゲット・システムのアプリケーションを作成した後に、『Oracle Fusion Middleware Oracle Identity Governanceの管理』ITリソースの作成に関する項の説明に従ってコネクタ・サーバーのITリソースを作成する必要があります。ITリソースを作成するときは、必ず「ITリソース・タイプ」リストから「コネクタ・サーバー」を選択します。
さらに、表4-2に記載されているコネクタ・サーバーのITリソースのパラメータの値を指定します。

表4-2 コネクタ・サーバーのITリソースのパラメータ

パラメータ 説明

ホスト

コネクタ・サーバーのホスト・コンピュータのホスト名またはIPアドレスを入力します。

サンプル値: myhost.com

キー

コネクタ・サーバーのキーを入力します。

ポート

コネクタ・サーバーがリスニングしているポートの番号を入力します。

デフォルトでは、この値は空です。コネクタ・サーバーを開始するときに、端末に表示されるポート番号を入力する必要があります。

サンプル値: 8759

タイムアウト

コネクタ・サーバーとOracle Identity Governanceの間の接続がタイムアウトになるまでの時間(ミリ秒)を指定する整数値を入力します。

推奨値: 0

値0では、接続はタイムアウトしません。

UseSSL

Oracle Identity Governanceとコネクタ・サーバーとの間にSSLを構成するよう指定する場合は、trueを入力します。それ以外の場合は、falseを入力します。

デフォルト値: false

ノート: SSLを構成してコネクタ・サーバーとの通信を保護することをお薦めします。SSLを構成するには、『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』Javaコネクタ・サーバーのSSLの構成に関する項を参照してください。

4.6 UIフォームにおけるフィールド・ラベルのローカライズ

UIフォームに追加されるフィールド・ラベルをローカライズするには、次のようにします。

  1. ターゲット・システムの列名(管理およびユーザー・コンソールにGUI要素およびメッセージに対するテキスト文字列として表示される)に対するローカライズされたバージョンを含むプロパティ・ファイル(DBAT_ja.propertiesなど)を作成します。

  2. Oracle Enterprise Managerにログインします。

  3. 左側のペインで、「アプリケーションのデプロイ」を開き、oracle.iam.console.identity.sysadmin.earを選択します。

  4. 右側のペインで、「アプリケーションのデプロイ」リストから、「MDS構成」を選択します。

  5. 「MDS構成」ページで、「エクスポート」をクリックして、ローカル・コンピュータにアーカイブを保存します。

  6. アーカイブの内容を解凍して、テキスト・エディタで次のファイルを開きます。

    SAVED_LOCATION/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle_en.xlf

  7. BizEditorBundle.xlfファイルを次の方法で編集します。

    1. 次のテキストを検索します。

      <file source-language="en"  
      original="/xliffBundles/oracle/iam/ui/runtime/BizEditorBundle.xlf"
      datatype="x-oracle-adf">
      
    2. 次のテキストで置き換えます。

      <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">
      
    3. アプリケーション・インスタンスのコードを検索します。このプロシージャは、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>
      
    4. ステップ1で作成したプロパティ・ファイルを開き、global.udf.D_ACMEDBAP_APP_DFLT_HOME=\u4567dなどの属性の値を取得します。

    5. ステップ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>
      
    6. プロセス・フォームのすべての属性に対し、ステップ7.aから7.dを繰り返します。

    7. ファイルをBizEditorBundle_LANG_CODE.xlfとして保存します。このファイル名で、LANG_CODEを、ローカライズする言語のコードに置き換えます。

      サンプル・ファイル名: BizEditorBundle_ja.xlf.

  8. ZIPファイルを再パッケージしてMDSにインポートします。

    関連項目:

    メタデータ・ファイルのエクスポートおよびインポートの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceのためのアプリケーションの開発とカスタマイズ』カスタマイズのデプロイおよびアンデプロイに関する項を参照してください

  9. 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の間にセキュアな通信を構成するには、次のようにします。

  1. GSKitツールを実行して、証明書ストアを生成します。これを行うには、次のコマンドを実行します。
    GSKCAPICMD -keydb -create -db "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD -stash
    

    コマンドでは、次のように置き換えます。

    • GSKCAPICMDは、GSKitツールのフルパスおよび名前に置き換えます。たとえば、64ビットMicrosoft Windowsプラットフォームで実行しているターゲット・システムの場合、GSKCAPICMDは、C:\Program Files (x86)\IBM\GSK8\bin\gsk8capicmd_64.exeに置き換えます。

    • KEY_DATABASE_LOCATIONは、作成するキー・データベースのフルパスおよび名前に置き換えます。

    • KEY_DATABASE_PASSWORDは、キー・データベースのパスワードに置き換えます。

    次に、証明書ストア(db2oim.kdb)を生成するサンプル・コマンドを示します。

    C:\DB2>"\Program Files\IBM\gsk8\bin\gsk8capicmd_64.exe" -keydb -create -db "c:\db2\db2oim.kdb" -pw PASSWORD -stash

  2. 次のコマンドを実行して、自己署名付き証明書を生成します。
    GSKCAPICMD -cert -create -db  "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD -label "CERT_LABEL" -dn "DISTINCT_NAME"
    

    コマンドでは、次のように置き換えます。

    • GSKCAPICMDは、GSKitツールのフルパスおよび名前に置き換えます。たとえば、64ビットMicrosoft Windowsプラットフォームで実行しているターゲット・システムの場合、GSKCAPICMDは、C:\Program Files (x86)\IBM\GSK8\bin\gsk8capicmd_64.exeに置き換えます。

    • KEY_DATABASE_LOCATIONは、証明書を格納するキー・データベースのフルパスおよび名前に置き換えます。

    • KEY_DATABASE_PASSWORDは、キー・データベースのパスワードに置き換えます。

    • CERT_LABELは、証明書を一意に識別するために使用されるラベルに置き換えます。

    • DISTINCT_NAMEは、証明書を一意に識別する識別名に置き換えます。

    次に、自己証明付き証明書を生成するサンプル・コマンドを示します。

    C:\DB2>"\Program Files\IBM\gsk8\bin\gsk8capicmd_64.exe" -cert -create -db "c:\db2\db2oim.kdb" -pw PASSWORD -label "db2oim" -dn "CN=example.com,O=org,OU=myorg,L=myLocation,ST=CA,C=USA"

  3. 次のコマンドを実行してサーバー証明書をエクスポートします。
    GSKCAPICMD -cert -extract -db "KEY_DATABASE_LOCATION" -pw KEY_DATABASE_PASSWORD -label "CERT_LABEL" -target "LOCATION" -format FORMAT -fips
    

    コマンドでは、次のように置き換えます。

    • GSKCAPICMDは、GSKitツールのフルパスおよび名前に置き換えます。たとえば、64ビットMicrosoft Windowsプラットフォームで実行しているターゲット・システムの場合、GSKCAPICMDは、C:\Program Files (x86)\IBM\GSK8\bin\gsk8capicmd_64.exeに置き換えます。

    • KEY_DATABASE_LOCATIONは、キー・データベースのフルパスおよび名前に置き換えます。

    • KEY_DATABASE_PASSWORDは、キー・データベースのパスワードに置き換えます。

    • CERT_LABELは、抽出される証明書を一意に識別するために使用されるラベルに置き換えます。

    • LOCATIONは、証明書の抽出先のファイルのフルパスおよび名前に置き換えます。

    • FORMATは、証明書の形式であるasciiまたはbinaryに置き換えます。

    次に、サーバー証明書をdb2oim.armにエクスポートするサンプル・コマンドを示します。

    C:\DB2>"\Program Files\IBM\gsk8\bin\gsk8capicmd_64.exe" -cert -extract -db "c:\db2\db2oim.kdb" -pw PASSWORD -label "db2oim" -target "c:\db2\db2oim.arm" -format ascii -fips

  4. 次のコマンドを実行して、SSLおよびTCP/IP通信プロトコルの両方が有効なデータベースを構成します。
    db2set.exe DB2COMM=SSL,TCPIP 
    
  5. SSLおよびTCP/IPプロトコルがDB2COMMで有効であることを検証するdb2set.exeを使用してプロトコルをチェックします。

    DB2PROCESSORS=0,1

    DB2INSTPROF=C:\ProgramData\IBM\DB2\DB2COPY1

    DB2COMM=SSL,TCPIP

  6. db2 GET DATABASE MANAGER CONFIGURATIONコマンドを実行してSSL設定を確認します。
  7. Oracle Identity Governanceが実行されているアプリケーション・サーバーのJavaキーストアに証明書をインポートします。

    Javaキーストアに証明書をインポートするには、次のコマンドを実行します。

    keytool -importcert -file FILE_LOCATION -alias ALIAS -storepass STORE_PASSWORD -keystore STORE_LOCATION
    

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

    • FILE_LOCATIONは、証明書ファイルのフルパスおよび名前に置き換えます。

    • ALIASは、証明書の別名です。

    • STORE_PASSWORDは、トラストストアのパスワードに置き換えます。

    • STORE_LOCATIONは、いずれかのトラストストアのパスに置き換えます。

    次に、証明書をJavaキーストアにインポートするサンプル・コマンドを示します。

    C:\DB2>keytool -importcert -file db2oim.arm -alias db2oim -storepass PASSWORD -keystore C:\Users\example_user\.keystore
    

    証明書がキーストアにインポートされます。

4.7.2 Microsoft SQL ServerおよびOracle Identity Governance間のセキュアな通信の構成

Microsoft SQL ServerおよびOracle Identity Governance間にセキュアな通信を構成するには、次のようにします。

  1. Microsoft SQL Serverとクライアント・システム間のSSL通信の有効化の詳細は、Microsoft SQL Serverのドキュメントを参照してください。このコンテキストでは、クライアントはOracle Identity Governanceです。

    Microsoft SQL Serverのホスト・コンピュータに証明書をエクスポートします。

  2. Oracle Identity Governanceのホスト・コンピュータに証明書をコピーします。
  3. Oracle Identity Governanceが実行されているアプリケーション・サーバーのJVMトラストストアに証明書をインポートします。

    トラストストアに証明書をインポートするには、次のコマンドを実行します。

    ..\..\bin\keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS 
    

    コマンドの説明は次のとおりです。

    • FILE_LOCATIONは、証明書ファイルのフルパスおよび名前に置き換えます。

    • ALIASは、証明書の別名に置き換えます。

    • TRUSTSTORE_PASSWORDは、トラストストアのパスワードに置き換えます。

    • TRUSTSTORE_LOCATIONは、次のトラストストア・パスに置き換えます。

      JAVA_HOME/jre/lib/security/cacerts

4.7.3 MySQLとOracle Identity Governanceの間のセキュアな通信の構成

MySQLとOracle Identity Governanceの間にセキュアな通信を構成するには、次のようにします。

  1. MySQLとクライアント・システム間のSSL通信の有効化の詳細は、MySQLのドキュメントを参照してください。このコンテキストでは、クライアントはOracle Identity Governanceです。
  2. MySQLのホスト・コンピュータに証明書をエクスポートします。
  3. 前のステップでエクスポートした証明書を使用して、MySQLデータベース・サービスを再起動します。データベース・サービスの再起動の詳細は、MySQLのドキュメントを参照してください。
  4. ca-cert.pemおよびclient-cert.pem証明書をOracle Identity Governanceホスト・コンピュータにコピーします。
  5. Oracle Identity Governanceが実行されているアプリケーション・サーバーのJVMトラストストアに証明書をインポートします。

    証明書をトラストストアにインポートするには、証明書ごとに次のコマンドを実行します。

    keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS 
    

    コマンドの説明は次のとおりです。

    • FILE_LOCATIONは、証明書ファイルのフルパスおよび名前に置き換えます。

    • ALIASは、証明書の別名に置き換えます。

    • TRUSTSTORE_PASSWORDは、トラストストアのパスワードに置き換えます。

    • TRUSTSTORE_LOCATIONは、次のトラストストア・パスに置き換えます。

      JAVA_HOME/jre/lib/security/cacerts

    ノート:

    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セキュリティ・ガイド』セキュア・ソケット・レイヤーの有効化に関する項を参照してください。

  1. Oracle Databaseのホスト・コンピュータに証明書をエクスポートします。
  2. Oracle Identity Governanceに証明書をコピーします。
  3. Oracle Identity Governanceが実行されているアプリケーション・サーバーのJVMトラストストアに証明書をインポートします。

    トラストストアに証明書をインポートするには、次のコマンドを実行します。

    keytool -import -file FILE_LOCATION -keystore TRUSTSTORE_LOCATION -storepass TRUSTSTORE_PASSWORD -trustcacerts -alias ALIAS 
    

    コマンドの説明は次のとおりです。

    • FILE_LOCATIONは、証明書ファイルのフルパスおよび名前に置き換えます。

    • ALIASは、証明書の別名に置き換えます。

    • TRUSTSTORE_PASSWORDは、トラストストアのパスワードに置き換えます。

    • TRUSTSTORE_LOCATIONは、次のトラストストア・パスに置き換えます。

      JAVA_HOME/jre/lib/security/cacerts

    ノート:

    Oracle Identity Governanceクラスタでは、このファイルをクラスタの各ノードのトラストストアにインポートする必要があります。

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 カスタム・ストアド・プロシージャに対するコネクタの構成

カスタム・ストアド・プロシージャに対するコネクタを構成するには、次のようにします。

  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;
    
  2. Oracle Identity Governanceのホスト・コンピュータで、プロビジョニング操作を実行するためにターゲット・システムの関連するストアド・プロシージャを呼び出すGroovyスクリプトを作成します。Groovyスクリプトで直接使用できる引数の詳細は、「Groovyスクリプト引数」を参照してください。

    ノート:

    DELETE_USERGROUPおよびDELETE_USERROLEストアド・プロシージャをコールするサンプルのGroovyスクリプトについては、「サンプルのGroovyスクリプト」を参照してください。

  3. 表4-3に示すように、拡張構成の詳細定義を更新して、Groovyスクリプトに関する情報を含めます。

    ノート:

    GroovyスクリプトのファイルのURLのかわりに、Groovyスクリプトを直接入力することもできます。この場合、対応する属性に[LOADFROMURL]が含まれないようにします。たとえば、ユーザー・アカウントの作成プロビジョニング操作用のGroovyスクリプトを直接入力する場合、対応する属性名はcreateScript[LOADFROMURL]ではなく、createScriptである必要があります。

    次に、removeMultiValuedAttributeScript[LOADFROMURL]エントリのサンプル値を示します。

    file:///home/myname/dbat/scripts/removechilddata.groovy
  4. 更新の手順中にパスワードをリセットするには、次のようにします。

    1. スクリプト引数"attributes"にパスワード(__PASSWORD__)属性が含まれているかどうか確認します。

      import org.identityconnectors.common.security.GuardedString;
      GuardedString pass = attributes.get("__PASSWORD__")!=null?attributes.get"__PASSWORD__").getValue().get(0):null;
    2. "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を入力します。

4.10 データソースおよびJNDIプロパティの構成

コネクタがデータソース構成を使用してターゲット・システムに接続している場合は、このトピックで説明する手順を実行します。

データソースおよびJNDIプロパティを構成するには
  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」左ナビゲーション・ペインで「サービス」を開いて、「データ・ソース」をクリックします。
  3. 「ロックして編集」をクリックします。
  4. 「構成」タブの「データ・ソース」の下で、「新規」メニューをクリックして「汎用データ・ソース」を選択します。
  5. 「新規JDBCデータ・ソースの作成」ページで、次の値を指定して「次」をクリックします。
    • 名前: データソース名を入力します。
    • JNDI名: jdbc/DATASOURCE_NAMEの形式でJNDI名を入力します。
    • データベース・タイプ: データベース・タイプを選択します。たとえば、Oracleデータベースを使用する場合は、「Oracle」を選択します。
  6. 「JDBCドライバ」リストから*Oracleのサービス接続用ドライバ(Thin)、バージョン:任意を選択し、「次」をクリックします。
  7. 「グローバル・トランザクションのサポート」を選択解除し、「次」をクリックします。
  8. 「接続プロパティ」ページで次の値を指定し、「次」をクリックします。
    • データベース名:: 接続先とするデータベースの名前を入力します。
    • ホスト名: データベース・サーバーの名前またはIPアドレスを入力します。
    • ポート: データベース・サーバーのポート番号を入力します。
    • データベース・ユーザー名: データベースに接続するためのユーザー名を入力します。
    • パスワード: データベースに接続するためのパスワードを入力します。
    • パスワードの確認: パスワードを再入力します。
  9. 「構成のテスト」をクリックします。
    接続テストに成功したことがメッセージで示されます。
  10. 「次」をクリックします。
  11. 「サーバー」で、「AdminServer」を選択します。
  12. リストされているすべてのOIMサーバーを選択するか、OIMクラスタを選択して、「終了」をクリックします。
  13. 「変更のアクティブ化」をクリックして、データソースの作成をアクティブ化します。

    ノート:

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

4.11 SAP HANA DBのデータソースおよびJNDIプロパティの構成

このトピックで説明する手順を実行して、SAP HANA DBのデータソースおよびJNDIプロパティを構成します:

  1. Oracle WebLogic Server管理コンソールにログインします。
  2. 「ドメイン構造」左ナビゲーション・ペインで「サービス」を開いて、「データソース」をクリックします。
  3. 「ロックして編集」をクリックします。
  4. 「構成」タブの「データ・ソース」の下で、「新規」メニューをクリックして「汎用データ・ソース」を選択します。
  5. 「新規JDBCデータ・ソースの作成」ページで、次の値を指定して「次」をクリックします。
    • 名前: データソース名を入力します。
    • JNDI名: jdbc/DATASOURCE_NAMEの形式でJNDI名を入力します。
    • データベース・タイプ: データベース・タイプを選択します。たとえば、SAP Hanaデータベースを使用している場合は、「その他」を選択し、「次」をクリックします。
  6. 「JDBCドライバ」リストから、サービス接続に「その他」を選択し、「次」をクリックします。
  7. 「グローバル・トランザクションのサポート」を選択解除し、「次」をクリックします。
  8. 「接続プロパティ」ページで次の値を指定し、「次」をクリックします。
    • データベース名:: 接続先とするデータベースの名前を入力します。
    • パスワード: データベースに接続するためのパスワードを入力し、「次」をクリックします。
  9. データベース接続のテスト:
    • ドライバ・クラス名: データベース・サーバーの名前またはIPアドレスを入力します。
    • url: データベース・サーバーのポート番号を入力します。
    • データベース・ユーザー名: データベースに接続するためのユーザー名を入力します。
    • パスワード: データベースに接続するためのパスワードを入力します。
    • パスワードの確認: パスワードを再入力します。
  10. 「構成のテスト」をクリックします。接続テストに成功したことがメッセージで示されます。
  11. 「次」をクリックします。
  12. 「サーバー」で、「AdminServer」を選択します。
  13. リストされているすべてのOIMサーバーを選択するか、OIMクラスタを選択して、「終了」をクリックします。
  14. 「変更のアクティブ化」をクリックして、データ・ソースの作成をアクティブ化します。