13.2 LDAPとeDirectoryの連携について

13.2.1 LDAPからeDirectoryに接続する

すべてのLDAPクライアントが、次のいずれかのユーザタイプでNetIQ eDirectoryにバインド(接続)されます。

  • [Public]ユーザ(匿名バインド)

  • プロキシユーザ(プロキシユーザ匿名バインド)

  • NDSまたはeDirectoryユーザ(NDSユーザバインド)

ユーザの認証に使用されるバインドタイプにより、LDAPクライアントがアクセスできる内容が決定されます。LDAPクライアントは、作成した要求をディレクトリに送信することにより、ディレクトリにアクセスします。LDAPクライアントがLDAP Services for eDirectoryを通じて要求を送信した場合、eDirectoryは、その中からLDAPクライアントが適切なアクセス権を持つ属性の要求だけを処理します。

たとえばLDAPクライアントが、読み込み権が必要なある属性値を要求したものの、その属性についてユーザに許可されているのが比較権だけである場合、この要求は拒否されます。

標準ログイン制限とパスワード制限は引き続き適用されます。ただし、制限はすべてLDAPの実行場所と関係します。時刻およびアドレス制限も適用されますが、アドレス制限はeDirectoryログインが実行された場所(この場合はLDAPサーバ)を基準に決定されます。

[Public]ユーザとして接続する

匿名バインドは、ユーザ名またはパスワードを使用しない接続です。サービスでプロキシユーザの使用が設定されていない場合、名前とパスワードが定義されていないLDAPクライアントでLDAP Services for eDirectoryにバインドすると、ユーザはeDirectoryに[Public]ユーザとして認証されます。

[Public]ユーザとは、非認証のeDirectoryユーザのことです。デフォルトでは、[Public]ユーザにはeDirectoryツリー内のオブジェクトのブラウズ権が割り当てられます。[パブリック]ユーザ用のデフォルトブラウズ権では、eDirectoryオブジェクトをブラウズすることはできますが、ほとんどのオブジェクト属性にアクセスすることはできません。

多くの場合、LDAPクライアントは、デフォルトの[Public]権だけでは不十分です。[Public]の権利は変更できますが、変更した権利はすべてのユーザに対して許可されることになります。この問題を解決するために、プロキシユーザ匿名バインドを使用することをお勧めします。詳細については、プロキシユーザとして接続するを参照してください。

[Public]ユーザによるオブジェクト属性へのアクセスを許可するには、[Public]ユーザを該当する(1つまたは複数の)コンテナのトラスティに設定し、適切なオブジェクト権および属性権を割り当てる必要があります。

プロキシユーザとして接続する

代理ユーザ匿名バインドは、eDirectoryユーザ名にリンクされた匿名接続です。プロトコルでプロキシユーザの使用が設定されている場合、LDAPクライアントがLDAP for eDirectoryに匿名でバインドすると、ユーザはeDirectoryによりプロキシユーザとして認証されます。LDAP Services for eDirectoryとeDirectoryの両方でユーザ名が設定されます。

通常、匿名バインドにはLDAPのポート389が使用されます。ただし、ポートはインストール時に手動で変更することができます。

次に、プロキシユーザ匿名バインドの概念について説明します。

  • 匿名バインドを経由するLDAPクライアントアクセスは、すべてプロキシユーザオブジェクトを通して割り当てられます。

  • 匿名バインドではLDAPクライアントからパスワードが提供されないので、プロキシユーザにnullパスワードを適用し、パスワード変更間隔などのパスワード制限を設定しないようにします。パスワードを強制的に有効期限切れにしたり、プロキシユーザにパスワードの変更を許可したりしないでください。

  • プロキシユーザオブジェクトのアドレス制限を設定すると、ユーザがログインできるロケーションを制限できます。

  • eDirectory内にプロキシユーザオブジェクトを作成し、公開するeDirectoryオブジェクトに対する権利を割り当てる必要があります。デフォルトのユーザ権では、特定のオブジェクトと属性だけに対する読み込みアクセス権が許可されます。アクセスする必要がある各サブツリー内のすべてのオブジェクトと属性に対するプロキシユーザ読み込み権および検索権を割り当てます。

  • LDAP Services for eDirectoryを設定するLDAPグループオブジェクトの[全般]ページで、プロキシオブジェクトを有効化する必要があります。このため、1つのLDAPグループ内のすべてのサーバに対し、プロキシユーザオブジェクトは1つしか作成できません。詳細については、LDAPオブジェクトを環境設定するを参照してください。

  • プロキシユーザオブジェクトに対し、すべてのプロパティ(デフォルト)か、選択したプロパティの権利を許可できます。

