6 UNIXコネクタの機能拡張

特定のビジネス要件に対応するようにコネクタの機能を拡張できます。

6.1 新しいターゲット・システムに対するコネクタの構成

追加のUNIXのフレーバをサポートするためのコネクタを構成できます。

ノート:

「動作保証されているコンポーネント」に示されているターゲット・システム以外の追加のUNIXのフレーバに対するコネクタを構成する場合にのみ、この手順を実行します。

デフォルトでは、コネクタはLinux、Solaris、AIXおよびHP-UXをサポートする事前構成済のスクリプトを使用します。

スクリプトはコネクタ・バンドルJARファイルに含まれています。OIM_HOME/binディレクトリのDownloadJarsユーティリティを使用してOracle Identity Governanceデータベースから、またはインストール・メディアから、バンドルをダウンロードできます。コネクタ・サーバーを使用している場合、CONNECTOR_SERVER_HOME/ bundlesディレクトリからバンドルをコピーできます。

追加のUNIXのフレーバをサポートするために、同様のディレクトリ構造を持つ同様のスクリプトを追加できます。たとえば、UNIXのBSD/OSフレーバを含むターゲット・システムに対しコネクタのサポートを追加できます。これを行うには、次のようにします。

  1. 次のディレクトリを作成します。これはコネクタ・バンドルJARにパッケージ化されます。

    scripts/bsdos/nonsudo/

    scripts/bsdos/sudo/

  2. sudoおよび非sudo認証タイプ用の次のスクリプトを作成します。次に、前のステップで作成した対応するディレクトリにそれらを置きます。

    ノート:

    スクリプト・ファイルには読取り専用権限を持たせることをお薦めします。

    表6-1 UNIXターゲット・システムの新しいフレーバをサポートするカスタム・スクリプト

    スクリプト名 説明

    CreateNativeUser.txt

    ターゲットにユーザーを作成します

    DeleteNativeUser.txt

    ターゲットからユーザーを削除します

    FetchAllGroupRecords.txt

    グループの参照リコンシリエーション用

    FetchAllUserRecords.txt

    完全ユーザー・リコンシリエーション用

    FetchAllShellRecords.txt

    シェルの参照リコンシリエーション用

    FetchSingleUserRecord.txt

    1ユーザーを取得します

    NativeUserIncrementalRecon.txt

    増分リコンシリエーションのSyncOpにより使用されます

    UpdateNativeUser.txt

    ユーザーの更新用

  3. すべてのスクリプトの詳細で、ScriptProperties.propertiesファイルを作成して更新します。

    値は新しいスクリプトへのパスである必要があります。サンプル値はscripts/linux/ScriptProperties.propertiesファイルを参照してください。たとえば、次のようになります。

    CREATE_USER_SCRIPT=scripts/bsdos/sudo/CreateNativeUser.txt
    DELETE_USER_SCRIPT=scripts/bsdos/sudo/DeleteNativeUser.txt
    FETCH_SINGLE_USER=scripts/bsdos/sudo/FetchSingleUserRecord.txt
    FETCH_FULL_RECON_SCRIPT=scripts/bsdos/sudo/FetchAllUserRecords.txt
    INCREMENTAL_RECON_SCRIPT=scripts/bsdos/sudo/NativeUserIncrementalRecon.txt
    
  4. スクリプトから返される値が、バンドルの予期する、適切な形式であることを確認します。サンプル・スクリプトについては、scripts/linux/を参照してください。
  5. scripts/bsdosディレクトリにResponseMapping.propertiesファイルを作成して更新します。

    ResponseMapping.propertiesファイルには、予期されるメッセージと、メッセージがラップおよびスローされる必要のある例外クラスとの間のマッピングが含まれます。サンプル値はscripts/linux/ResponseMapping.propertiesファイルを参照してください。たとえば、次のようになります。

    User already exists=org.identityconnectors.framework.common.exceptions.AlreadyExistsException
    Group already exists=org.identityconnectors.framework.common.exceptions.AlreadyExistsException
    
  6. 次のコマンドを実行して、新しいスクリプトでバンドルJARファイルを更新します。
    jar uvf org.identityconnectors.genericunix-1.0.0.jar scripts/bsdos/
    
  7. PropertyFileName基本構成パラメータで、プロパティ・ファイルへのパスの値を指定します。

    例: scripts/bsdos/nonsudo/ScriptProperties.properties (非sudo認証の場合)

    PropertyFileNameパラメータの詳細は、「基本構成パラメータ」を参照してください。

