6 Microsoft Exchangeコネクタの機能の拡張

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

6.1 新規複数値フィールドの追加

Oracle Identity Governanceとターゲット・システムの間でのユーザーのリコンシリエーションおよびプロビジョニング用に複数値フィールドを追加できます。

デフォルトでは、Identity Self Serverでアプリケーションの「スキーマ」ページに表示される複数値フィールドは、プロビジョニングおよびリコンシリエーション用にOracle Identity Governanceとターゲット・システムの間でマップされます。必要に応じて、プロビジョニングおよびリコンシリエーション用に新しい複数値フィールドを追加できます。

ターゲット・アプリケーション(またはターゲット・リソースのリコンシリエーション)からユーザーをリコンサイルするために新しい複数値フィールドを追加するには、次のようにします。
  1. Oracle Identity System Administrationにログインし、追加する複数値フィールドの値のリストを保持できる参照を作成します。
  2. 次のように子フォームを作成し、属性を追加します。
    1. Identity Self Serviceにログインします。
    2. ターゲット・システム用に作成したアプリケーションを編集のために検索して開きます。
    3. 「スキーマ」ページで、新しい子フォームとその属性を追加します。

      たとえば、次の値を入力します。

      • 表示名: Proxy Address

      • ターゲット属性: EmailAddresses

      • 「リコンシリエーション・フィールド」オプションを必ず選択します。

      ノート:

      • 子フォームに属性を「拡張設定」オプションから追加する場合、必ず新規追加した属性に「参照」とマークします。

      • 「値リスト」フィールドに、ステップ1で作成した参照の名前を入力します。

    4. 変更を適用します。
  3. Identity System Administrationにログインし、新しいフォームを作成してアプリケーションに関連付けます。

関連項目:

  • 複数値フィールドの参照を作成する方法の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceの管理』参照タイプの作成に関する項を参照してください

  • 子フォームの作成および属性の追加の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』子フォームの追加に関する項を参照してください

  • 新しいフォームを作成してアプリケーションに関連付ける方法の詳細は、「Oracle Identity Governanceの構成」を参照してください

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

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

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

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

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

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

アクションは、プロビジョニング操作の前または後に実行するように構成できるスクリプトです。たとえば、カスタムPowerShellスクリプトを、メールボックスの作成、更新または削除の前または後に実行できます。

アクション・スクリプトに関連するトピックを、次に示します。

6.3.1 アクション・スクリプトの構成について

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

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

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

ノート:

使用されるスクリプト言語はPowerShellです。
アクション・スクリプトに関するいくつかの重要なポイントを次に示します:
  • コネクタ・サーバーをホストするコンピュータで、ディレクトリにカスタムPowerShellスクリプトを作成します。このスクリプトはそれ自体で完了できる必要があります。つまり、ターゲットExchange Serverでセッションを作成、保持、削除でき、それに対するすべてのアクションを完了できる必要があります。

    バッチ・ファイルはPowershell.exeプログラムを使用してカスタムPowerShellを実行します。Powershell.exeの詳細は、http://technet.microsoft.com/en-us/library/hh847736.aspxを参照してください。

  • 様々な操作中、どのデータが使用可能かに関して違いがあります。
    • 作成操作中は、プロセス・フォームのすべての属性部分にスクリプトが使用できます。

    • 更新操作中は、更新中の属性のみにスクリプトが使用できます。

      その他の属性も必要な場合、新規アダプタ呼出しICProvisioningManager# updateAttributeValues(String objectType, String[] labels)を作成して使用する必要があります。プロセス・タスクのアダプタ・マッピング中は、依存属性のフォーム・フィールド・ラベルを追加します。

    • 削除操作中は、__UID__ (GUID)属性のみがスクリプトで使用できます。

6.3.2 カスタムPowerShellスクリプトの実行