プロキシユーザに対して選択したプロパティの権利だけを許可するには、次を実行します。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. 権利]>[トラスティの変更]の順にクリックします。

  3. 代理ユーザが権利を持つ最上位コンテナの名前とコンテキストを指定するか、[検索]ボタンをクリックし、問題のコンテナをブラウズして[OK]をクリックします。

  4. [トラスティの変更]画面で[トラスティの追加]をクリックします。

  5. 代理ユーザのオブジェクトをブラウズしてクリックし、[OK]をクリックします。

  6. 追加した代理ユーザの左側にある[割り当てられた権利]をクリックします。

  7. [すべての属性権]および[エントリ権]チェックボックスをオンにし、[プロパティの削除]をクリックします。

  8. プロパティの追加]をクリックし、[スキーマ内のすべてのプロパティを表示する]チェックボックスをオンにします。

  9. mailstop(リストの小文字のセクション)や役職など、代理ユーザが継承可能な権利を選択し、[OK]をクリックします。

    その他の継承可能な権利を追加する場合は、手順ステップ 8ステップ 9を繰り返します。

  10. 完了]をクリックして、[OK]をクリックします。

プロキシユーザ匿名バインドを実装するには、eDirectory内にプロキシユーザオブジェクトを作成し、そのユーザに適切な権利を割り当てる必要があります。アクセスする必要がある各サブツリー内のすべてのオブジェクトと属性に対するプロキシユーザ読み込み権および検索権を割り当てます。同じ代理ユーザ名を指定して、LDAP Services for eDirectory内でプロキシユーザ名を有効化する必要もあります。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. LDAP] > [LDAPオプション]をクリックする。

  3. LDAPグループの表示]をクリックします。

  4. 設定するLDAPグループオブジェクトの名前をクリックします。

  5. プロキシユーザ]フィールドにeDirectoryユーザオブジェクトの名前とコンテキストを指定します。

  6. 適用をクリックし、OKをクリックします。

Linuxでldapconfigユーティリティを使用する

たとえば、LDAP Search Referral UsageでLDAPサーバによるLDAP参照の処理方法を指定します。

  1. システムプロンプトで、次のコマンドを入力します。

    ldapconfig -s "LDAP:otherReferralUsage=1"

  2. ユーザFDN(完全識別eDirectoryユーザ名)とパスワードを入力します。

NDSまたはeDirectoryユーザとして接続する

eDirectoryユーザバインドは、LDAPクライアントが完全なeDirectoryユーザ名とパスワードを使用して確立する接続です。eDirectoryユーザバインドはeDirectoryにより認証されます。LDAPクライアントは、そのeDirectoryユーザにアクセスが許可されているすべての情報にアクセスできます。

次に、eDirectoryユーザバインドに関する重要な概念について説明します。

  • eDirectoryユーザバインドは、LDAPクライアントに入力されたユーザ名とパスワードを使用してeDirectoryへの認証が行われます。

  • LDAPクライアントアクセスに使用するeDirectoryユーザ名とパスワードは、Novell ClientがeDirectoryにアクセスする場合も使用できます。

  • 非TLS接続では、eDirectoryパスワードはLDAPクライアントとLDAP Services for eDirectoryの間の経路をクリアテキストデータとして転送されます。

  • クリアテキストパスワードが無効にされている場合は、非TLS接続上で転送されたユーザ名またはパスワードを含むeDirectoryバインド要求は、すべて拒否されます。

  • eDirectoryユーザパスワードの有効期限が切れた場合、そのユーザのeDirectoryバインド要求は拒否されます。

LDAPクライアントにeDirectory権を割り当てる

  1. LDAPクライアントがeDirectoryにアクセスするときに使用するユーザ名のタイプを決定します。

    • [Public]ユーザ(匿名バインド)

    • プロキシユーザ(プロキシユーザ匿名バインド)

    • NDSユーザ(NDSユーザバインド)

    詳細については、LDAPからeDirectoryに接続するを参照してください。

  2. ユーザが1つの代理ユーザまたは複数のeDirectoryユーザ名でLDAPにアクセスする場合、iManagerを使用して、eDirectory内またはLDAPでこれらのユーザ名を作成します。

  3. LDAPクライアントが使用するユーザ名に、適切なeDirectory権を割り当てます。

ほとんどのユーザに割り当てられるデフォルトの権利では、ユーザ自身が持つオブジェクト以外にはアクセスできません。別のオブジェクトやその属性にアクセスするには、eDirectoryで割り当てられた権利を変更する必要があります。

