3.2. 標準スキーマ
ディレクトリースキーマは、データ値のサイズ、範囲、および形式に制約を設定することにより、ディレクトリーに保存されているデータの整合性を維持します。スキーマは、ディレクトリーに含まれるさまざまな種類のエントリー (人、デバイス、組織など) と、各エントリーで使用可能な属性を識別します。
Directory Server の定義済みスキーマには、サーバーの機能をサポートするための標準 LDAP スキーマとアプリケーション固有のスキーマの両方が含まれています。ディレクトリーの固有のニーズに対応するために、新しいオブジェクトクラスと属性を追加してスキーマを拡張できます。
3.2.1. スキーマの形式 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server のスキーマ形式は、LDAP プロトコルのバージョン 3 に基づいてビルドされています。このプロトコルでは、Directory Server は LDAP 自体によりそのスキーマを公開する必要があります。これにより、ディレクトリークライアントアプリケーションがプログラム的にスキーマを取得し、その動作を調整することができます。Directory Server のグローバルスキーマセットは、cn=schema エントリーにあります。
Directory Server スキーマは、プロプライエタリーオブジェクトクラスおよび属性を使用するため、LDAPv3 スキーマとは異なります。さらに、スキーマエントリーが元々どこで定義されたかを説明する、X-ORIGIN 389 Directory Server と呼ばれるスキーマエントリー内のプライベートフィールドを使用します。
標準 LDAPv3 スキーマでスキーマエントリーを定義する場合、X-ORIGIN 389 Directory Server フィールドは RFC 2252 を参照します。Directory Server の使用のためにエントリーが Red Hat によって定義されている場合、X-ORIGIN 389 Directory Server フィールドに 389 Directory Server 値が含まれます。たとえば、標準の person オブジェクトクラスは、以下のようにスキーマに表示されます。
objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard Person Object Class' SUP top MUST (objectclass $ sn $ cn) MAY (description $ seeAlso $ telephoneNumber $ userPassword) X-ORIGIN 'RFC 2252' )
# objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard Person Object Class' SUP top
MUST (objectclass $ sn $ cn) MAY (description $ seeAlso $ telephoneNumber $ userPassword)
X-ORIGIN 'RFC 2252' )
このスキーマエントリーには次のように記載されています。
-
クラスのオブジェクト識別子 (OID) (
2.5.6.6) -
オブジェクトクラスの名前 (
person) -
クラスの説明 (
Standard Person) -
必須属性 (
objectclass, sn, and cn) -
オプション属性 (
description、seeAlso、telephoneNumber、userPassword)
3.2.2. 標準属性 リンクのコピーリンクがクリップボードにコピーされました!
属性には、名前や fax 番号などの特定のデータ要素が含まれます。Directory Server は、特定の情報に関連付けられた説明的なスキーマ属性である属性とデータのペアとしてデータを表します。これらは、attribute-value assertions または AVAs とも呼ばれます。
たとえば、ディレクトリーには、標準属性を持つペアで人の名前などのデータを保存できます。Babs Jensen という名前の人物のエントリーには、属性とデータのペア cn: Babs Jensen があります。
エントリー全体は、一連の属性とデータのペアとして表されます。Babs Jensen のエントリー全体は以下のようになります。
スキーマ内の各属性定義には、次の情報が含まれます。
- 一意な名前
- 属性のオブジェクト識別子 (OID)
- 属性のテキストでの説明
- 属性構文の OID
以下を示す
- 属性が単一値か複数値
- この属性はディレクトリーでの使用を目的とする
- 属性の起点
- 属性に関連付けられた追加の一致ルール
cn 属性の定義は、スキーマ内で次のように表示されます。
attributetypes: ( 2.5.4.3 NAME 'cn' DESC 'commonName Standard Attribute'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetypes: ( 2.5.4.3 NAME 'cn' DESC 'commonName Standard Attribute'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
属性の構文を使用して、属性に格納できる値の形式を定義できます。Directory Server は、すべての標準属性構文をサポートします。
3.2.3. 標準のオブジェクトクラス リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトクラスは、person や fax machine などの実際のオブジェクトを表します。関連する情報をグループ化するために使用されます。オブジェクトクラスを使用する前に、スキーマ内のオブジェクトクラスとその属性を識別する必要があります。ディレクトリーは、デフォルトでオブジェクトクラスの標準リストを認識します。
各ディレクトリーエントリーは、少なくとも 1 つのオブジェクトクラスに属します。スキーマで識別されるオブジェクトクラスをエントリーに配置すると、エントリーが特定の属性値セットを持つことができ、さらに別のより小さな必須属性値セットを持つ必要があることが Directory Server に通知されます。
オブジェクトクラス定義では次の情報が利用できます。
- 一意な名前
- オブジェクト識別子 (OID)
- 必須属性のセット
- 許可属性またはオプション属性のセット
スキーマ内の標準の person オブジェクトクラス:
objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard Person Object Class' SUP top
MUST (objectclass $ sn $ cn) MAY (description $ seeAlso $ telephoneNumber $ userPassword)
X-ORIGIN 'RFC 2252' )
objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard Person Object Class' SUP top
MUST (objectclass $ sn $ cn) MAY (description $ seeAlso $ telephoneNumber $ userPassword)
X-ORIGIN 'RFC 2252' )
オブジェクトクラスは Directory Server で定義され、直接保存されるため、標準の LDAP 操作を使用してディレクトリースキーマをクエリーおよび変更できます。