例として、次のプロシージャで、作成操作前にカスタムPowerShellスクリプトを実行するステップを説明します。

  1. 対象のアプリケーションを作成後または更新時に選択します。
  2. 「設定」タブ、「ユーザー」「プロビジョニング」の順に選択します。.すべての使用可能なアクション・スクリプトが表示されます。

    図6-1 アクション・スクリプトのプレビュー設定

    図6-1の説明が続きます
    「図6-1 アクション・スクリプトのプレビュー設定」の説明
  3. 内容を表示するには、任意の有効なアクション・スクリプトをクリックします。

    図6-2 アクション・スクリプト

    図6-2の説明が続きます
    「図6-2 アクション・スクリプト」の説明
  4. 「編集」をクリックしてから、「スクリプト」フィールドに次のように入力します。
    Powershell.exe -File NAME_AND_FULL_LOCATION_OF_THE_CUSTOM_SCRIPT %Alias% -SimpleDisplayName %DisplayName%
    Exit
    

    サンプル値:

    Powershell.exe -File C:\PSScript\CustomCreateScript.ps1 %Alias% -SimpleDisplayName %DisplayName%
    Exit
    
  5. 「コンパイル」をクリックしてスクリプトが有効かどうかを確認してから、「保存」をクリックします。
  6. コネクタ・サーバーを実行するコンピュータにログインしてカスタム・スクリプト・ファイルを作成し(この例ではcustomScript.ps1スクリプトで、場所はC:\PSScriptディレクトリ)、次の内容を入力します:

    ノート:

    コネクタまたはOracle Identity Governanceを使用してこのスクリプトを実行する前に、コネクタ・サーバーを実行しているコンピュータで次を確認してください:

    • PowerShellウィンドウを使用して、スクリプトで指定された値で問題なくExchange Serverに手動で接続できることを確認します。

    • Set-Mailboxコマンドを任意の既存のメールボックスに対して実行し、問題なく実行することを確認します。

    • コマンド・プロンプトからバッチ・ファイルを含むディレクトリに移動します。その後、適切なパラメータでバッチ・ファイルを実行し、PowerShellスクリプトがExchange Serverで問題なく実行できることを確認します。

    問題がある場合、バッチ・ファイルまたはスクリプトを適切に更新します。

    下のサンプル・スクリプトのユーザー名、パスワード、およびExchange Serverに適切な値を指定します。下のスクリプトで、次のようにします。

    • $pw変数の値を実際のパスワードで更新します。値Welcome1がサンプル値として指定されています。

    • $cred変数の値を実際のユーザー名で更新します。値Connectorse1\oim_exch_serviceがサンプル値として指定されています。

    • $Session変数の値を実際のExchange Serverで更新します。値http://example.com/PowerShell/がサンプル値として指定されています。

    <#  
    .SYNOPSIS
        Updates a mailbox property
     
    .DESCRIPTION
        This script assumes the first parameter as the identity value, second paramater as a the property name to be updated and thrid parameter as the new  
    value.
    .NOTES
        File Name      : CustomCreateScript.ps1
     
    #>
    
    #Accept parameters
    $Identity = $args[0]
    $ParameterName = $args[1]
    $ParameterValue = $args[2]
    
    #Remove "[" and "]"
    $Identity = $Identity.Replace("[","")
    $Identity = $Identity.Replace("]","")
    
    #Replace "[" with "-" and remove "]"
    $ParameterName = $ParameterName.Replace("[","-")
    $ParameterName = $ParameterName.Replace("]","")
    
    #Remove "[" and "]"
    $ParameterValue = $ParameterValue.Replace("[","")
    $ParameterValue = $ParameterValue.Replace("]","")
    
    
    #Create password
    $pw = convertto-securestring -AsPlainText -Force -String Welcome1
    
    #Create credential
    $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "Connectorse1\oim_exch_service",$pw
    
    #Create session
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://example.com/PowerShell/ -Authentication Kerberos -Credential $cred
    
    #Import session
    Import-PSSession $session
    
    #Create command variable
    $Command = "Set-Mailbox -Identity $Identity $ParameterName $ParameterValue"
    
    #Just to check if proper command is created, dump it to a file.
    $Command >> "c:\command.txt"
    
    #Invoke it
    Invoke-Expression $Command
    
    #Remove session
    Remove-PSSession -Session $Session
    

    このスクリプトは、各作成操作の後で実行されます。新しく作成したメールボックスのSimpleDisplayNameプロパティを、そのDisplayNameプロパティ値で更新します。