6.2 ターゲット・システムの複数のインストールに対するコネクタの構成

ベース・アプリケーションの構成のコピーを作成して、ターゲット・システムの複数のインストールに対してベース・アプリケーションを構成する必要があります。

次の例でこの要件について説明します。

Example Multinational Inc.のロンドンおよびニューヨークの事業所には、それぞれの独立したスキーマを含むターゲット・システムが独自にインストールされています。最近、この会社では、Oracle Identity Governanceをインストールし、これを構成してインストールされたすべてのターゲット・システムをリンクしようとしています。

このような例で示される要件に対応するには、アプリケーションをクローニングして、クローニングされたアプリケーションにベース・アプリケーションの構成をすべてコピーする必要があります。アプリケーションのクローニングの詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』アプリケーションのクローニングに関する項を参照してください。

6.3 データの変換および検証の構成

アプリケーションの作成時にGroovyスクリプトのロジックを作成して、ユーザー・アカウント・データの変換および検証を構成します。

要件に応じて、リコンサイルされた単一値ユーザー・データの変換を構成できます。たとえば、First NameおよびLast Name値を使用して、Oracle Identity Governanceの「氏名」フィールドの値を作成できます。

同様に、要件に応じて、リコンサイルおよびプロビジョニングされた単一値データの検証を構成できます。たとえば、「名」属性からフェッチしたデータを検証して、そのデータに番号記号(#)が含まれていないことを確認します。また、プロセス・フォームの「名」フィールドに入力したデータを検証して、プロビジョニング操作中にターゲット・システムに番号記号(#)が送信されないようにします。

ユーザー・アカウント・データの変換または検証を構成するには、アプリケーションの作成時にGroovyスクリプトを作成する必要があります。Groovyスクリプトベースの検証と変換のロジックを作成する方法の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』プロビジョニング属性とリコンシリエーション属性の検証と変換に関する項を参照してください。

6.4 アクション・スクリプトの構成

アプリケーションの作成時に独自のGroovyスクリプトを作成して、アクション・スクリプトを構成できます。

これらのスクリプトは、アカウントの作成、更新または削除のプロビジョニング操作の前または後に実行されるように構成できます。たとえば、あるスクリプトを、個々のユーザー作成操作前に実行するように構成できます。

アクション・スクリプトの追加または編集の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』プロビジョニング構成の更新に関する項を参照してください。

6.5 スキーマ属性を編集した後のリコンシリエーション用スクリプトの更新

「属性マッピング」で説明されているように、コネクタでは、属性マッピングのデフォルト・セットが提供されており「スキーマ」ページに表示されます。

リコンシリエーション用にデフォルトの属性マッピングを追加または編集する場合は、リコンシリエーション・スクリプトの属性に対して、対応する更新を行う必要があります。

リコンシリエーション・スクリプトを更新するには:

  1. コネクタ・バンドルJARファイルをコピーまたはダウンロードします。

    OIM_HOME/binディレクトリのDownloadJarsユーティリティを使用してOracle Identity Governanceデータベースから、またはインストール・メディアから、バンドルをダウンロードできます。コネクタ・サーバーを使用している場合、CONNECTOR_SERVER_HOME/bundlesディレクトリからバンドルをコピーできます。

  2. JARファイルを抽出してスクリプトを編集します。

    たとえば、Linuxのリコンシリエーションの非sudoユーザー用のスクリプトを抽出するには、次のコマンドを実行します。

    jar xvf org.identityconnectors.genericunix-12.3.0.jar scripts/linux/nonsudo/FetchAllUserRecords.txt
    

    FetchAllUserRecords.txtスクリプトは、equalsToフィルタを使用せずに完全リコンシリエーションを実行する場合に呼び出されます。必要な場合、追加のリコンシリエーション・スクリプトを編集できます。

    • FetchSingleUserRecord.txt - このスクリプトは、equalsToフィルタを使用して完全リコンシリエーションを実行する場合に呼び出されます。

    • NativeUserIncrementalRecon.txt - このスクリプトは、増分リコンシリエーション中に呼び出されます。

  3. 編集のためにスクリプトを開きます。

    ノート:

    スクリプトを編集するにはbashスクリプトを熟知していることが必要です。スクリプトを編集する前に、元のスクリプトのバックアップを作成できます。

    たとえば、リコンシリエーション用に__GID__属性を追加した場合、__GID__属性のブロックを他のブロックと同様に作成できます。

    PGROUPで始まる行9の後に、__GID__フィールドをフェッチする、次の行を追加します。

    __GID__=$( id -G $__NAME__ | cut -d' ' -f1);
    

    次のように、RESULTで始まる行32にエントリを追加します。

    RESULT=__NAME__:$__NAME__:__GID__:$__GID__:__ENABLE__:$ENABLE
    

    次のように、unsetで始まる行41にエントリを追加します。

    unset inputline __NAME__ USID COMMENTS HOME_DIR USER_SHELL PGROUP secgrplist __GID__;
    

    関連項目:

    元と更新後のFetchAllUserRecords.txtスクリプトについては、「リコンシリエーション用のデフォルト属性の更新のサンプル・スクリプト」を参照してください

  4. 次のように、スクリプトを保存してバンドルを更新します。
    jar uvf org.identityconnectors.genericunix-12.3.0.jar scripts/linux/nonsudo/FetchAllUserRecords.txt
    
  5. OIM_HOME/binディレクトリのUpdateJarsユーティリティを使用して、古いバンドルを置き換えます。

    コネクタ・サーバーを使用している場合は停止します。次に、CONNECTOR_SERVER_HOME/bundlesディレクトリ内のJARを置き換えて、コネクタ・サーバーを再起動します。

6.6 スキーマ属性を編集した後のプロビジョニング用スクリプトの更新

「属性マッピング」で説明されているように、コネクタでは、属性マッピングのデフォルト・セットが提供されており「スキーマ」ページに表示されます。

プロビジョニング用にデフォルトの属性マッピングを追加または編集する場合は、プロビジョニング・スクリプトの属性に対して、対応する更新を行う必要があります。

プロビジョニング・スクリプトを更新するには:

  1. コネクタ・バンドルJARファイルをコピーまたはダウンロードします。

    OIM_HOME/binディレクトリのDownloadJarsユーティリティを使用してOracle Identity Governanceデータベースから、またはインストール・メディアから、バンドルをダウンロードできます。コネクタ・サーバーを使用している場合、CONNECTOR_SERVER_HOME/bundlesディレクトリからバンドルをコピーできます。

  2. JARファイルを抽出してスクリプトを編集します。

    たとえば、Linuxの、プロビジョニングの非sudoユーザー用のスクリプトを抽出するには、次のコマンドを実行します。

    jar xvf org.identityconnectors.genericunix-12.3.0.jar scripts/linux/nonsudo/CreateNativeUser.txt
    

    このスクリプトを使用して、新しく追加した属性で作成操作を有効にします。同様に、UpdateNativeUser.txtスクリプトを編集して更新操作を有効にできます。

  3. 編集のためにスクリプトを開きます。

    ノート:

    スクリプトを編集するにはbashスクリプトを熟知していることが必要です。スクリプトを編集する前に、元のスクリプトのバックアップを作成できます。

    たとえば、プロビジョニング用に__GID__属性を追加した場合、次のように(行76から78)、__GID__属性のブロックを他のブロックと同様に作成できます。

        if [ ! -z $__GID__ ] ;then 
            command="$command -g $__GID__";
        fi;

    次のように、unsetで始まる行91にエントリを追加します。

    unset defaultHomeBaseDir homedir checkHomeBaseDir grp defaultPriGroup __GID__;

    関連項目:

    元と更新後のCreateNativeUser.txtスクリプトについては、「プロビジョニング用のデフォルト属性の更新のサンプル・スクリプト」を参照してください

  4. 次のように、スクリプトを保存してバンドルを更新します。
    jar uvf org.identityconnectors.genericunix-12.3.0.jar scripts/linux/nonsudo/CreateNativeUser.txt
    
  5. OIM_HOME/binディレクトリのUpdateJarsユーティリティを使用して、古いバンドルを置き換えます。

    コネクタ・サーバーを使用している場合は停止します。次に、CONNECTOR_SERVER_HOME/bundlesディレクトリ内のJARを置き換えて、コネクタ・サーバーを再起動します。