Sun Identity Manager 8.1 リソースリファレンス

第 50 章 リソースへのアクションの追加

この章では、リソースアダプタのアクションを作成および実装する方法について説明します。アダプタがアクションをサポートしているかどうかについては、各アダプタのマニュアルを参照してください。

アクションとは

アクションとは、スクリプトアクションのネイティブサポートが存在する場合に、管理するリソースのコンテキスト内で実行するスクリプトです。たとえば、UNIX オペレーティングシステムによるシステムでは、アクションは一連の UNIX シェルコマンドです。Microsoft Windows 環境では、アクションは CMD コンソール内で実行可能な DOS 形式のコンソールコマンドになります。アクションは Identity Manager リポジトリ内にオブジェクトして存在します。メインフレーム環境では、アクションは、メインフレームとの間でキーストロークやコマンドを送受信できる Javascript スクリプトです。Oracle ERP では、アクションは、JDBC 接続を使用して Oracle データベースの追加カスタムフィールドを管理する Javascript または Beanshell スクリプトです。このアダプタについては、第 25 章Oracle ERPを参照してください。

アクションは、リソースアカウントオブジェクトに対して直接実行される作業ではなく、そのリソースアカウントの作成、更新、または削除の前またはあとに実行される作業を行う場合に使用します。リソースアクションでは、ユーザーを作成したあとに実行される、新規ユーザーのディレクトリへのファイルのコピーや、そのユーザーに関する UNIX の SUDOers ファイルの更新などのネイティブアクティビティーがサポートされます。このタイプの作業は、カスタムリソースアダプタを使用することにより実行できます。ただし、カスタムリソースアダプタを配備するよりも、アクションを追加したリソースアダプタを配備するほうが簡単です。

アクションには次の 3 種類の結果メッセージが関連付けられます。

サポートされるプロセス

次のプロセスは前アクションと後アクションをサポートします。

アクションの定義

アクションは、次の構造を持っています。

<ResourceAction name=’Name’>
    <ResTypeAction restype=’ResourceType’ actionType=’Language’ timeout=’Milliseconds’>
       <act>
       ...
       </act>
    </ResTypeAction>
 </ResourceAction>

各表記の意味は次のとおりです。

<act> 要素はアクションを定義します。この要素には、リソース上で実行されるコードが含まれます。たとえば、次の XML は Solaris リソースのアクションを定義しています。

<?xml version=’1.0’ encoding=’UTF-8’?>
<!DOCTYPE Waveset PUBLIC ’waveset.dtd’ ’waveset.dtd’>
<Waveset>
    <ResourceAction name=’after-create’>
       <ResTypeAction restype=’Solaris’ timeout=’60000’>
          <act>
          #!/bin/ksh
          echo "$WSUSER_accountId says Hello World!"
          # exit $DISPLAY_INFO_CODE if there is not a failure, but you want
          # the output to be propagated to the UI
          #exit 0
          exit $DISPLAY_INFO_CODE
          </act>
       </ResTypeAction>
    </ResourceAction>
</Waveset>

注 –

<act> 要素内に含まれるコードは、UNIX スクリプト (ksh または sh) や Windows バッチスクリプトで使用されるコードと同じです。


環境変数の使用

環境変数はエクスポートされ、アクションで利用できるようになります。これらの環境変数は、ユーザーに関する値 (リソーススキーママップの「アイデンティティーシステム リソース属性」列で定義される) を持つ、スキーマにマップされたすべての属性を、先頭に WSUSER_ を付加して構成します。たとえば、前述の例では、Solaris リソーススキーママップで定義された AccountId 属性の先頭に WSUSER_ を付加した形式の、環境変数 WSUSER_AccountId が使用されています。これらの変数がそれぞれのシェル内で環境変数として認識されるように、Solaris では変数名の前に $ (ドル記号) が付加されます。

