eDirectoryでのLDAPの機能について

このセクションでは、LDAPスキーマの相違点、クラスと属性のマッピング、補助クラスのサポート、およびLDAP構文について説明します。


LDAPを使用してeDirectoryへ接続する

すべてのLDAPクライアントが、次のユーザタイプの1つとしてeDirectoryにバインドまたは接続されます。

ユーザの認証に使用されるバインドタイプは、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ツリー内のオブジェクトのブラウズ権が割り当てられます。ユーザ[Public]のデフォルトブラウズ権では、eDirectoryオブジェクトの参照が許可されますが、ユーザがオブジェクト属性にアクセスすることはできません。

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

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


プロキシユーザで接続する

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

従来、匿名バインドはLDAPのポート389上で確立されていました。ただし、インストール中に別のポートを手動で設定して、アクティブディレクトリなどの他のノード上で匿名バインドを確立することもできます。

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

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

  1. プロキシユーザが権利を持つ最上位のコンテナを右クリックし、[このオブジェクトのトラスティを追加]をクリックします。

  2. [ブラウズ]からプロキシユーザを選択し、[OK]をクリックします。

  3. 次の権利の選択を解除します。

    • エントリのブラウズ権
    • すべてのプロパティの読み込みおよび比較権

  4. [選択された権利]をクリックし、プロキシユーザの継承可能な権利(メールストップ、電話番号など)をすべて選択します。

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

  1. ConsoleOneで、LDAPグループオブジェクトを右クリックします。

  2. [プロパティ]>[全般]タブの順にクリックします。

  3. [プロキシユーザ名]フィールドにeDirectoryユーザオブジェクトの名前を入力します。


eDirectoryユーザで接続する

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

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


クリアテキストパスワードを許可する

デフォルトでは、クリアテキストの(暗号化されていない)パスワードを使用したeDirectoryユーザバインド要求は拒否されます。非SSL接続のLDAPクライアントから入力されたクリアテキストのパスワードおよびeDirectoryユーザ名は、ネットワーク監視装置を使用して捕捉できます。捕捉したeDirectoryユーザ名とパスワードを使用すると、そのユーザ名がアクセス権を持つすべてのeDirectoryオブジェクトに直接アクセスできます。以上の理由から、SSLを使用するLDAPサーバ上でデータを転送するほうが、eDirectoryユーザバインドのセキュリティレベルが向上します。

非SSL接続上でのeDirectoryユーザバインドをサポートするには、LDAPグループオブジェクト内でクリアテキストのパスワードを設定する必要があります。

  1. ConsoleOneで、LDAPグループオブジェクトを右クリックします。

  2. [プロパティ]>[全般]タブの順にクリックします。

  3. [クリアテキストパスワードを許可する]をクリックします。


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

LDAPクライアントにeDirectory権を割り当てるには、次を実行します。

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

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

    詳細については、「LDAPを使用してeDirectoryへ接続する」を参照してください。

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

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

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

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


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

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

スキーマとは、ディレクトリで使用できるクラスと属性、およびディレクトリの構造(クラス間の相互関係)を定義する一連の規則です。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. ConsoleOneで、LDAPグループオブジェクトを右クリックします。

  2. [属性マップ]タブをクリックします。

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

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

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


LDAPグループクラスをマッピングする

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

  1. ConsoleOneで、LDAPグループオブジェクトを右クリックします。

  2. [クラスマップ]タブをクリックします。

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

    LDAP Services for eDirectoryでは、LDAPクラスと属性のサブセットからeDirectoryクラスと属性のサブセットへのマッピングが事前設定されています。

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


補助クラス


LDAPサーバをリフレッシュする

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

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

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

  1. ConsoleOneで、LDAPサーバオブジェクトを右クリックします。

  2. [プロパティ]をクリックします。

  3. [全般]タブで、[LDAPサーバを即時リフレッシュ]をクリックします。


多対一マッピング

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

たとえば、LDAPを使用してCnを作成し、attributeclass=CommonNameを検索すると、Cnが返される場合があります。

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

表 102」に多対一クラスマッピングを、「表 103」に多対一属性マッピングを示します。


表 102. 多対一LDAPクラスマッピング

LDAPクラス名 eDirectoryクラス名

MailGroup

rfc822mailGroup

NSCP:mailGroup1

GroupOfNames

GroupOfUniqueNames

Group

Group


表 103. 多対一LDAP属性マッピング

LDAP属性名 eDirectory属性名

C

Country Name

C

Cn

CommonName

CN

Description

MultiLineDescription

説明

L

Localityname

L

Member

uniqueMember

Member

o

organizationname

O

ou

organizationalUnitName

OU

sn

surname

Surname

st

stateOrProvinceName

S

certificateRevocationList;binary

certificateRevocationList

CertificateRevocationList

authorityRevocationList;binary

authorityRevocationList

AuthorityRevocationList

deltaRevocationList;binary

deltaRevocationList

DeltaRevocationList

cACertificate;binary

cACertificate

CACertificate

crossCertificatePair;binary

crossCertificatePair

CrossCertificatePair

userCertificate;binary

userCertificate