LDAPクライアントからeDirectoryオブジェクトおよび属性へのアクセスが要求されると、eDirectoryは、LDAPクライアントのeDirectory識別情報に基づいて要求を受諾または拒否します。識別情報はバインド時に設定されます。

13.2.2 クラスと属性のマッピング

クラスとは、ディレクトリ内のオブジェクトのタイプ(ユーザ、サーバ、グループなど)です。属性とは、特定のオブジェクトについての追加情報を定義するディレクトリ要素です。たとえば、ユーザオブジェクト属性にはユーザの姓、電話番号などがあります。

スキーマとは、ディレクトリで使用できるクラスと属性、およびディレクトリ構造(クラス間の相互関係)を定義する一連の規則です。LDAPディレクトリとeDirectoryディレクトリのスキーマが異なる場合は、LDAPクラスと属性を、適切なeDirectoryオブジェクトと属性へマッピングしなければならない場合があります。これらのマッピングで、LDAPスキーマからeDirectoryスキーマへの名前の変換を定義します。

LDAP Services for eDirectoryにはデフォルトマッピングがあります。LDAPクラスおよび属性と、eDirectoryオブジェクトタイプおよびプロパティとの対応関係は多くの場合論理的で、直観的に理解できます。ただし、実装時の条件によっては、クラスと属性のマッピングを再設定する必要が生じることもあります。

ほとんどの場合、LDAPクラスとeDirectoryオブジェクトタイプとの間のマッピングは、一対一の対応関係です。ただし、LDAPスキーマでは、同じ属性を意味するCNおよび共通名のような別名もサポートされています。

LDAPグループ属性をマッピングする

デフォルトのLDAP Services for eDirectory環境設定には、事前定義されたクラスと属性のマッピングがあります。これは、LDAP属性のサブセットからeDirectory属性のサブセットへのマッピングです。デフォルト環境設定でマッピングされていない属性には、自動生成されたマッピングが割り当てられます。スキーマ名がスペースまたはコロンを含まない有効なLDAP名である場合は、マッピングは必要ありません。クラスおよび属性のマッピングを調べて、必要に応じて再設定します。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. LDAP]>[LDAPオプション]>[LDAPグループの表示]の順にクリックします。

  3. LDAPグループオブジェクトをクリックし、[属性マップ]をクリックします。

  4. 必要に応じて属性を追加、削除、または変更します。

    LDAP属性の種類によっては別名(CNおよび共通名など)が存在する場合があるため、複数のLDAP属性を対応する1つのeDirectory属性名にマッピングする必要が生じることがあります。LDAP Services for eDirectoryがLDAP属性情報を返す場合、リスト内で検出された最初の一致する属性の値が返されます。

    複数のLDAP属性を1つのeDirectory属性にマッピングする場合は、属性の順序に意味があります。リスト内の順序を変更することにより、属性の優先度を変更できます。

  5. 適用をクリックし、OKをクリックします。

LDAPグループのクラスマッピング

LDAPクライアントがLDAPサーバにLDAPクラス情報を要求すると、サーバは対応するeDirectoryクラス情報を返します。デフォルトのLDAP Services for eDirectory環境設定には、事前定義されたクラスと属性のマッピングがあります。

メモ:eDirectoryでは、LDAPグループオブジェクトのクラスマッピングはLDAPサーバ間では伝搬しません。複数のサーバ上で同じクラスマッピングを使用するには、環境内のすべてのLDAPグループオブジェクトに、マッピングを手動で追加します。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. LDAP] > [LDAPオプション]をクリックする。

  3. LDAPグループオブジェクトをクリックし、[クラスマップ]をクリックします。

  4. 必要に応じてクラスを追加、削除、または変更します。

    デフォルトのLDAP Services for eDirectory環境設定には、事前定義されたクラスと属性のマッピングがあります。これは、LDAPクラスと属性のサブセットからeDirectoryクラスと属性のサブセットへのマッピングです。デフォルト環境設定でマッピングされていない属性またはクラスには、自動生成されたマッピングが割り当てられます。

    スキーマ名がスペースまたはコロンを含まない有効なLDAP名である場合は、マッピングは必要ありません。クラスおよび属性のマッピングを調べて、必要に応じて再設定します。

  5. 適用をクリックし、OKをクリックします。

LDAPクラスと属性をマッピングする

LDAPディレクトリとeDirectoryディレクトリのスキーマは異なるため、LDAPクラスと属性を、適切なeDirectoryオブジェクトと属性へマッピングする必要があります。これらのマッピングで、LDAPスキーマからeDirectoryスキーマへの名前の変換を定義します。