OS/400 はコマンド言語に変数の代入機能がないため、リソースアダプタは変数名を検索し、リソースにコマンド行を送信する前に代入を実行します。変数を認識させるために、変数の前後に $ を付加する必要があります。特に、OS/400 スクリプトで WSUSER_AccountId を使用するには、コマンド行に $accountId$ を入力します。「WSUSER」を削除することに注意してください。

使用例:

<ResTypeAction restype="OS/400" timeout="6000">
<act>
CRTOUTQ OUTQ(SYSTEME/$accountId$)
</act>
</ResTypeAction>

後アクションの実装

Identity Manager は更新の際に、変更された属性だけをリソースにプッシュします。アクションは変更されていない属性にアクセスできません。変更されていない可能性のある属性が必要な後アクションを記述する場合は、次の回避方法を検討してください。

Procedure変更されていない属性にアクセスする

  1. リソースのスキーママップに、アクセスする必要のあるアカウント属性を模倣する余分な属性を追加します。たとえば、fullname アカウント属性にアクセスする必要がある場合は、shadow_fullname という名前の属性を作成します。スキーママップの「リソースユーザー属性」列で、この新しい属性に IGNORE_ATTR の値を追加して、アダプタが属性を使用するのを防ぎます。

  2. この属性に入力されるように、値をユーザーフォームに設定します。


    <Field name=’accounts[ResourceName].shadow_fullname’>
        <Expansion>
           <ref>accounts[ResourceName].fullname</ref>
        </Expansion>
     </Field>
  3. アクション内で %WSUSER_shadow_fullname% を参照して、値を取得できるようにします。

    Identity Manager は、IGNORE_ATTR に設定されている属性を取得しません。その結果、Identity Manager は shadow_fullname などの属性の内容を新しい値と見なします。この属性は常にアダプタにプッシュされ、後アクションに使用できます。

アクションファイルの作成

アクションファイルを作成するときは、次に示す事項に留意してください。

Identity Manager へのアクションファイルの読み込み

アクションを Identity Manager にインポートするには、次の手順に従います。

Procedureアクションファイルをインポートする

  1. Identity Manager 管理者インタフェースにログインします。

  2. メニューバーで、「設定」、「交換ファイルのインポート」の順に選択します。

  3. アクションが含まれている XML ファイルを入力するか、ファイルを参照して選択し、「インポート」をクリックします。

アクションの実装

アクションの定義が完了したら、次の手順に従ってそのアクションを実装します。

Procedureアクションを実装する

  1. Identity Manager ユーザーフォームでフィールドを定義します。

  2. アクションを呼び出すリソースのスキーママップにエントリを追加します。

手順 1: Identity Manager ユーザーフォームフィールドを定義する

ユーザー操作の前またはあとに実行するアクションを割り当てるユーザーフォームフィールドを作成します。

次の例では、ユーザー作成操作のあとに実行する after-create というアクションを定義しています。

<Field name=’global.create after action’>
    <Expansion>
       <s>after-create</s>
    </Expansion>
</Field>

フィールド名の形式は次のとおりです。

{create|update|delete} {before|after} action

Identity Manager のフォームについては、『Deployment Reference』を参照してください。

手順 2: スキーママップエントリを追加する

アクションを実行するリソースのスキーママップにエントリを追加します。次の手順に従います。

Procedureスキーママップにエントリを追加する

  1. Identity Manager のメニューバーで「リソース」をクリックし、リソースを選択します。

  2. 「リソースの編集」ページで、「リソーススキーマの編集」をクリックします。

  3. スキーママップで、「属性の追加」をクリックして、スキーママップに行を追加します。

  4. 「アイデンティティーシステム ユーザー属性」列に、「create after action」と入力します。

  5. 「リソースユーザー属性」列に、「IGNORE_ATTR」と入力します。IGNORE_ATTR エントリによって、その属性は通常のアカウント属性処理では無視されます。

  6. 「保存」をクリックします。

Active Directory の例

ここでは、リソースアダプタで次の操作が実行されたあとに、Active Directory リソースで実行できるアクションの例を示します。

例 1: ユーザーの作成後のアクション

