メインコンテンツまでスキップ

RFC 4512 - Lightweight Directory Access Protocol (LDAP): ディレクトリ情報モデル

  • ステータス: Proposed Standard
  • 発行日: June 2006
  • ストリーム: IETF
  • 廃止: RFC2251, RFC2252, RFC2256, RFC3674
  • エラッタ: エラッタなし

概要

Lightweight Directory Access Protocol (LDAP) は、X.500 データおよびサービスモデルに従って動作する分散ディレクトリサービスにアクセスするためのインターネットプロトコルです。このドキュメントは、LDAP で使用される X.500 ディレクトリ情報モデルについて説明します。

1. はじめに

このドキュメントでは、LDAP ディレクトリ情報モデルについて説明します。これらのモデルは X.500 ディレクトリ情報モデル [X.501] に基づいていますが、LDAP の要件に合わせていくつかの点で調整されています。

1.1 他の LDAP 仕様との関係

このドキュメントは、LDAP 技術仕様 [RFC4510] の一部です。これは、[RFC4511] (LDAP プロトコル) およびその他の関連ドキュメントの基礎となるモデルを提供します。

2. ディレクトリユーザー情報モデル

ディレクトリは、オブジェクトに関する情報を含むコレクションです。これらの情報は、ディレクトリ情報ツリー (DIT) に編成されます。

2.1 ディレクトリ情報ツリー (DIT)

DIT は、各ノードがエントリ (Entry) であるツリー構造です。エントリは、現実世界のオブジェクト (人、組織、デバイスなど) を表します。

2.2 エントリの構造

各エントリは、属性 (Attribute) のセットで構成されます。

  • 各属性には、タイプ (Attribute Type) と1つ以上の値 (Attribute Value) があります。
  • 属性タイプはオブジェクト識別子 (OID) によって一意に識別され、通常は短い名前 (例: commonName の場合は cn) があります。

2.3 エントリの命名

各エントリには、DIT 内で一意の名前、相対識別名 (RDN) があります。

  • RDN は、エントリ内の1つ以上の属性値ペア (例: cn=John Doe) で構成されます。
  • エントリの完全な名前は識別名 (DN) であり、これはルートからそのエントリまでのすべての RDN のシーケンスです (例: cn=John Doe,ou=People,dc=example,dc=com)。

2.4 オブジェクトクラス (Object Classes)

各エントリには、objectClass と呼ばれる特別な属性があります。

  • objectClass 属性の値は、エントリに含める必要がある属性 (MANDATORY) と、含めることができる属性 (OPTIONAL) を決定します。
  • オブジェクトクラスは、エントリのタイプ (例: person, organization, device) を定義します。
  • オブジェクトクラスには3つのタイプがあります。
    • ABSTRACT: 抽象クラス。エントリの作成に直接使用することはできず、継承のみ可能です。
    • STRUCTURAL: 構造クラス。エントリのコアタイプを定義します。各エントリは、1つの構造クラスチェーンにのみ属している必要があります。
    • AUXILIARY: 補助クラス。エントリに追加の属性を追加するために使用されます。

2.5 属性記述 (Attribute Descriptions)

属性記述は属性タイプを識別し、オプション (Options) を含めることができます。

  • 形式: attributetype;option;option
  • 一般的なオプションには、言語タグ (例: cn;lang-en) が含まれます。

3. ディレクトリ管理および運用情報

ユーザー情報に加えて、ディレクトリには管理および運用情報も含まれています。

3.2 サブエントリ (Subentries)

サブエントリは、管理情報 (アクセス制御、スキーマ定義など) を格納するために使用される特別なエントリです。サブエントリは通常、検索操作で明示的に要求されない限り表示されません。

3.4 運用属性 (Operational Attributes)

運用属性はサーバーによって維持され、ディレクトリ操作 (例: createTimestamp, creatorsName) を管理するために使用されます。これらは通常、明示的に要求されない限り、通常のユーザー属性と一緒には返されません。

4. ディレクトリスキーマ (Directory Schema)

スキーマは、ディレクトリ内で許可されるオブジェクトクラス、属性タイプ、マッチング規則、および構文を定義します。

4.1 スキーマ定義

LDAP では、LDAP プロトコル自体を介してスキーマ情報を発見および読み取ることができます。スキーマ情報は、サブスキーマサブエントリ (Subschema Subentry) と呼ばれる特別なサブエントリに格納されます。

主なスキーマ要素の定義は次のとおりです。

  • Object Class Definitions: オブジェクトクラスを定義します。
  • Attribute Type Definitions: 属性タイプを定義します。
  • Matching Rule Definitions: 属性値の比較方法を定義します。
  • Attribute Syntax Definitions: 属性値のデータ形式を定義します。

4.2 サブスキーマサブエントリ

クライアントは、ルート DSE (Root DSE) の subschemaSubentry 属性をクエリすることで、特定のエントリを制御するサブスキーマサブエントリを見つけることができます。

5. DSA (サーバー) 情報モデル

LDAP サーバー (DSA - Directory System Agent とも呼ばれます) は、ディレクトリデータを格納するだけでなく、自身の状態と構成に関する情報も維持します。この情報は通常、Root DSE に格納されます。

5.1 サーバー固有のデータ要件

Root DSE には、supportedLDAPVersion, supportedSASLMechanisms, supportedExtension などの属性が含まれており、サーバーの機能をクライアントに通知します。

8. セキュリティに関する考慮事項

このドキュメントでは情報モデルについて説明しており、セキュリティプロトコルについては直接触れていませんが、スキーマ定義とアクセス制御 (サブエントリ経由) はセキュリティと密接に関連しています。


注意: この翻訳は参照用です。詳細については RFC 4512 原文 を参照してください。