有効なLDAPスキーマ名であれば、スキーマエントリに対するLDAPスキーママッピングは必要ありません。LDAPでは、スキーマ名で使用できる文字は英数字とハイフン記号(-)だけです。LDAPスキーマ名ではスペースは使用できません。

スキーマをLDAPの外部に拡張する場合、.schファイルなどLDAPの外部にスキーマを拡張した後でオブジェクトIDによる検索を確実に実行するには、LDAPサーバ環境設定をリフレッシュする必要があります。

多対一マッピング

eDirectoryからLDAPをサポートするために、LDAP Servicesは、(ディレクトリサービスレベルではなく)プロトコルレベルのマッピングを使用して、LDAPとeDirectoryの間で属性とクラスを変換します。したがって、2つのLDAPクラスまたは属性を同じeDirectoryクラスまたは属性にマッピングできます。

たとえば、LDAPを使用してCnを作成し、CommonName=Valueを検索すると、Cnと属性値が同じ可能性のあるcommonNameが返されます。

すべての属性を要求すると、そのクラスのマッピングリストの最初にある属性が返されます。名前で属性を要求すると、正しい名前が返されます。

多対一クラスマッピング

LDAPクラス名

eDirectoryクラス名

alias aliasObject

別名

groupOfNames groupOfUniqueNames group

グループ

mailGroup rfc822mailgroup

NSCP:mailGroup1

多対一属性マッピング

LDAP属性名

eDirectory属性名

c countryName

C

cn commonName

CN

uid userId

uniqueID (固有ID)

description multiLineDescription

説明

l localityname

L

member uniqueMember

Member (メンバー)

o organizationname

O

ou organizationalUnitName

OU

sn surname

Surname (名字)

st stateOrProvinceName

S

certificateRevocationList;binary certificateRevocationList

ndspkiCertificateRevocationList

authorityRevocationList;binary authorityRevocationList

authorityRevocationList

deltaRevocationList;binary deltaRevocationList

deltaRevocationList

cACertificate;binary cACertificate

cACertificate

crossCertificatePair;binary crossCertificatePair

crossCertificatePair

userCertificate;binary userCertificate

userCertificate

メモ:;binaryの付いた属性はセキュリティに関連しています。これらは、アプリケーションが;binaryを付けて取得された名前を必要とする場合のために、マッピングテーブル内に存在します。;binaryを付けずに取得した名前が必要な場合は、マッピングの順序を変更できます。

13.2.3 非標準スキーマ出力を有効にする

eDirectoryには、互換モードスイッチがあります。この機能により、非標準スキーマ出力が使用できるため、現行のADSIクライアントおよび従来のNetscape*クライアントでスキーマを読み込むことができます。このスイッチは、LDAPサーバオブジェクト内の属性を設定することにより実装されます。属性名はnonStdClientSchemaCompatModeです。通常の場合、LDAPサーバオブジェクトはサーバオブジェクトと同じコンテナ内にあります。

非標準出力は、LDAP用の現行IETF規格には適合しませんが、現行バージョンのADSIクライアントおよび従来のクライアントでは正常に処理できます。

非標準出力の出力形式は次のとおりです。

  • SYNTAX OIDは一重引用符で囲まれます。

  • 上限は出力されません。

  • X-オプションは出力されません。

  • 複数の名前が存在する場合は、最初に検出された名前だけが出力されます。

  • OIDが定義されていない属性やクラスは、それぞれ小文字で「attributename-oid」、「classname-oid」と出力されます。

  • 名前にハイフンが含まれていてOIDが定義されていない属性またはクラスは出力されません。

OIDまたはオブジェクト識別子は、自身の属性またはobjectclassをLDAPサーバに追加するのに必要なオクテット数値の文字列です。

非標準スキーマ出力を有効化するには、次を実行します。

  1. NetIQ iManagerで、[役割およびタスク]ボタン [役割およびタスク]ボタン をクリックします。

  2. LDAP] > [LDAPオプション]をクリックする。

  3. LDAPサーバの表示]をクリックし、LDAPサーバオブジェクトをクリックします。

  4. 検索]をクリックし、[古いADSIおよびNetscapeスキーマ出力を有効にする]をクリックします。

    非標準の出力は、現在IETFがLDAPについて定義している規格に準拠していませんが、現在のADSIクライアントおよび以前のNetscapeクライアントでは動作します。

  5. 適用]、[情報]の順にクリックし、[リフレッシュ]をクリックします。

13.2.4 構文の相違

