PeopleSoft コンポーネントインタフェースアダプタは、com.waveset.adapter.PeopleSoftCompIntfcAdapter クラスで定義されます。
このリソースアダプタは、コンポーネントインタフェースを介して PeopleSoft のデータを管理します。また、サポートされているバージョンの PeopleTools とともにその他の PeopleSoft アプリケーション (HR、Financials など) がシステムにインストールされている場合は、それらのアプリケーションも管理できます。
PeopleSoft コンポーネントインタフェースアダプタは、デフォルトで USER_PROFILE コンポーネントインタフェースと DELETE_USER_PROFILE コンポーネントインタフェースをサポートするように設定されています。このアダプタでは、コンポーネントインタフェースが次のメソッドをサポートする場合に、カスタムコンポーネントインタフェースを使用してアカウントデータの作成、読み取り、更新も行えます。
Create
Get
Find
Save
SetPassword
アカウントを削除するには、カスタムコンポーネントインタフェースが次のメソッドをサポートしている必要があります。
Get
Save
さらに、「リソースパラメータ」ページで指定されたユーザーが、呼び出されたコンポーネントインタフェースのメソッドを実行するためのアクセス権を持っている必要があります。
PeopleSoft コンポーネントインタフェースアダプタは、カスタムアダプタです。インストールプロセスを完了するには、次の手順を実行する必要があります。
次のファイルを PeopleSoft のインストールメディアから $WSHOME/WEBINF/lib ディレクトリにコピーします。
psjoa.jar |
psjoa.jar のバージョンはインストールされている PeopleSoft システムのバージョンと一致する必要があります。
このリソースを Identity Manager のリソースリストに追加するには、「管理するリソースの設定」ページの「カスタムリソース」セクションに次の値を追加する必要があります。
com.waveset.adapter.PeopleSoftCompIntfcAdapter |
PeopleSoft コンポーネントインタフェースアダプタは、PeopleSoft コンポーネントインタフェースでメソッドの呼び出しとプロパティーの設定を行うことで、ユーザーのプロビジョニングを実行します。コンポーネントインタフェースの定義は、PeopleSoft コンポーネントインタフェース設定オブジェクトに割り当てられます。このオブジェクトは、デバッグページまたは [IDMIDE テキストエンティティーを定義してください] を使用して変更できます。$WSHOME/sample/PeopleSoftComponentInterfaces.xml ファイルのコピーを編集して、編集したファイルを Identity Manager に読み込むこともできます。
このアダプタを使用したコンポーネントインタフェースの設定と実装の詳細については、次の各節を参照してください。
コンポーネントインタフェースマップには、アダプタで使用できるコンポーネントインタフェースのリストが含まれています。
interfaces オブジェクト。コンポーネントインタフェースのリストを含みます。カスタムコンポーネントインタフェースがある場合は、マップに独自のコンポーネントインタフェースの定義を定義します。PeopleSoft コンポーネントインタフェース設定オブジェクトを編集し、定義を追加オブジェクトとして <Attribute name=’interfaces’> 要素の下の <List> 要素に追加します。
使用可能なコンポーネントインタフェースは、それぞれ独自の定義を持っています。コンポーネントインタフェースの定義の主要な要素は次のとおりです。
name。コンポーネントインタフェースのラベル。多くの場合、componentInterface 属性の値と一致しますが、これは必要条件ではありません。この値は、アダプタの「リソースパラメータ」ページのドロップダウンメニューに表示されます。
componentInterface 属性。PeopleSoft で定義されたコンポーネントインタフェースの名前。
getKey 属性。PeopleSoft の GET 操作を実行するときに設定されるコンポーネントインタフェースプロパティーの名前。getKey が定義されていない場合は、key 属性が代わりに使用されます。
findKey 属性。PeopleSoft の FIND 操作を実行するときに設定されるコンポーネントインタフェースプロパティーの名前。findKey が定義されていない場合は、key 属性が代わりに使用されます。
createKey 属性。PeopleSoft の CREATE 操作を実行するときに設定されるコンポーネントインタフェースプロパティーの名前。createKey が定義されていない場合は、key 属性が代わりに使用されます。
key 属性。非推奨です。代わりに、getKey、findKey、または createKey を使用します。
properties 属性。PeopleSoft コンポーネントインタフェースから読み取りまたは設定を行うことができるプロパティーのリスト。
properties リスト内の各オブジェクトには、次の属性が必要です。
name。プロパティーの名前。これは、componentInterface プロパティーで識別される PeopleSoft コンポーネントインタフェースによって公開されたプロパティーの名前と正確に一致する必要があります。プロパティーの名前は、リソースユーザー属性の候補として「アカウント属性」ページのリストに表示されます。
これがコレクションプロパティーである場合は、追加属性を定義してください。コレクションプロパティーは、そのキープロパティーと、独自の入れ子構造を持つ単純プロパティーまたは複合プロパティー、あるいはその両方のセットを定義します。
isCollection 属性。プロパティーがコレクションである場合は、この属性を true に設定します。
key 属性。プロパティーがコレクションである場合は、この属性を、コレクションの各項目を一意に識別するプロパティーの名前に設定します。
properties 属性。コレクションの各項目について読み取りまたは設定を実行できるプロパティーのリスト。任意の複雑さをサポートするために、このリストの各メンバーは、親と同じ許可された属性を持つオブジェクトになっています。つまり、リストには、メンバーごとに固有の name、isCollection、key、および properties 属性を含めることができます。
disableRule 属性。ユーザー無効状態を判定および設定するためのロジックを定義するオブジェクト。この属性には次の属性が含まれています。
property 属性。確認するプロパティー。この値を、componentInterface オブジェクトの properties 属性に一覧表示します。
trueValue 属性。ユーザーが無効になっていることを示す値。
falseValue 属性。ユーザーが有効になっていることを示す値。
supportedObjectTypes 属性。アダプタを通してアクセス可能な、Identity Manager リソースオブジェクトタイプのリスト。各オブジェクトは一連の機能を定義します。
features 属性。サポートされている機能のリスト。使用可能な機能のタイプには、表示、取得、一覧表示、検索、作成、名前を付けて保存、更新、名前の変更、および削除があります。
デフォルトのコンポーネントインタフェース設定オブジェクトは、次のインタフェースを定義します。
DELETE_USER_PROFILE.。ユーザーアカウントを削除します。
ROLE_MAINT。PeopleSoft のロールのサポートを追加します。
USER_PROFILE コンポーネントインタフェース
デフォルトの USER_PROFLE コンポーネントインタフェース定義は、create、read、および update アクションの実行に使用されます。USER_PROFILE コンポーネントインタフェースが GETKEYS キーと FINDKEYS キーに対して UserID フィールドを割り当てるため、key 属性と findKey 属性は UserID に設定されます。
USER_PROFILE コンポーネントインタフェースのデフォルトの定義によって、使用可能なすべてのプロパティーが定義されているわけではありません。サンプルユーザーフォーム中で使用されているものを含むように簡素化されています。「アカウント属性」ページにほかのリソースユーザー属性を追加する必要がある場合は、まずコンポーネントインタフェース定義を更新する必要があります。コンポーネントインタフェース定義のリストに記載されていないリソースユーザー属性は、そのページに追加できません。
USER_PROFILE に定義されているほとんどのプロパティーは、単純なオブジェクトです。ただし、IDTypes オブジェクトと Roles オブジェクトはコレクションであり、複数の値を持つ可能性があります。IDTypes には、固有の属性のコレクションが含まれています。これらのオブジェクトには、isCollection 属性、コレクションのキー名、および少なくとも 1 つのプロパティーを含めてください。
DELETE_USER_PROFILE コンポーネントインタフェース
DELETE_USER_PROFILE コンポーネントインタフェース定義は、ユーザープロファイル定義を削除するために使用されます。OPRID キーは、削除するユーザープロファイルを決定します。このコンポーネントインタフェースにはプロパティーがないため、定義には何も表示されません。
ROLE_MAINT コンポーネントインタフェース定義は、ロールリソースオブジェクトを一覧表示するように Identity Manager を設定する方法を示したサンプル実装の一部です。次に示す一般的なガイドラインに従って、ROLE_MAINT の例を実際の要件に合わせて変更することにより、ほかのリソースオブジェクトを一覧表示できます。
PeopleSoft コンポーネントインタフェースアダプタは、リソースオブジェクトの一覧表示のみをサポートします。ほかのオブジェクト機能 (更新、作成、削除など) はサポートしません。
ROLE_MAINT コンポーネントインタフェース定義には、次の重要な特性があります。
ROLENAME が FINDKEYS と GETKEYS の主キーであるため、findKey 属性と getKey 属性は ROLENAME に割り当てられます。
DESCR と ROLESTATUS も FINDKEYS のキーですが、これらは主キーではないため、findKey の値としては表示されません。代わりに、これらは properties セクションに表示されます。
supportedObjectTypes 属性は、Role オブジェクトを定義します。Role オブジェクトは検索機能と取得機能をサポートします。
デフォルトの USER_PROFILE コンポーネントインタフェースは、FIND メソッドをサポートしません。ただし、PeopleSoft コンポーネントインタフェースアダプタでアカウントの反復とリストをサポートするには、FIND メソッドが必要になります。
既存の USER_PROFILE コンポーネントに FIND メソッドのサポートを追加するには、次の手順を使用します。
USER_PROFILE コンポーネントインタフェースを PeopleSoft Application Designer にロードします。
USERMAINT コンポーネントを表示している左側のウィンドウで、PSOPRDEFN_SRCH オブジェクトの下にある「OPRID」フィールドを選択します。
このフィールドを、USER_PROFILE CI を表示している右側のウィンドウにドラッグします。
フィールドをドロップすると、USER_PROFILE CI に新しいキー「FINDKEYS」が作成されます。そのキーの下に、サブキー「OPRID」があります。
FINDKEYS の下の OPRID 名を右クリックし、「Edit Name」を選択します。名前を UserID に変更します。
USER_PROFILE CI を右クリックし、「Component Interface Properties」を選択します。「Standard Methods」タブを選択し、「Find」チェックボックスを選択します。「OK」をクリックして「Component Interface Properties」ダイアログを閉じます。
USER_PROFILE コンポーネントインタフェースに対する変更を保存します。
コンポーネントインタフェースの「METHODS」フィールドに、Find メソッドが表示されます。新しい FIND メソッドの機能を確認するため、コンポーネントインタフェースを右クリックし、「Test Component Interface」を選択します。
PeopleSoft 管理者は、Create、Get、Save、および SetPassword の各メソッドに加え、コンポーネントインタフェースの Find メソッドに対してもフルアクセスを与えなければなりません。
PeopleSoft コンポーネントインタフェースリソースの XML を編集することにより、リソースオブジェクトを管理できます。ObjectType 要素を追加するには、デバッグページまたは [IDMIDE テキストエンティティーを定義してください] を使用します。
たとえば、Role リソースオブジェクトのサポートを追加するには、このような ObjectType 要素を追加します。
<ObjectTypes> <ObjectType name=’Role’ icon=’role’> <ObjectFeatures> <ObjectFeature name=’find’/> </ObjectFeatures> <ObjectAttributes idAttr=’ROLENAME’ displayNameAttr=’ROLENAME’ descriptionAttr=’DESCR’> <ObjectAttribute name=’ROLENAME’ type=’string’/> <ObjectAttribute name=’DESCR’ type=’string’/> <ObjectAttribute name=’ROLESTATUS’ type=’string’/> </ObjectAttributes> </ObjectType> </ObjectTypes>
ObjectType name (たとえば、Role) は、ただ 1 つのコンポーネントインタフェース定義の supportedObjectTypes リストに含まれるいずれかのオブジェクトの名前と一致する必要があります。各 ObjectFeature (たとえば、find) は、その同じ supportedObjectTypes の features リストでの対応する機能を持っている必要があります。一致するコンポーネントインタフェースは、そのリソース機能を実行するために使用されるコンポーネントインタフェースになります。複数に一致する場合は、最初に一致したものが使用されます。
次の例は、コンポーネントインタフェースマップに含まれる ROLE_MAINT コンポーネントインタフェースのコンポーネントインタフェース定義の一部です。オブジェクト名 Role が見つかり、機能リスト内の項目の 1 つは find という名前です。
<Attribute name=’supportedObjectTypes’ > <List> <Object name=’Role’> <Attribute name=’features’ > <List> <Object name=’find’ /> <Object name=’get’ /> </List> </Attribute> </Object> </List> </Attribute>
次のユーザーフォームフラグメントを使用して、PeopleSoft ロールのリストを検出できます。ROLENAME 属性と DESCR 属性が取得されます。
<invoke name=’getResourceObjects’ class=’com.waveset.ui.FormUtil’> <ref>:display.session</ref> <s>Role</s> <s>PeopleSoft Component Interface</s> <map> <s>searchAttrsToGet</s> <list> <s>ROLENAME</s> <s>DESCR</s> </list> </map> </invoke>
ここでは、サポートされる接続と特権の要件について説明します。
Identity Manager は、Client Connection Toolkit (読み取り/書き込み) を使用してこのアダプタと通信します。
PeopleSoft に接続するユーザーを、管理対象のコンポーネントインタフェースのメソッドにアクセスできる PeopleSoft ロールに割り当てる必要があります。
次の表に、このアダプタのプロビジョニング機能の概要を示します。
機能 |
サポート状況 |
---|---|
アカウントの作成 |
あり |
アカウントの更新 |
あり |
アカウントの削除 |
あり |
アカウントの有効化/無効化 |
コンポーネントインタフェースマップに有効化/無効化のロジックが定義されている場合は、使用可 |
パスワードの更新 |
あり |
アカウントの名前の変更 |
なし |
パススルー認証 |
なし |
前アクションと後アクション |
なし |
データ読み込みメソッド |
|
PeopleSoft コンポーネントインタフェースリソースのアカウント属性は、管理対象のコンポーネントインタフェースに依存します。
スキーママップの各エントリには、コンポーネントインタフェースマップ内のコンポーネントインタフェースに対して定義された、「properties」リスト中のいずれかのエントリに一致するリソースユーザー属性名があるはずです。スキーママップの編集時に「設定のテスト」ボタンをクリックすると、該当する一致を確認できます。
リソースユーザー属性名がコンポーネントインタフェースマップ内のコレクションプロパティーと一致する場合、アカウント属性の値はそのコレクションの XML 文字列表現になります。コレクションプロパティーの操作例については、サンプルユーザーフォームフィールド accounts[PeopleSoft Component Interface].ps_roles を参照してください。
新しいリソースインスタンスに対して定義されるデフォルトのスキーママップエントリは、デフォルトの USER_PROFILE および DELETE_USER_PROFILE コンポーネントインタフェースマップと使用する場合のみに対応します。これらのマップを変更したり、独自のマップを作成したりする場合は、それに応じてスキーママップを変更してください。
すべてのアカウント属性のタイプは String です。
Identity Manager ユーザー属性 |
リソースユーザー属性 |
説明 |
---|---|---|
description |
UserDescription |
ユーザーの説明。 |
symbolicId |
SymbolicID |
必須。ユーザーの記号 ID。 |
idTypes |
IDTypes |
ユーザーに割り当てられたユーザータイプのリスト。 |
ps_roles |
ロール |
ユーザーに割り当てられたルールのリスト。 |
|
EmailAddress |
ユーザーの電子メールアドレス。この属性は、古い PeopleTools リリースでのみ使用できます。この属性は、デフォルトではスキーママップ内に存在しません。 |
EmailAddresses |
EmailAddresses |
ユーザーの電子メールアドレスのリスト。この属性は、PeopleTools の 8.4x リリースでのみ使用できます。この属性は、デフォルトではスキーママップ内に存在しません。 |
なし
$accountId$
次のフォームは、$WSHOME/sample/forms ディレクトリにあります。
PeopleSoftCompIntfcUserForm.xml
このユーザーフォームは、USER_PROFILE コンポーネントインタフェースが管理され、デフォルトアカウント属性が使用されている場合にのみ、期待どおりに機能します。このフォームは、スキーママップに email アカウント属性が追加されていることを前提としています。
EmailAddress 属性は、古い PeopleTools リリースでのみ使用できます。USER_PROFILE が EmailAddress 属性をサポートしているかどうかは、PropleTools の管理者に確認してください。
別のコンポーネントインタフェースを管理している場合や、別のスキーママップを使用している場合は、それに応じてユーザーフォームも変更する必要があります。
PeopleSoft_8_4X_CompIntfcUserForm.xml
このユーザーフォームは、USER_PROFILE コンポーネントインタフェースが管理されている場合にのみ期待どおりに機能します。このフォームは、スキーママップに EmailAddresses アカウント属性が追加されていることを前提としています。
EmailAddresses 属性は、PeopleTools の新しい 8.4x リリースでのみ使用可能です。USER_PROFILE が EmailAddresses 属性をサポートしているかどうかは、PropleTools の管理者に確認してください。
デバッグページを使用して、次のクラスでトレースオプションを設定します。
com.waveset.adapter.PeopleSoftCompIntfcAdapter