Domino リソースアダプタは、com.waveset.adapter.DominoResourceAdapter クラスで定義されます。
ここでは、Identity Manager で使用する Domino リソースの設定手順を説明します。次のような手順があります。
Domino リソースを Identity Manager で使用するための一般的な設定手順
Domino をサポートするようにゲートウェイをインストールする手順
Domino アダプタ Domino リソースアダプタを設定するには、次の手順を使用します。
Domino で Identity Manager 管理者を作成します。ユーザーの管理に必要とされるすべての組織へのアクセス権を持つ認証者 ID を使用します。
認証ログデータベース (certlog.nsf) の ACL に、投稿者のアクセス権を付与したユーザーを追加します。
管理要求 (admin4.nsf) の ACL に、投稿者のアクセス権を付与したユーザーを追加します。
新しく作成されたユーザーをサーバーのセキュリティーに追加します。
「セキュリティー」パネルを開いて、サーバー設定を編集します。
Domino サーバーへのアクセスが制限されている場合、Identity Manager のプロキシアカウントにサーバーへのアクセス権があるかどうかを確認します。確認を行うには、アカウント名か、プロキシアカウントの属しているグループを、「アクセスサーバー」フィールドに指定します。
Domino エージェントを呼び出す前アクションと後アクションが存在する場合、呼び出されるエージェントの設定方法によって、「制限されていない LotusScript/Java エージェントを実行」または「制限されている LotusScript/Java エージェントを実行」のいずれかのフィールドに、ユーザーの追加が必要となる場合もあります。
ゲートウェイを Dimino に接続するには、あらかじめインストールされた Notes クライアントを、ゲートウェイマシン上に用意する必要があります。
Domino が正しく動作するように、Windows レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Waveset\Lighthouse\Gateway に次の文字列値を追加します。
notesInstallDir。クライアントがインストールされる場所で、notes.dll ファイルの場所です。通常、この場所は C:\Lotu\Notes\ などになります。
notesIniFile。Lotus Notes の初期化ファイルへの、ファイル名を含むフルパス。このファイルは、デフォルトの場所 (C:\Lotus\Notes\notes.ini など) から、Identity Manager ゲートウェイが格納されているディレクトリにコピーするようにしてください。したがって、このレジストリキーの値は C:\ GatewayDir\notes.ini のような値に設定してください。
Notes クライアントがネットワーク対応のプロファイルとともに実行中であることを確認します。ini ファイルのコピー後にネットワーク接続を変更する場合、再度コピーを行うか、次のようなコマンド行によってクライアントを実行します。
C:\Lotus\Notes\notes.exe=PathToIniFile
このリソースでは、追加のインストール手順は必要ありません。
ここでは、Domino リソースアダプタの使用に関する情報を示します。 次のトピックで構成されています。
Identity Manager を使用して Domino グループを作成するときに、グループの別名を使用できます。グループの別名は、「Group1;alias1;alias2」という構文で表します。リストにグループ名が表示されるときには、基本名のみが表示されます。
再認証処理は、recertify という名前の Boolean ユーザー属性を使用して実行されます。更新操作中に属性がチェックされ、有効な場合は、ユーザー ID が再認証されます。
再認証処理は adminp 処理によって行われます。つまり、adminp 要求を生成すると、それ以降のいずれかの時点で、その ID の再認証が行われます。再認証のタイミングは、Dimino サーバーの設定に基づいて決まります。
Lotus ユーザーには、2 つの異なるパスワードがあります。
HttpPassword。Web ブラウザまたはその他の HTTP クライアントから Notes サーバーにアクセスするときに使用するパスワード。
ID ファイル。ユーザーの Notes ID ファイルを暗号化するパスワード。このパスワードは、現在のパスワードを指定しない限り変更できません。結果として、Identity Manager 管理者はこのパスワードを変更できません。
詳細は、「ID ファイル」を参照してください。
アダプタは、これらのパスワードの一方または両方を管理するように構成できます。
ID ファイルパスワードではなく HttpPasswords を管理するには、Domino Gateway アダプタを次のように構成します。
「変更時にユーザーがパスワードを入力」リソースパラメータを 0 に設定します。
スキーママップで password リソースユーザー属性を HTTPPassword に変更します。
HTTPPassword アイデンティティーシステムユーザー属性をスキーママップから削除します。
ユーザーインタフェースから ID ファイルパスワードを管理したり、管理者インタフェースやユーザーインタフェースから HttpPasswords を管理したりするには、Domino Gateway アダプタを次のように構成します。
「変更時にユーザーがパスワードを入力」リソースパラメータを 0 に設定します。
ID ファイルパスワードは、ユーザーが現在のパスワードを指定しない限り変更できません。現在のパスワードは、スキーママップ内で WS_USER_PASSWORD という名前のアカウント属性として定義される必要があります。この属性が存在し、そのデータ型が暗号化されていることを確認します。
スキーママップで HTTPPassword リソースユーザー属性を password に変更します。この変更により、password リソースユーザー属性が HTTPPassword とともに、password にマッピングされます。
Password および LoginChange のビューを WS_USER_PASSWORD アカウント属性に追加します。[IDMIDELong テキストエンティティーを定義してください] またはデバッグページを使用して、リソース定義を次のように編集します。
<AccountAttributeType id=’66’ name=’WS_USER_PASSWORD’ syntax=’encrypted’ mapName=’WS_USER_PASSWORD’ mapType=’string’> <Views> <String>Password</String> <String>LoginChange</String> </Views> </AccountAttributeType>
WS_USER_PASSWORD フィールドおよび idFile フィールドを次のフォームに追加します。
マイパスワード変更フォーム
パスワード変更フォーム
有効期限切れログインフォーム
これらのフィールドは、resourceAccounts ビューを指すように定義してください。
<Field name=’resourceAccounts.currentResourceAccounts[ResourceName]. attributes.idFile’> <Display class=’Text’> <Property name=’title’ value=’idfile’/> </Display> </Field> <Field name=’resourceAccounts.currentResourceAccounts[ResourceName]. attributes.WS_USER_PASSWORD’> <Display class=’Text’> <Property name=’title’ value=’WS_USER_PASSWORD’/> </Display> </Field>
HttpPasswords は管理せずに、ユーザーインタフェースから ID ファイルパスワードを管理するには、Domino Gateway アダプタを次のように構成します。
「変更時にユーザーがパスワードを入力」リソースパラメータを 1 に設定します。
ID ファイルパスワードは、ユーザーが現在のパスワードを指定しない限り変更できません。現在のパスワードは、スキーママップ内で WS_USER_PASSWORD という名前のアカウント属性として定義される必要があります。この属性が存在し、そのデータ型が暗号化されていることを確認します。
idFile フィールドを次のフォームに追加します。
Domino 6.0 以降では、ユーザーを無効にする方法として、CheckPassword アカウント属性を 2 に設定する方法が使用されています。ただし、ユーザーを DNY GROUP に追加する 5.x の方法も使用できます。
Domino の初期のバージョンでは、ユーザーごとのネイティブな無効化フラグが実装されていないため、無効化された各ユーザーは DENY GROUP 内に配置されます。有効化すると、これらは定義済みグループのいずれかのメンバーとして削除されます。DENY GROUP にはメンバーの最大数のしきい値が設定されているので、グループをリソースに対するアカウント属性として指定してください。このためには、追加の DenyGroups アカウント属性をリソースに渡す必要があります。DenyGroups は、無効化、有効化、またはプロビジョニング解除の実行時に設定できますが、取得するには追加のコーディングが必要です。
プロビジョニング解除または無効化の実行中に、ユーザーを追加する先の DenyGroups のリストを送信します。有効化の実行中には、ユーザーが削除される DenyGroups のリストを送信します。
次のコードによって、使用可能な DenyGroups をリソースから取得できます。
<invoke name=’listResourceObjects’ class=’com.waveset.ui.FormUtil’> <ref>:display.session</ref> <s>DenyLists</s> <s>YourResourceName</s> <null/> <s>false</s> </invoke>
次のコードによって、現在割り当てられている DenyGroups を、無効化、有効化、またはプロビジョニング解除フォームに取得できます。
<invoke name=’getList’> <invoke name=’getView’> <ref>display.session</ref> <concat> <s>UserViewer:</s> <ref>resourceAccounts.id</ref> </concat> <map> <s>TargetResources</s> <list> <s>YourResourceName</s> </list> </map> </invoke> <s>accounts[YourResourceName].DenyGroups</s> </invoke>
無効化、有効化、またはプロビジョニング解除フォームでは、DenyGroups 属性を次のようにアドレス指定します。
resourceAccounts.currentResourceAccounts [YourResourceName].attributes.DenyGroups
次の例では、複数選択ボックスの左側にある使用可能な DenyGroups を一覧表示する無効化フォームのフィールドを定義しています。
<Field name=’resourceAccounts.currentResourceAccounts [ YourResourceName].attributes.DenyGroups’> <Display class=’MultiSelect’> <Property name=’title’ value=’Deny Groups’/> <Property name=’required’> <Boolean>false</Boolean> </Property> <Property name=’allowedValues’> <invoke name=’listResourceObjects’ class=’com.waveset.ui.FormUtil’> <ref>:display.session</ref> <s>DenyLists</s> <s>YourResourceName</s> <null/> <s>false</s> </invoke> </Property> <Property name=’availableTitle’ value=’Available Deny Groups’/> <Property name=’selectedTitle’ value=’Assigned Deny Groups’/> </Display> </Field>
次の例では、非表示フィールドの取得規則内の割り当てられた DenyGroups を一覧表示する有効化フォームのフィールドを定義しています。
<Field name=’resourceAccounts.currentResourceAccounts [YourResourceName].attributes.DenyGroups’> <Derivation> <invoke name=’getList’> <invoke name=’getView’> <ref>display.session</ref> <concat> <s>UserViewer:</s> <ref>resourceAccounts.id</ref> </concat> <map> <s>TargetResources</s> <list> <s>YourResourceName</s> </list> </map> </invoke> <s>accounts[YourResourceName].DenyGroups</s> </invoke> </Derivation> </Field>
ゲートウェイマシンでは、新しく登録されたユーザーに対して新規 ID が生成されます。これらは、ゲートウェイの処理やサービスにアクセス可能な UNC パス上に配置されます。したがって、\\machine\ids\myidfile.id と指定すると、ネットワーク共有に配置されます。
ユーザーの作成時に指定される共有部分にアクセスするためのサービスとしてゲートウェイを設定した場合、このゲートウェイに対してユーザーとして実行する必要がある可能性があります。共有部分にアクセスできるように SYSTEM を割り当てることもできますが、これはゲートウェイネットワーク環境がどのように見えるかに依存します。
「アドレス帳に ID を保存」リソース属性を TRUE または FALSE に設定することで、ID ファイルをアドレス帳に格納するかどうかを指定することもできます。
move/rename アクションは、adminp プロセスでも実行されます。move は、certifierOrgHierarchy 属性を変更して元の certifierId ファイルとその id ファイルのパスワードを入力することによって、名前変更フォームから開始できます。move 要求によって要求データベース内に「名前移動要求」が作成されます。また、move 要求は、ユーザーの新しい組織を代表する新しい認証者が完了する必要があります。move は、ユーザーの姓または名を変更することで開始できます。
rename と move を同時に実行することはできません。 adminp 処理で rename と move の同時実行ができないのは、要求が、どちらの場合にも変更される標準的な名前を参照するためです。
ゲートウェイでは、すべての Domino リソースに一意の名前を付ける必要があります。複数の Identity Manager の配備があり、それらが同じゲートウェイを指している場合は、それらの配備に存在するすべての Domino リソースに一意のリソース名を付ける必要があります。
リソースが Domino 7.0 以降のサーバーの場合、Identity Manager でローミングユーザーを作成できます。Identity Manager は、ユーザーのローミング状態を変更できません。そのため、RoamingUser アカウント属性を既存のユーザーに設定することはできません。
Domino アダプタでは、RA_HANGTIMEOUT リソース属性を使用してタイムアウト値を秒単位で指定できます。この属性は、ゲートウェイに対する要求がタイムアウトしてハングしているとみなされるまでの時間を制御します。
次のように、この属性を Resource オブジェクトに手動で追加する必要があります。
<ResourceAttribute name=’Hang Timeout’ displayName=’com.waveset.adapter.RAMessages: RESATTR_HANGTIMEOUT’ type=’int’ description=’com.waveset.adapter.RAMessages: RESATTR_HANGTIMEOUT_HELP’ value=’NewValue’> </ResourceAttribute>
この属性のデフォルト値は 0 です。これは Identity Manager がハングした接続を確認しないことを表します。
ここでは、このアダプタに関して、次のようないくつかの追加情報を提供します。
Domino で指定したすべてのオブジェクトを一覧表示できます。listAllObjects 呼び出しへの「タイプ」として表示名に渡します。
これらの操作の一部には追加の属性が必要であるため、それらの属性を含むように、デフォルトのフォームを更新してください。
さまざまなビューに渡される属性は、リソース定義によってあらかじめ定義されています。
有効化フォーム、無効化フォーム: DenyGroups
プロビジョニング解除フォーム: DenyGroups (オプション)
有効期限切れログインフォーム、パスワード変更フォーム、マイパスワード変更フォーム: HTTPPassword (秘密にする必要あり)、ID ファイル
名前変更フォーム: certifierIDFile、credentials (秘密にする必要あり)
次のサンプル UserForm では、getResourceObjects メソッドの searchFilter オプションを Domino 用に実装する方法を示します。このフォームでは、リソース MyResource 上で姓が Smith であるすべてのユーザーを検索しています。ユーザーはアカウント ID 順ではなく、com.waveset.object.GenericObject%4014a614a6 などの内部識別子の順に表示されます。
<DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'> <Configuration name='Domino searchFilter Form' wstype=UserForm'" <Extension> <Form> <Display class=’EditForm’/> <Field name=’rcwfield’> <Display class=’MultiSelect’> <Property name=’title’ value=’My Lister’/> <Property name=’availableTitle’ value=’Listing available items’/> <Property name=’selectedTitle’ value=’Selected Item(s)’/> <Property name=’allowedValues’> <block trace=’true’> <invoke name=’getResourceObjects’ class=’com.waveset.ui.FormUtil’> <ref>:display.session</ref> <s>People</s> <s>MyResource</s> <Map> <MapEntry key=’searchAttrsToGet’> <List> <String>LastName</String> <String>ShortName</String> <String>MailFile</String> </List> </MapEntry> <MapEntry key=’searchFilter’ value=’@IsAvailable(LastName) & @Contains(@LowerCase(LastName);"smith")’/> </Map> </invoke> </block> </Property> </Display> <Disable> <i>0</i> </Disable> </Field> </Form> </Extension> </Configuration>
管理者が変更またはリセットできるのは、HTTPPassword のみです。HTTPPassword のみを変更したくない場合には、デフォルトテーブルによって Domino アダプタをフィルタします。
マイパスワード変更フォーム、パスワード変更フォーム、および有効期限切れログインフォームは、「Forgot Old Password?」という名前の列を生成します。Domino リソースでは、この列を削除する必要があります。Identity Manager は管理者パスワードの更新をサポートしていません。
idFile。Password、LoginChange
DenyGroups。Enable、Disable、Delete
certifierIdFile、credentials。名前の変更
HTTPPassword。Password、LoginChange
WSUSER_UNID 変数は、Lotus Notes の汎用 ID を表します。この変数は、アカウントが作成されるまで参照することができません。
ここでは、サポートされる接続と特権の要件について説明します。
Identity Manager は、Sun Identity Manager Gateway を使用して Domino と通信します。
なし
次の表に、このアダプタのプロビジョニング機能の概要を示します。
機能 |
サポート状況 |
---|---|
アカウントの有効化/無効化 |
あり |
アカウントの名前の変更 |
あり |
パススルー認証 |
なし |
前アクションと後アクション |
あり |
データ読み込みメソッド |
|
次の表に、Domino アカウント属性の情報を示します。特に記載されていないかぎり、デフォルトのデータ型は文字列です。
Identity Manager は、次のネイティブ Domino オブジェクトを管理します。
表 12–1 ネイティブ Domino オブジェクト
リソースオブェクト |
サポートされる機能 |
管理される属性 |
---|---|---|
Group |
作成、削除、一覧表示、名前の変更、名前を付けて保存、更新 |
ConflictAction、Group_Main、AvailableForDirSync、DeleteNTUserAccount、DocumentAccess、Form、GroupName、GroupTitle、GroupType、InternetAddress、ListCategory、ListDescription、ListName、ListOwner、LocalAdmin、MailDomain、MailVerify、Owner、Type、Members、MemberPeople、MemberGroups |
Domino では、各ユーザーのアイデンティティーは userid ファイルに格納されます。ただし、それと同じユーザー名が FullName 属性内のユーザーレコードに格納されます。この属性は複数値を取り、リスト内の最初の属性は一意です。リスト内の最初の名前は、標準的な形式で格納され、次のようになります。
CN=Joe T Smith/O=MyCompany
この名前を使用して、名前とアドレス帳のレコードにアクセスできます。Identity Manager は、この文字列を適切なフォームの resourceInfo に、次のように格納します。
Joe T Smith/MyCompany
Domino には、API レベルで名前を変換する組み込み機能があります。Identity Manager は、NOTEID も GUID 属性として格納し、可能な場合は、このグローバル識別子を使用して Domino のユーザーを検索します。
デフォルトのアイデンティティーテンプレートは次のとおりです。
$firstname$ $MiddleInitial$ $lastname$$CertifierOrgHierarchy$
環境によっては、ミドルネームのイニシャルが含まれない場合もあります。
Dominogroupcreate.xml
Dominogroupupdate.xml
Identity Manager のデバッグページを使用して、次のクラスでトレースオプションを設定します。
com.waveset.adapter.DominoResourceAdapter
ゲートウェイへの接続の問題を診断するために、次のメソッドでトレースを有効にすることもできます。
com.waveset.adapter.AgentResourceAdapter#sendRequest
com.waveset.adapter.AgentResourceAdapter#getResponse