LDAPとeDirectoryでは使用される構文が異なります。次のような重要な相違点があります。

コンマ

LDAPでは、区切り記号としてピリオドではなくコンマを使用します。たとえば、eDirectoryの識別名(完全名)は次のように記述します。

  • CN=JANEB.OU=MKTG.O=EMA

LDAP構文を使用すると、同じ識別名は次のようになります。

  • CN=JANEB,OU=MKTG,O=EMA

また、次は別のLDAP識別名の例です。

  • CN=Bill Williams,OU=PR,O=Bella Notte Corp
  • CN=Susan Jones,OU=Humanities,O=University College London,C=GB

タイプ付きの名前

eDirectoryでは、タイプなしの名前(.JOHN.MARKETING.ABCCORP)とタイプ付きの名前(CN=JOHN.OU=MARKETING.O=ABCCORP)の両方を使用します。LDAPでは、区切り記号としてコンマを使用したタイプ付きの名前(CN=JOHN,OU=MARKETING,O=ABCCORP)だけを使用します。

エスケープ文字

LDAP識別名では、エスケープ文字として円記号(\)を使用します。1つの円記号とプラス記号(+)またはコンマ(,)を指定すると、識別名を拡張できます。

次に例を示します。

CN=Pralines\+Cream,OU=Flavors,O=MFG (CN is Pralines+Cream)

CN=D. Cardinal,O=Lionel\,Turner and Kaye,C=US (OはLionel、Turner、およびKaye)

詳細については、Internet Engineering Task ForceのRFC 2253を参照してください。

複数のネーミング属性

オブジェクトは、スキーマ内の複数のネーミング属性を使用して定義できます。LDAPとeDirectoryのユーザオブジェクトには、いずれもCNとUIDの2つのネーミング属性があります。識別名の中のネーミング属性は、プラス記号(+)で区切ります。属性に明示的なラベルが付いていない場合は、スキーマによりそれぞれの文字列に対応する属性が決定されます(eDirectoryとLDAPの両方で、最初の文字列はCN、次の文字列はUIDになります)。識別名の中の各部分に手動でラベルを付けると、ネーミング属性の順序を変更できます。

2つの相対識別名の例を次に示します。

Smith (CNはSmith CN=Smith)

Smith+Lisa (CNはSmith、UIDはLisa CN=Smith UID=Lisa)

2つの相対識別名(SmithとSmith+Lisa)は、2つの異なる相対識別名によって参照されるため、同じコンテキスト内に共存することができます。

13.2.5 サポートされるNetIQ LDAPコントロールと拡張

LDAPクライアントとLDAPサーバは、LDAP 3プロトコルを使用することにより、コントロールと拡張を適用してLDAP操作を拡張できます。コントロールと拡張を使用することによって、要求や応答の一部として追加情報を指定できます。拡張された各操作は、自身の属性またはobjectclassをLDAPサーバに追加するのに必要な、オクテット数値の文字列であるオブジェクト識別子(OID)により識別されます。LDAPクライアントは、実行するべき拡張操作のOID、およびその拡張操作に固有なデータを指定して、拡張操作要求を送信できます。LDAPサーバはこの要求を受信すると、拡張操作を実行し、OIDと追加データが設定された応答をクライアントに送信します。

たとえば、クライアントがサーバに検索要求を送信するとき、ソートを指定するコントロールをこの要求に入れることができます。サーバはこの検索要求を受け取ると、検索結果をソートしてから、その結果をクライアントに戻します。コントロールはサーバからクライアントに送ることもできます。たとえば、サーバは、クライアントにパスワード期限切れを通知する認証要求のコントロールを送ることができます。

デフォルトでは、起動直後のeDirectory LDAPサーバは、すべてのシステム拡張ならびに選択されたオプション拡張およびコントロールをロードできる状態にあります。オプション拡張に対応するLDAPサーバオブジェクトのextensionInfo属性により、システム管理者は、オプション拡張およびコントロールの選択と選択解除ができます。

拡張操作を有効にするため、LDAP 3プロトコルはルートDSE内のsupportedControl属性およびsupportedExtension属性に含まれる、サポートされているコントロールと拡張のリストをサーバに要求します。ルートDSE (DSEはDSA (Directory System Agent) Specific (固有) Entry(エントリ)の略)とは、ディレクトリ情報ツリー(DIT)のルートにあるエントリです。詳細については、LDAPサーバの情報を取得するを参照してください。

サポートされているLDAPコントロールと拡張のリストについては、『LDAP and eDirectory Integration NDK』の「LDAP Controls」と「LDAP Extensions」を参照してください。