この手順では、Active Directory リソースで新規ユーザーの作成後に実行するアクションを含める方法を示します。

Procedureユーザーの作成後に実行するアクションを含める

  1. リソースのスキーママップの「Identity Manager ユーザー属性」列に、「create after action」と入力します。

  2. 「属性タイプ」列で、「string」を選択します。

  3. 「リソースユーザー属性」列に、「IGNORE_ATTR」と入力します。「必須」、「監査」、「読み取り専用」、および「書き込み専用」の各列は、チェックマークを外したままにします。

  4. ユーザーの作成または編集に使用するユーザーフォームに次のコードを追加します。


    <Field name=’resourceAccounts.currentResourceAccounts[AD].attributes.
    create after action’>
        <Expansion>
           <s>AfterCreate</s>
        </Expansion>
     </Field>
  5. 次の XML ファイルを作成して、Identity Manager にインポートします。ファイルのパスは、環境に合わせて変更してください。


    <?xml version=’1.0’ encoding=’UTF-8’?>
     <!DOCTYPE Waveset PUBLIC ’waveset.dtd’ ’waveset.dtd’>
     <Waveset>
        <ResourceAction name=’AfterCreate’>
           <ResTypeAction restype=’Windows Active Directory’ timeout=’6000’>
              <act>
              echo create >> C:\Temp\%WSUSER_accountId%.txt
              exit
              </act>
           </ResTypeAction>
        </ResourceAction>
     </Waveset>

例 2: ユーザーアカウントの更新または編集後のアクション

この手順では、Active Directory リソースでユーザーの更新または編集後に実行するアクションを含める方法を示します。

Procedureユーザーの更新後または編集後に実行するアクションを含める

  1. Active Directory スキーママップの「Identity Manager ユーザー属性」列に、「update after action」と入力します。

  2. 「属性タイプ」列で、「string」を選択します。

  3. 「リソースユーザー属性」列に、「IGNORE_ATTR」と入力します。「必須」、「監査」、「読み取り専用」、および「書き込み専用」の各列は、チェックマークを外したままにします。

  4. ユーザーの作成および編集に使用するユーザーフォームに次のフィールドを追加します。


    <Field name=’resourceAccounts.currentResourceAccounts[AD].
    attributes.update after action’>
        <Expansion>
           <s>AfterUpdate</s>
        </Expansion>
     </Field>
  5. 次の XML ファイルを作成して、Identity Manager にインポートします。ファイルのパスは、環境に合わせて変更してください。


    <?xml version=’1.0’ encoding=’UTF-8’?>
     <!DOCTYPE Waveset PUBLIC ’waveset.dtd’ ’waveset.dtd’>
     <Waveset>
        <ResourceAction name=’AfterUpdate’>
           <ResTypeAction restype=’Windows Active Directory’ timeout=’6000’>
              <act>
              echo update >> C:\Temp\%WSUSER_accountId%.txt
              exit
              </act>
           </ResTypeAction>
        </ResourceAction>
     </Waveset>

例 3: ユーザーの削除後のアクション

この手順では、Active Directory リソースでユーザーの削除後に実行するアクションを含める方法を示します。

