ここでは、LDAP リソースアダプタの使用に関する情報を示します。 次のトピックで構成されています。
LDAP リソースでのパスワード同期の有効化については、第 51 章LDAP パスワードの同期を参照してください。
LDAP に接続するときは、管理者アカウント CN=Directory Manager を使用するのではなく、Identity Manager サービスアカウントを作成するようにしてください。LDAP Directory Server 管理ツールを使用して、各ベースコンテキストで ACI (アクセス制御命令) によってアクセス権を設定します。
ACI でのアクセス権をソースに基づいて設定します。アダプタからアイデンティティー情報の源泉となるソースに接続する場合は、読み取り、検索、および (場合によっては) 比較のアクセス権のみを設定します。アダプタを書き戻し用に使用する場合は、書き込みと (場合によっては) 削除のアクセス権を設定します。
更新履歴ログの監視にアカウントを使用する場合は、cn=changelog で ACI も作成するようにしてください。更新履歴ログのエントリに対しては書き込みも削除もできないため、アクセス権は読み取りと検索のみに設定するとよいでしょう。
LDAP アダプタは、別名を管理できます。ただし、getUser の呼び出しが実行される場合、別名が逆参照されて、アダプタは参照先オブジェクトを返します。結果として、アダプタは別名オブジェクト自体の属性を検索しません。
これは、JNDI のデフォルトが次の設定になっているために発生します。
java.naming.ldap.derefAliases=always
このプロパティーは、次の行が含まれる jndi.properties ファイルを作成することでグローバルに変更できます。
java.naming.ldap.derefAliases=never
jndi.properties ファイルは、Java ライブラリパス ($WSHOME/WEB-INF/classes など) に配置する必要があります。変更を有効にするために、アプリケーションサーバーを再起動します。
同期ポリシーを編集するときは、「変更者フィルタ」フィールドの値を指定してください。標準の値は、このアダプタで使用される管理者の名前です。管理者の名前を入力すると、無限ループが発生することを防ぐことができます。エントリの形式は、cn=Directory Manager です。
ここでは、Identity Manager が RootDN 以外のユーザーとして LDAP リソースに接続することを前提としています。RootDN ユーザーとして接続する場合は、ここで説明する手順を適用できますが、ほかの LDAP 属性値でも可能な場合があります。詳細は、Directory Server のマニュアルを参照してください。
Microsoft ADAM でこの機能を有効にする方法については、「ADAM スキーマの修正」を参照してください。
Directory Server では、検索できる LDAP エントリの数と取得できる LDAP エントリの数を、それぞれ nsLookThroughLimit 属性と nsslapd-sizelimit 属性によって定義します。nsLookThroughLimit のデフォルト値は 5,000 で、nsslapd-sizelimit のデフォルト値は 2,000 です。どちらの属性も、-1 に設定すると制限が無効になります。これらの属性の値を変更した場合は、Directory Server を再起動してください。
必ずしもデフォルト値を変更した方がよいとは限りません。LDAP 検索のパフォーマンスを向上させるために、LDAP 仮想リスト表示 (VLV) コントロールを有効にできます。VLV は、一度にすべての検索結果を返さず、検索結果の一部を返します。
「ブロックを使用」リソース属性を使用すると、VLV コントロールの使用によって Identity Manager のクエリー結果を常にサイズ制限の範囲内を収めることができます。「ブロック数」リソース属性は、取得するユーザーの数を指定しますが、この値は nsslapd-sizelimit 属性に設定された値以下にする必要があります。
VLV インデックス (参照インデックスとも呼ばれる) を作成してください。 作成しないと、nsslapd-sizelimit によるサイズ制限が有効なままになります。VLV インデックスによってアカウントの反復処理のパフォーマンスが大幅に向上するため、調整、リソースからの読み込み、またはファイルへのエクスポートを頻繁に行う予定である場合は、インデックスを設定するようにしてください。
VLV インデックスの作成の詳細な手順については、Directory Server のマニュアルを参照してください。基本的なプロセスは次のとおりです。
次のプロパティーを持つ vlvsearch オブジェクトを作成します。
vlvbase: YourBaseContext vlvfilter: (&(objectclass=top)(objectclass=person) (objectclass=organizationalPerson) (objectclass=inetorgperson)) vlvscope: 2 |
vlvbase 属性は、「ベースコンテキスト」リソース属性に指定した値に一致させる必要があります。vlvfilter 属性には、「オブジェクトクラス」リソース属性に指定したクラスを、ここに示した形式で含める必要があります。vlvscope の値 2 は、サブツリー検索を示します。
vlvindex コンポーネントを vlvsearch のサブオブジェクトとして作成します。vlvsort 属性を uid に設定してください。
vlvindex コマンドまたはほかのメカニズムを使用して、VLV インデックスを構築します。
ACI (アクセス制御命令) により次の項目のアクセス権を設定します。
更新履歴ログの参照インデックスをまだ作成していない場合は、作成します。Directory Server のユーザーインタフェースを使用すると、デフォルトで “MCC cn=changelog” という名前の vlvsearch オブジェクトと、“SN MCC cn=changelog” という名前の vlvindex オブジェクトが作成されます。
アクセス制御命令 (ACI) によりアクセス権を設定し、Identity Manager アカウントが次の項目の読み取り、比較、および検索の権限を持つようにします。
更新履歴ログ (cn=changelog)
vlvsearch オブジェクト (cn=”MCC cn=changelog”,cn=config,cn=ldbm)
vlvindex オブジェクト (“SN MCC cn=changelog”,cn=config,cn=ldbm)
Directory Server の一部のバージョンでは、更新履歴ログの nsLookThroughLimit 属性に 5,000 の値がハードコードされています。更新履歴ログの nsLookThroughLimit 制限にかかるのを避けるには、サーバーで保持する更新履歴ログエントリの最大数を 5,000 未満に制限します。更新履歴ログのエントリが失われるのを避けるには、アダプタのポーリング間隔を短くします。
LDAP アダプタには、LDAP リソース上のアカウントを無効にするための方法が複数用意されています。アカウントを無効にするには、次のいずれかの手法を使用します。
アカウントのパスワードを不明な値に変更することによってアカウントを無効にするには、「LDAP アクティブ化メソッド」フィールドと「LDAP アクティブ化パラメータ」フィールドを空白のままにします。これは、アカウントを無効にするときのデフォルトの方法です。無効になったアカウントは、新しいパスワードを割り当てることによって再度有効にできます。
nsmanageddisabledrole LDAP ロールを使用してアカウントの無効化と有効化を行うには、LDAP リソースを次のように設定します。
「リソースパラメータ」ページで、「LDAP アクティブ化メソッド」フィールドを nsmanageddisabledrole に設定します。
「LDAP アクティブ化パラメータ」フィールドを IDMAttribute=CN=nsmanageddisabledrole, baseContext に設定します。IDMAttribute は、次の手順でスキーマに指定します。
「アカウント属性」ページで、IDMAttribute を アイデンティティーシステム ユーザー属性として追加します。リソースユーザー属性を nsroledn に設定します。この属性のタイプは文字列にしてください。
LDAP リソース上に nsAccountInactivationTmp という名前のグループを作成し、CN=nsdisabledrole,baseContext をメンバーとして割り当てます。
これで、LDAP アカウントを無効にできます。LDAP コンソールを使用して検証するには、nsaccountlock 属性の値を確認します。値が true であれば、アカウントはロックされています。
あとでアカウントが再度有効にされると、ロールからアカウントが削除されます。
nsAccountLock 属性を使用してアカウントの無効化と有効化を行うには、LDAP リソースを次のように設定します。
「リソースパラメータ」ページで、「LDAP アクティブ化メソッド」フィールドを nsaccountlock に設定します。
「LDAP アクティブ化パラメータ」フィールドを IDMAttribute=true に設定します。IDMAttribute は、次の手順でスキーマに指定します。たとえば、accountLockAttr=true とします。
「アカウント属性」ページで、「LDAP アクティブ化パラメータ」フィールドに指定した属性 (たとえば、accountLockAttr) を アイデンティティーシステム ユーザー属性として追加します。リソースユーザー属性を nsaccountlock に設定します。この属性のタイプは文字列にしてください。
リソース上で、nsAccountLock LDAP 属性を true に設定します。
アカウントを無効化すると、Identity Manager は、nsaccountlock を true に設定します。また、すでに nsaccountlock が true に設定されていた LDAP ユーザーについても、無効と見なします。nsaccountlock の値が true 以外の値 (NULL を含む) に設定されている場合、そのユーザーは有効であるとみなします。
「使用中のディレクトリサーバーでは nsmanageddisabledrole 属性や nsAccountLock 属性を使用できないが、アカウントを無効にする同様の方法がある場合は、「LDAP アクティブ化メソッド」フィールドに次のいずれかのクラス名を入力します。「LDAP アクティブ化パラメータ」フィールドに入力する値は、クラスによって異なります。
Class Name |
使用する状況 |
---|---|
com.waveset.adapter.util.ActivationByAttributeEnableFalse |
ディレクトリサーバーは、属性を false に設定することによってアカウントを有効にし、属性を true に設定することによってアカウントを無効にします。 この属性をスキーママップに追加します。次に、「LDAP アクティブ化パラメータ」フィールドに、(スキーママップの左側に定義された) この属性の Identity Manager 名を入力します。 |
com.waveset.adapter.util.ActivationByAttributeEnableTrue |
ディレクトリサーバーは、属性を true に設定することによってアカウントを有効にし、属性を false に設定することによってアカウントを無効にします。 この属性をスキーママップに追加します。次に、「LDAP アクティブ化パラメータ」フィールドに、(スキーママップの左側に定義された) この属性の Identity Manager 名を入力します。 |
com.waveset.adapter.util.ActivationByAttributePullDisablePushEnable |
Identity Manager は、LDAP から属性と値のペアを引き出すことによってアカウントを無効にし、LDAP に属性と値のペアをプッシュすることによってアカウントを有効にします。 この属性をスキーママップに追加します。次に、「LDAP アクティブ化パラメータ」フィールドに属性と値のペアを入力します。スキーママップの左側に定義されている、属性の Identity Manager 名を使用します。 |
com.waveset.adapter.util.ActivationByAttributePushDisablePullEnable |
Identity Manager は、LDAP に属性と値のペアをプッシュすることによってアカウントを無効にし、LDAP から属性と値のペアを引き出すことによってアカウントを有効にします。 この属性をスキーママップに追加します。次に、「LDAP アクティブ化パラメータ」フィールドに属性と値のペアを入力します。スキーママップの左側に定義されている、属性の Identity Manager 名を使用します。 |
com.waveset.adapter.util.ActivationNsManagedDisabledRole |
ディレクトリは、特定のロールを使用してアカウントステータスを決定します。このロールにアカウントが割り当てられている場合、そのアカウントは無効になります。 このロール名をスキーママップに追加します。次に、「LDAP アクティブ化パラメータ」フィールドに次の形式で値を入力します。 IDMAttribute=CN=roleName, baseContext IDMAttribute は、スキーママップの左側に定義されている、ロールの Identity Manager 名です。 |
LDAP アダプタは、Microsoft の Application Directory Application Mode (ADAM) にプロビジョニングするように設定できます。次のそれぞれの節では、ADAM のサポートを有効にする方法について説明します。
Identity Manager で使用するために ADAM スキーマの調整が必要なことがあります。リソーススキーマおよび LDAP リソースのアイデンティティーテンプレートには、一意の識別子 (またはアカウント ID) の参照が含まれることがあります。ADAM は、次の点がその他の LDAP 実装と異なります。
ADAM では、オブジェクトクラス定義は、単一の命名属性だけを許容します。命名属性は、DN の一番左にある RDN コンポーネントに現れる属性です。
uid 属性は、複数値として定義されます。
cn 属性は、単一値として定義され、64 文字以下にする必要があります。
ADAM スキーマは、属性インデックス設定を定義します。スキーマの各属性定義エントリには searchFlags 属性があります。たとえば Uid は、スキーマコンテキストの cn=Uid,cn=Schema に位置します。searchFlags 属性は、ビットマスクであり、1 (インデックス作成)、2 (コンテナごとのインデックス作成)、および 64 (効率的な VLV クエリをサポートするインデックス) の値はインデックス作成に関連します。
ADAM インスタンスでスキーマを更新する詳細は、Microsoft のマニュアルを参照してください。
ADAM での調整では、ページング結果コントロールまたは仮想リスト表示コントロールのいずれかを使用できます。ページング結果コントロールを使用するには、リソースのリソースパラメータ設定ページで、「Use Paged Results Control」チェックボックスにチェックマークを付けます。仮想リスト表示コントロールを使用するには、リソースのリソースパラメータ設定ページの「VLV Sort Attribute」で名前を付けた属性が、有効な VLV クエリーをサポートするオプションを設定して、ADAM でインデックス化されている必要があります。詳細は、「ADAM スキーマの修正」を参照してください。
Active Sync は ADAM でサポートされていません。
次の手順に従って、Identity Manager が ADAM のアカウントを有効および無効にできるようにします。
「LDAP リソースパラメータ」ページで、「LDAP アクティブ化メソッド」パラメータを com.waveset.adapter.util.ActivationByAttributePushDisablePullEnable に設定します。
「LDAP アクティブ化パラメータ」を Identity_System_Attribute=true に設定します。アイデンティティーシステム属性は、次の手順で「アカウント属性」ページで指定します。たとえば MyUserAccountDisabled=true とします。
「アカウント属性」ページで、「LDAP アクティブ化パラメータ」フィールドに指定したアイデンティティーシステム属性をアイデンティティーシステムユーザー属性として追加します。リソースユーザー属性を msDS-UserAccountDisabled に設定します。この属性のタイプは文字列にしてください。