UserCertificate


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

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

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

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

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

  1. ConsoleOneで、LDAPサーバオブジェクトを右クリックします。

  2. [プロパティ]>[全般]タブの順にクリックします。

  3. [非標準のクライアントスキーマ互換モードを有効にする]>[NLDAPサーバを即時リフレッシュ]の順にクリックします。

  4. [適用]>[OK]の順にクリックします。

    LDAP Modifyコールを使用してこの属性を追加および設定することもできます。LDAPを使用してこの属性を設定した場合は、LDAPサーバをリフレッシュする必要があります。詳細については、「LDAPサーバをリフレッシュする」を参照してください。


専用LDAPスキーマファイル

Novellダウンロードサイトから、次の専用LDAPスキーマファイルを取得できます。


NetWareへスキーマファイルを適用する
  1. .SCHファイルをSYS:SYSTEM\SCHEMAディレクトリにコピーします。

  2. サーバコンソールからNWCONFIG.NLMを実行します。

  3. [ディレクトリオプション]>[スキーマの拡張]の順に選択します。

  4. 管理者名とパスワードを使用してログインします。

  5. <F3>キーを押して、別のパスを指定します。

  6. 「SYS:SYSTEM\SCHEMA\」と.SCHファイル名を入力します。

  7. ConsoleOneで、LDAPサーバオブジェクトを右クリックします。

  8. [プロパティ]>[LDAPサーバを即時リフレッシュ]の順にクリックします。


NTへスキーマファイルを適用する
  1. INSTALL.DLMをロードします。

  2. [追加のスキーマファイルのインストール]を選択します。

  3. 管理者名とパスワードを使用してログインしてから、スキーマファイルを選択します。

eDirectoryでは、LDAP LDIFスキーマ拡張もサポートされます。詳細については、「LDIFを使用してスキーマを拡張する」を参照してください。


LinuxおよびSolarisへスキーマを適用する

LinuxまたはSolarisシステムでスキーマを適用するために、ndsschユーティリティを使用できます。詳細については、「ndsschユーティリティを使用して、LinuxまたはSolarisシステム上のスキーマを拡張する」を参照してください。


構文の相違

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 and Kaye)

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


複数のネーミング属性

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

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

Smith (CNはSmith CN=Smith)

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

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


サポートされるNovell LDAPコントロールおよび拡張

LDAPクライアントとLDAPサーバは、LDAP 3プロトコルを使用することにより、コントロールと拡張を適用してLDAP操作を拡張できます。コントロールと拡張を使用することによって、要求や応答の一部として追加情報を指定できます。拡張された各操作はOIDにより識別されます。LADPクライアントは、実行したい拡張操作のOIDおよびその拡張操作に固有なデータを指定した拡張操作要求を送信できます。LDAPサーバはこの要求を受信すると、拡張操作を実行し、OIDと追加データが設定された応答をクライアントに送信します。

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

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

拡張操作を実行可能にするために、LDAP 3プロトコルはサーバに、ルートDSE内のsupportedControl属性およびsupportedExtension属性に含まれるサポートされているコントロールと拡張のリストの提供を求めます。ルートDSE(DSEはDSA (Directory System Agent) Specific (固有) Entry (エントリ)の略)とは、ディレクトリ情報ツリー(DIT)のルートにあるエントリです。

表 104」にサポートされているLDAP拡張を示します。


表 104. サポートされているLDAP拡張

LDAP拡張 拡張タイプ 説明

Refresh LDAP Server

システム

LDAPサーバは、その環境設定内容をDSから再度読み取ったあと、再起動できます。

LBURP

オプション

LBURP (LDAP Bulk Update/Replication Protocol(LDAPバルク更新・複製プロトコル))eDirectoryインポート/エクスポートユーティリティでは、ネットワークとeDirectoryサーバの処理をできるだけ効率化するために、サーバへのデータ転送にLBURPを使用します。LDIFのインポート時にLBURPを使用することにより、LDIFのインポートにかかる時間が大幅に短縮されます。

libldapxs

オプション

eDirectoryドメイン名とLDAPドメイン名の間の変換を行います。

LDAP Partitioning

オプション

レプリカの追加、削除、レプリカ情報の変更、取得、レプリカの一覧表示など、レプリカ操作を実行します。

Identity Management

オプション

コンテキストの命名および管理を実行します。

表 105」にサポートされているLDAPコントロールを示します。


表 105. サポートされているLDAPコントロール

LDAPコントロール 説明

Virtual List View

サーバに検索要求を送るときに、サーバ側でのソートコントロールとこのコントロールを追加すると、サーバは検索結果をソートしてから、指定されたサブセットに属するエントリをクライアントに返送します。

このコントロールの要求OIDは1.2.840.113556.3.4.9です。このコントロールの応答OIDは1.2.840.113556.3.4.10です。

Server Side Sort

サーバに検索要求を送るときにこのコントロールを追加すると、サーバは検索結果をソートしてから、その結果をクライアントに返送します。

このコントロールの要求OIDは1.2.840.113556.1.4.473、応答OIDは1.2.840.113556.1.4.474です。

Persistent Search

サーバに検索要求を送るときにこのコントロールを追加すると、サーバは検索結果をクライアントに返して、クライアントとの接続を維持します。ローカルサーバ上のエントリに対して、指定した検索フィルタに一致する変更が行われた場合は、サーバはクライアントに通知します。

このコントロールの要求OIDは2.16.840.1.113730.3.4.3です。このコントロールの応答OIDは2.16.840.1.113730.3.4.7です。