Procedureユーザーの削除後に実行するアクションを含める

  1. リソースのスキーママップの「Identity Manager ユーザー属性」列に、「delete after action」と入力します。

  2. 「属性タイプ」列で、「string」を選択します。

  3. 「リソースユーザー属性」列に、「IGNORE_ATTR」と入力します。「必須」、「監査」、「読み取り専用」、および「書き込み専用」の各列は、チェックマークを外したままにします。

  4. 「Deprovision Form」ユーザーフォームの </Include> タグのあとに次のフィールドを追加します。


    <Field name= ’resourceAccounts.currentResourceAccounts[AD].attributes.
    delete after action’>
        <Expansion>
           <s>AfterDelete</s>
        </Expansion>
     </Field>
  5. 次の XML ファイルを作成して、Identity Manager にインポートします。ファイルのパスは、環境に合わせて変更してください。


    <?xml version=’1.0’ encoding=’UTF-8’?> <!DOCTYPE Waveset PUBLIC 
        ’waveset.dtd’ ’waveset.dtd’>
     <Waveset>
        <ResourceAction name=’AfterDelete’>
           <ResTypeAction restype=’Windows Active Directory’ timeout=’6000’>
              <act>
              echo delete >> C:\Temp\%WSUSER_accountId%.txt
              exit
              </act>
           </ResTypeAction>
        </ResourceAction>
     </Waveset>
  6. Active Directory リソースの XML を編集し、「delete after action」スキーママッピングに情報を追加します。新しく追加する部分を含む、このリソースの完全なスキーママッピングの例を次に示します。ここでは、ビュー関連の情報を追加します。


    <AccountAttributeType id=’12’ name=’delete after action’ syntax=’string’ 
             mapName=’IGNORE_ATTR’ mapType=’string’>
        <Views>
           <String>Delete</String>
        </Views>
     </AccountAttributeType>

Domino の例

Domino リソースでは、前アクションと後アクションがサポートされます。

現在は、LotusScript と cmd シェルの 2 種類のアクションがサポートされています。どの操作アクションにも、実行される任意の数のアクションを実装できます。

次の例は、LotusScript および cmd シェルのリソースアクションの使用方法を示しています。

LotusScript の例

<ResourceAction name=’iterateAttributes’ createDate=’1083868010032’>
   <ResTypeAction restype=’Domino Gateway’ actionType=’lotusscript’>
      <act>
         Sub Initialize
            Main
         End Sub
         Sub Main
            Dim session As New NotesSession
            Dim doc As NotesDocument
            Set doc = session.DocumentContext
            Forall i In doc.Items
               Dim attrVal As Variant
               attrVal = doc.GetItemValue(i.Name)
            End Forall
         End Sub
      </act>
   </ResTypeAction>
</ResourceAction>

cmd シェルの例

<ResourceAction name=’getDirectoryContents’ createDate=’1083868010032’>
   <ResTypeAction restype=’Domino Gateway’>
      <act>dir</act>
   </ResTypeAction>
</ResourceAction>

注 –

actionType が null の場合は、cmd スクリプトタイプがデフォルトとして使用されます。


LotusScript の実行

Domino では、LotusScript の実行はデータベースに接続されたエージェントによって処理されます。Domino アダプタは、次のいずれかの方法で LotusScript を実行します。

入力  

結果  

agentName 

エージェントを実行します。 

agentName およびスクリプト 

スクリプトを用いてエージェントを更新し、そのエージェントを実行します。 

agentName、agentCreate、およびスクリプト 

スクリプトを用いてエージェントを作成し、そのエージェントを実行します。 

次に示すカスタマイズされたアカウント属性は、LotusScript で使用できます。これらの属性のいずれかを使用する場合は、その属性を Domino ゲートウェイスキーママップに追加します。「リソースユーザー属性」列には値として「IGNORE_ATTR」を指定します。


注 –

agentCreate を指定する場合は、実行する LotusScript も指定してください。


LotusScript への引数

エージェントの引数は、バックエンド NotesSession クラスからの専用プロパティーで、LotusScript へのノートハンドルに指定されます。これは次のように定義できます。

NotesDocument = NotesSession.DocumentContext

アクションスクリプトルーチンによって NotesDocument をインスタンス化し、そのフィールド値を LotusScript サブルーチンへのパラメータとして読み取ることができます。

ドキュメントに定義された任意の引数の名前と値を取得する LotusScript の例を次に示します。

Dim session As New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext

Forall i In doc.Items
   Dim attrVal As Variant
   attrVal = doc.GetItemValue(i.Name)
   Print(" Attribute Name: " + i.Name + " Value: " + attrVal(0))
End Forall

NT アクションの場合と同じように、アクションの呼び出し中に定義された属性はすべて、先頭に WSUSER_ が付加されて NotesDocument に配置されます。

cmd シェルの実行

