このセクションでは、LDAPスキーマの相違点、クラスと属性のマッピング、補助クラスのサポート、およびLDAP構文について説明します。
すべてのLDAPクライアントが、次のユーザタイプの1つとしてeDirectoryにバインドまたは接続されます。
ユーザの認証に使用されるバインドタイプは、LDAPクライアントがアクセスできる内容に影響を及ぼします。LDAPクライアントがディレクトリにアクセスするには、要求を作成して、その要求をディレクトリに送信する必要があります。LDAPクライアントがLDAP Services for eDirectoryを通して要求を送信した場合、eDirectoryは、その要求の中でLDAPクライアントが適切なアクセス権を持つ属性だけを処理します。たとえば、LDAPクライアントがある属性値を要求した(読み込み権が必要)が、その属性についてユーザに許可されているのが比較権だけである場合には、この要求は拒否されます。
標準ログイン制限とパスワード制限は引き続き適用されますが、すべての制限はLDAPを実行している場所を基準にして決定されます。時刻およびアドレス制限が適用されますが、アドレス制限はeDirectoryログインが実行された場所(この場合にはLDAPサーバ)を基準にして決定されます。
匿名バインドは、ユーザ名またはパスワードを使用しない接続です。サービスでプロキシユーザの使用が設定されていない場合に、名前とパスワードを定義されていない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上で確立されていました。ただし、インストール中に別のポートを手動で設定して、アクティブディレクトリなどの他のノード上で匿名バインドを確立することもできます。
次に、プロキシユーザ匿名バインドに関する重要な概念について説明します。
プロキシユーザに対して、選択されたプロパティへの権利だけを許可するには、次を実行します。
プロキシユーザが権利を持つ最上位のコンテナを右クリックし、[このオブジェクトのトラスティを追加]をクリックします。
[ブラウズ]からプロキシユーザを選択し、[OK]をクリックします。
次の権利の選択を解除します。
[選択された権利]をクリックし、プロキシユーザの継承可能な権利(メールストップ、電話番号など)をすべて選択します。
プロキシユーザ匿名バインドを実装するには、eDirectory内にプロキシユーザオブジェクトを作成して、そのユーザに適切な権利を割り当てる必要があります。アクセスする必要がある各サブツリー内のすべてのオブジェクトと属性に対するプロキシユーザ読み込み権および検索権を割り当てます。同じプロキシユーザ名を指定して、LDAP Services for eDirectory内でプロキシオブジェクトを有効化する必要があります。
ConsoleOneで、LDAPグループオブジェクトを右クリックします。
[プロパティ]>[全般]タブの順にクリックします。
[プロキシユーザ名]フィールドにeDirectoryユーザオブジェクトの名前を入力します。
eDirectoryユーザバインドは、LDAPクライアントが完全なeDirectoryユーザ名とパスワードを使用して確立する接続です。eDirectoryユーザバインドはeDirectoryにより認証されます。LDAPクライアントは、そのeDirectoryユーザにアクセスが許可されているすべての情報にアクセスできます。
次に、eDirectoryユーザバインドに関する重要な概念について説明します。
デフォルトでは、クリアテキストの(暗号化されていない)パスワードを使用したeDirectoryユーザバインド要求は拒否されます。非SSL接続のLDAPクライアントから入力されたクリアテキストのパスワードおよびeDirectoryユーザ名は、ネットワーク監視装置を使用して捕捉できます。捕捉したeDirectoryユーザ名とパスワードを使用すると、そのユーザ名がアクセス権を持つすべてのeDirectoryオブジェクトに直接アクセスできます。以上の理由から、SSLを使用するLDAPサーバ上でデータを転送するほうが、eDirectoryユーザバインドのセキュリティレベルが向上します。
非SSL接続上でのeDirectoryユーザバインドをサポートするには、LDAPグループオブジェクト内でクリアテキストのパスワードを設定する必要があります。
ConsoleOneで、LDAPグループオブジェクトを右クリックします。
[プロパティ]>[全般]タブの順にクリックします。
[クリアテキストパスワードを許可する]をクリックします。
LDAPクライアントにeDirectory権を割り当てるには、次を実行します。
LDAPクライアントがeDirectoryにアクセスするときに使用するユーザ名のタイプを決定します。
詳細については、「LDAPを使用してeDirectoryへ接続する」を参照してください。
ユーザが1つのプロキシユーザまたは複数のeDirectoryユーザ名を使用してLDAPにアクセスする場合、ConsoleOneを使用してこれらのユーザ名をeDirectory内またはLDAPで作成します。
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 Services for eDirectory環境設定には、定義済みのクラスと属性のマッピングが保存されています。これらのマッピングは、LDAP属性のサブセットからeDirectory属性のサブセットへのマッピングです。デフォルト環境設定でマッピングされていない属性には、自動生成されたマッピングが割り当てられます。スキーマ名がスペースまたはコロンを含まない有効なLDAP名である場合は、マッピングは必要ありません。クラスおよび属性のマッピングを調べて、必要に応じて再設定します。
ConsoleOneで、LDAPグループオブジェクトを右クリックします。
[属性マップ]タブをクリックします。
必要に応じて属性を追加、削除、または変更します。
LDAP属性の種類によっては別名(CNおよび共通名など)が存在する場合があるため、複数のLDAP属性を対応する1つのeDirectory属性名にマッピングする必要が生じることがあります。LDAP Services for eDirectoryがLDAP属性情報を返す場合、リスト内で検出された最初の一致する属性の値が返されます。
複数のLDAP属性を1つのeDirectory属性にマッピングする場合には、属性の順序に意味があります。リスト内の順序を変更することにより、属性の優先度を変更できます。
LDAPクライアントがLDAPサーバにLDAPクラス情報を要求すると、サーバは対応するeDirectoryクラス情報を返します。デフォルトのLDAP Services for eDirectory環境設定には、定義済みのクラスと属性のマッピングが保存されています。
ConsoleOneで、LDAPグループオブジェクトを右クリックします。
[クラスマップ]タブをクリックします。
必要に応じてクラスを追加、削除、または変更します。
LDAP Services for eDirectoryでは、LDAPクラスと属性のサブセットからeDirectoryクラスと属性のサブセットへのマッピングが事前設定されています。
デフォルトのLDAP Services for eDirectory環境設定には、定義済みのクラスと属性のマッピングが保存されています。これらのマッピングは、LDAPクラスと属性のサブセットからeDirectoryクラスと属性のサブセットへのマッピングです。デフォルト環境設定でマッピングされていない属性またはクラスには、自動生成されたマッピングが割り当てられます。スキーマ名がスペースまたはコロンを含まない有効なLDAP名である場合は、マッピングは必要ありません。クラスおよび属性のマッピングを調べて、必要に応じて再設定します。
LDAPディレクトリとeDirectoryディレクトリのスキーマは異なるため、LDAPクラスと属性を、適切なeDirectoryオブジェクトと属性へマッピングする必要があります。これらのマッピングで、LDAPスキーマからeDirectoryスキーマへの名前の変換を定義します。
有効なLDAPスキーマ名であれば、スキーマエントリに対するLDAPスキーママッピングは必要ありません。LDAPでは、スキーマ名で使用できる文字は英数字とハイフン記号(-)だけです。LDAPスキーマ名ではスペースは使用できません。
スキーマをLDAPの外部に拡張する場合、.SCHファイルなどLDAPの外部にスキーマを拡張した後でオブジェクトIDによる検索を確実に実行するには、LDAPサーバ環境設定をリフレッシュする必要があります。
ConsoleOneで、LDAPサーバオブジェクトを右クリックします。
[プロパティ]をクリックします。
[全般]タブで、[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属性マッピング
eDirectoryには、互換モードスイッチがあります。この機能により、非標準スキーマ出力が使用できるため、現行のADSIクライアントおよび従来のNetscapeクライアントでスキーマを読み込むことができます。このスイッチは、LDAPサーバオブジェクト内の属性を設定することにより実装されます。属性名はnonStdClientSchemaCompatModeです。通常の場合、LDAPサーバオブジェクトはサーバオブジェクトと同じコンテナ内にあります。
非標準出力は、LDAP用の現行IETF規格には適合しませんが、現行バージョンのADSIクライアントおよび従来のNetscapeクライアントでは正常に処理できます。
非標準出力の出力形式は次のとおりです。
非標準スキーマ出力を有効化するには、次を実行します。
ConsoleOneで、LDAPサーバオブジェクトを右クリックします。
[プロパティ]>[全般]タブの順にクリックします。
[非標準のクライアントスキーマ互換モードを有効にする]>[NLDAPサーバを即時リフレッシュ]の順にクリックします。
[適用]>[OK]の順にクリックします。
LDAP Modifyコールを使用してこの属性を追加および設定することもできます。LDAPを使用してこの属性を設定した場合は、LDAPサーバをリフレッシュする必要があります。詳細については、「LDAPサーバをリフレッシュする」を参照してください。
Novellダウンロードサイトから、次の専用LDAPスキーマファイルを取得できます。
デフォルトのLDAPスキーマは、オブジェクトクラスinetOrgPersonをeDirectoryユーザクラスにマッピングします。これは直接マッピングであり、スキーマ拡張ではないため、ユーザの属性はinetOrgPersonに適用されます。
Novell eDirectoryダウンロードサイトにNOV_INET.ZIPファイルがあります。このファイルには、別のスキーマ拡張ファイル(NOV_INET.SCH)と、eDirectoryユーザクラスを変更して、すべての属性をRFC 2798の定義に準拠させるための指示(NOV_INET.TXT)が格納されています。このスキーマ拡張を追加すると、IETFにより指定されたすべてのRFC属性およびNetscape属性を持つオブジェクトクラスが出現します。
このリリースとともに提供されているデフォルトのスキーマファイルでは、residentialPerson用のオブジェクトクラス定義は提供されていません。eDirectoryダウンロードサイトにRPERSON.ZIPファイルがあります。このファイルには、スキーマ拡張ファイル(RPERSON.SCH)と説明ファイル(RPERSON.TXT)が保管されています。 このオブジェクトクラスを使用する場合は、residentialPersonを単にeDirectoryユーザクラスにマッピングするのではなく、スキーマを拡張することをお勧めします。
このリリースとともに提供されているデフォルトのスキーマファイルでは、newPilotPerson用のオブジェクトクラス定義は提供されていません。eDirectoryダウンロードサイトにNPERSON.ZIPファイルがあります。このファイルには、スキーマ拡張ファイル(NPERSON.SCH)と説明ファイル(NPERSON.TXT)が保管されています。 このオブジェクトクラスを使用する場合は、newPilotPersonを単にeDirectory内のユーザにマッピングするのではなく、スキーマを拡張します。
photo属性を含むようにスキーマを拡張する場合、この属性はこのクラスのこれまでの定義と矛盾することがあります。photo属性は、INETORGPERSON.ZIPファイルまたはすでに説明したNOV_INET.ZIPスキーマ拡張ファイルに含まれています。photo属性は、SYN_STREAM (eDirectory内の単一の値)またはSYN_OCTET_STRING (複数の値)として定義できます。 RFC 1274では、photoは最大長250,000オクテットの複数値データ列として定義されています。eDirectoryでは、SYN_OCTET_STRINGの中で最大長63,000オクテットが許可されます。希望するphoto制限の選択が必要です。 inetOrgPersonのスキーマ拡張ファイルには、複数値およびSYN_OCTET_STRINGに基づくldapPhoto属性定義が含まれています。
.SCHファイルをSYS:SYSTEM\SCHEMAディレクトリにコピーします。
サーバコンソールからNWCONFIG.NLMを実行します。
[ディレクトリオプション]>[スキーマの拡張]の順に選択します。
管理者名とパスワードを使用してログインします。
<F3>キーを押して、別のパスを指定します。
「SYS:SYSTEM\SCHEMA\」と.SCHファイル名を入力します。
ConsoleOneで、LDAPサーバオブジェクトを右クリックします。
[プロパティ]>[LDAPサーバを即時リフレッシュ]の順にクリックします。
INSTALL.DLMをロードします。
[追加のスキーマファイルのインストール]を選択します。
管理者名とパスワードを使用してログインしてから、スキーマファイルを選択します。
eDirectoryでは、LDAP LDIFスキーマ拡張もサポートされます。詳細については、「LDIFを使用してスキーマを拡張する」を参照してください。
LinuxまたはSolarisシステムでスキーマを適用するために、ndsschユーティリティを使用できます。詳細については、「ndsschユーティリティを使用して、LinuxまたはSolarisシステム上のスキーマを拡張する」を参照してください。
LDAPとeDirectoryでは使用される構文が異なります。重要な相違点は次のとおりです。
LDAPでは、区切り記号としてピリオドではなくカンマを使用します。たとえば、eDirectoryでの識別名(完全名)は次のように記述されます。
LDAP構文を使用すると、同じ識別名は次のようになります。
LDAP識別名の例を次に示します。
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つの異なる相対識別名によって参照される必要があるため、同じコンテキスト内に共存することができます。
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拡張
「表 105」にサポートされているLDAPコントロールを示します。
表 105. サポートされているLDAPコントロール