アクションは、拡張機能を有効にした Windows コマンドインタプリタ cmd.exe を使用して実行されます。ユーザー操作の前に実行するアクションでは、ゼロの値を返す必要があります。そうしないと、操作はエラー終了となります。

cmd シェルへの引数

NT/ADSI cmd アクションと同様に、環境変数がエクスポートされ、アクションで利用できるようになります。これらの環境変数は、ユーザーに関する値 (リソーススキーママップの「Identity Manager ユーザー属性」列で定義される) を持つ、スキーマにマップされたすべての属性を、先頭に WSUSER_ を付加して構成します。

複数値属性は、次のようなパイプ区切りリストで構成されます。

WSUSER_groups=staff|admin|users

メインフレームの例

ACF2、RACF、および Top Secret アダプタでは、login および logoff のリソースアクションが必要です。login アクションは、認証されたセッションに関してメインフレームとネゴシエーションを行います。logoff アクションは、そのセッションが不要になったときに接続を解除します。

thin クライアントのホストアクセス 3270 エミュレータは、スクリプトセッション内のコマンドの実行を簡素化するために、リソースアダプタによるリソースアクションのコンテキストに提供されます。このエミュレータは、com.waveset.object.HostAccess クラスで定義されます。リソースアクションに渡される hostAccess オブジェクトで使用可能なメソッドに関する詳細については、HostAccess に関する JavaDoc を参照してください。

リソースアクションのコンテキスト

グローバル変数のいくつかは、スクリプトアクションのコンテキストで使用します。

オブジェクト

説明

hostAccess 

TN3270 エミュレータ。com.waveset.adapter.HostAccess のインスタンス。メインフレームとの間でキーストロークとコマンドを送受信するために使用されます。

hostAccessLogin 

com.waveset.adapter.HostAccessLogin インタフェースを実装するクラスのインスタンス。主に、ログインプロセス中にイベントが失敗した場合に必要となる、logoff() メソッドを実装するために使用されます。

identity 

リソースのユーザーの accountId を含む文字列。 

user 

ログオンする管理ユーザー名を含みます。 

userAttrs 

アクションで必要な各リソースユーザー属性の値を含む java.util.Map のインスタンス。

password 

メインフレームユーザーのパスワードを格納する暗号化されたオブジェクト。 プレーンテキストに変換するには password.decryptToString() を使用します。 

system 

メインフレームシステム名 

out 

java.io.PrintStream のインスタンス。Javascript がこのストリームに書き込む場合 (たとえば out.print("Hello") など)、その内容がトレースされ、リソースアクションの結果として UI に示されます。

err 

java.io.PrintStream のインスタンス。Javascript がこのストリームに書き込む場合 (たとえば err.print("Error") など)、その内容がトレースされ、リソースアクションの結果として UI に示されます。

SendKeys メソッドのニーモニックキーワード

次の表では、3270 エミュレータを通して実行可能な、英数字以外の値のキー入力をシミュレートする特殊機能について説明します。

機能

ニーモニックキーワード

機能

ニーモニックキーワード

Attention 

[attn] 

F1 

[pf1] 

Backspace 

[backspace] 

F2 

[pf2] 

Backtab 

[backtab] 

F3 

[pf3] 

Beginning of Field 

[bof] 

F4 

[pf4] 

Clear 

[clear] 

F5 

[pf5] 

Cursor Down 

[down] 

F6 

[pf6] 

Cursor Left 

[left] 

F7 

[pf7] 

Cursor Right 

[right] 

F8 

[pf8] 

Cursor Select 

[cursel] 

F9 

[pf9] 

Cursor Up 

[up] 

F10 

[pf10] 

Delete Character 

[delete] 

F11 

[pf11] 

DUP Field 

[dup] 

F12 

[pf12] 

Enter 

[enter] 

F13 

[pf13] 

End of Field 

[eof] 

F14 

[pf14] 

Erase EOF 

[eraseeof] 

F15 

[pf15] 

Erase Field 

[erasefld] 

F16 

[pf16] 

Erase Input 

[erinp] 

F17 

[pf17] 

Field Mark 

[fieldmark] 

F18 

[pf18] 

ホーム 

[home] 

F19 

[pf19] 

Insert 

[insert] 

F20 

[pf20] 

New Line 

[newline] 

F21 

[pf21] 

PA1 

[pa1] 

F22 

[pf22] 

PA2 

[pa2] 

F23 

[pf23] 

PA3 

[pa3] 

F24 

[pf24] 

Page Up 

[pageup] 

   

Page Down 

[pagedn] 

   

Reset 

[reset] 

   

System Request 

[sysreq] 

   

Tab Field 

[tab] 

   

サンプルリソースアクション

次のコーディング例は、メインフレームのリソース上で一般に実行されるアクションを示しています。

login アクション

次のコードは、login および logoff リソースアクションの完全なサンプルです。このサンプルは、Top Secret リソースを使用する、ある特定の顧客の環境に合わせた内容になっています。したがって、コマンド、プロンプト、コマンドシーケンスなどのテキストは、配備環境によって異なる可能性があります。これらのリソースアクションは、XML 内の Javascript をラップします。

<ResourceAction name=’ACME Login Action’>
   <ResTypeAction restype=’TopSecret’>
      <act>
         var TSO_MORE = " ***";
         var TSO_PROMPT = " READY";
          var TS_PROMPT = " ?";
         hostAccess.waitForString("ENTER YOUR APPLICATION NAME");
         hostAccess.sendKeys("tso[enter]");
          hostAccess.waitForString("ENTER USERID– ");
         hostAccess.sendKeys(user + "[enter]");
         hostAccess.waitForString("TSO/E LOGON");
         hostAccess.sendKeys(password);
         hostAccess.sendKeys("[enter]");
         var pos = hostAccess.searchText("  -Nomail", false);
         if (pos != 0) {
            hostAccess.setCursorPos(pos);
            hostAccess.sendKeys("S");
         }
         pos = hostAccess.searchText("  -Nonotice", false);
         if (pos != 0) {
            hostAccess.setCursorPos(pos);
            hostAccess.sendKeys("S");
         }
         hostAccess.sendKeys("[enter]");
         hostAccess.waitForStringAndInput(TSO_MORE);
         hostAccess.sendKeys("[enter]");
         hostAccess.waitForStringAndInput(TSO_MORE);
         hostAccess.sendKeys("[enter]");
         hostAccess.waitForStringAndInput("ISPF");
         hostAccess.sendKeys("=x[enter]");
         hostAccess.waitForString(TSO_PROMPT);
         var resp =hostAccess.doCmd("PROFILE NOPROMPT MSGID NOINTERCOM 
NOPAUSE NOWTPMSG PLANGUAGE(ENU) SLANGUAGE(ENU) NOPREFIX[enter]", 
TSO_PROMPT, TSO_MORE);
         hostAccess.waitForStringAndInput("ENTER LOGON:");
         hostAccess.sendKeys(system + "[enter]");
         hostAccess.waitForStringAndInput("USER-ID.....");
         hostAccess.sendKeys(user + "[tab]" + password);
         hostAccess.sendKeys("[enter]");
         var stringsToHide = new java.util.ArrayList();
         stringsToHide.add(password.decryptToString());
         hostAccess.waitForString("==>", stringsToHide);
         hostAccess.waitForInput();
         hostAccess.sendKeys("[pf6]");
         hostAccess.waitForInput();
      </act>
   </ResTypeAction>
</ResourceAction>

logoff アクション

<ResourceAction name=’ACME Logoff Action’>
   <ResTypeAction restype=’TopSecret’>
      <act>
         var TSO_PROMPT = " READY";
         hostAccess.sendKeys("[clear]end[enter]");
         hostAccess.waitForString(TSO_PROMPT);
         hostAccess.sendKeys("logoff[enter]");
       </act>
   </ResTypeAction>
</ResourceAction>

RACF データセット規則のアクション

RACF リソースパラメータのページで「データセット規則の作成および削除」パラメータが選択されている場合は、Identity Manager によってデータセット規則が直接管理されます。ユーザー独自のデータセット規則を設定するには、次のようなアクションを定義します。

<ResourceAction name=’create after action’>
   <ResTypeAction restype=’RACF’>
      <act>
         var TSO_PROMPT = " READY";
         var TSO_MORE = " ***";
         var cmd1 = "addsd ’"+identity+".test1.**’ owner(’"+identity+"’)[enter]";
         var result1 = hostAccess.doCmd(cmd1, TSO_PROMPT, TSO_MORE);
      </act>
   </ResTypeAction>
</ResourceAction>

ビューの拡張

ビューに属性を追加できます。属性はすべて登録されている必要があります。

Identity Manager でのさまざまなプロビジョニングアクティビティーにおいて利用できるユーザー属性は、そのアクションを完了するために必要な属性に限定されます。たとえば、ユーザーを編集する場合には、割り当てられたリソースの中で更新可能と定義されているユーザー属性のみが利用できます。一方、パスワードの変更プロセスでは、要求を実行するための属性のサブセットのみを必要とします。

属性の登録

属性は、次のいずれかの場所に登録できます。

場所  

属性をここに登録する条件  

リソース内の AccountAttributeType 定義

... 更新する属性が、そのタイプのすべてのリソースではなく、特定のリソースのみに適用されます。 

System Configuration オブジェクト 

... 特定タイプのすべてのリソースに適用されるグローバル登録を行います。このような登録は、XML フォーマットで行います。 

異なる属性を異なるビューに登録できます。たとえば、lock 属性をパスワードビューに登録したり、firstname 属性を名前の変更ビューに登録したり、リソースアクションを有効化ビュー、無効化ビュー、またはプロビジョニング解除ビューに登録したりできます。


注 –

前アクションと後アクションの場合は、作成または更新のユーザープロセスを除くすべてのプロセスのビューを拡張してください。ビューの拡張については、「Identity Manager Views」を参照してください。


グローバル登録

グローバル登録を行うには、次のパスを持つ System Configuration オブジェクトに属性を追加します。

updatableAttributes.ViewName.ResourceTypeName

ここで、ViewName は Password、Reset、Enable、Disable、Rename、または Delete のいずれかで、ResourceTypeName はリソースタイプの名前です。all というタイプ名は、すべてのリソースに適用される登録用に予約されています。

この属性の値には、<String> のリストを指定する必要があります。各文字列は、更新する属性の名前です。次の例は、すべてのリソースを対象とした delete before action という属性をプロビジョニング解除ビューに登録します。

<Attribute name=’updatableAttributes’>
    <Object>
       <Attribute name=’Delete’>
          <Object>
             <Attribute name=’all’>
                <List>
                   <String>delete before action</String>
                </List>
            </Attribute>
         </Object>
      </Attribute>
       <Attribute name=’Enable’>
          <Object>
             <Attribute name=’all’>
                <List>
                   <String>enable before action</String>
                </List>
            </Attribute>
          </Object>
       </Attribute>
    </Object>
</Attribute>

リソース別登録

リソースに固有の登録を行うには、Identity Manager の「デバッグ」ページでリソースオブジェクトを修正し、AccountAttributeType 要素に <Views> 下位要素を挿入します。<Views> には、この属性が更新されるビューの名前を示す文字列のリストを指定する必要があります。

<AccountAttributeType name=’lastname’ mapName=’sn’ mapType=’string’>
    <Views>
       <String>Rename</String>
    </Views>
</AccountAttributeType>

ビューでは、変更する属性が、次のオブジェクトの内部に配置されます。

resourceAccounts.currentResourceAccounts[ResourceTypeName ].attributes

例:

<Field name= ’resourceAccounts.currentResourceAccounts[OS400ResourceName].
    attributes.delete before action’ hidden=’true’>
    <Expansion>
       <s>os400BeforeDeleteAction</s>
    </Expansion>
</Field>