第7章 スキーマ定義


ディレクトリースキーマは、ディレクトリーへのデータの保存方法を定義する一連のルールです。ディレクトリー情報は個別のエントリーに保存され、各エントリーは属性のセットとその値で構成されます。エントリーで説明されるアイデンティティーの種類は、エントリーのオブジェクトクラスで定義されます。オブジェクトクラスは、オブジェクトクラスの定義された属性セットでエントリーが記述するオブジェクトの種類を指定します。

基本的に、スキーマファイルは、作成できるエントリーの種類 (オブジェクトクラス) と、それらのエントリーを記述する方法 (属性) のリストです。スキーマは、オブジェクトクラスおよび属性を 定義 します。スキーマは、属性値に含まれる形式 (属性の 構文) と、その属性のインスタンスが 1 つだけであるかどうかも定義します。

追加のスキーマファイルを Directory Server 設定に追加してサーバーにロードできるため、スキーマはカスタマイズ可能であり、必要に応じて拡張できます。

警告

スキーマ定義に文字数が多すぎると、Directory Server は起動に失敗します。これらの場所では、LDAP 標準で、NAME キーワードと属性タイプの名前など、ゼロまたは多数のスペースを使用できるようにするスペースを 1 つだけ使用します。

7.1. オブジェクトクラス

LDAP では、オブジェクトクラスはエントリーの定義に使用できる属性のセットを定義します。LDAP 標準仕様は、ユーザー (person および inetOrgPerson)、グループ (groupOfUniqueNames)、場所 (locality)、組織および部門 (organization および organizationalUnit)、および機器 (device) など、多くの一般的なエントリーに対するオブジェクトクラスを提供します。

スキーマファイルでは、オブジェクトクラスは objectclasses 行によって識別され、その後 OID、名前、説明、その直接の上位オブジェクトクラス (オブジェクトクラスと使用する必要のあるオブジェクトクラス、およびそのオブジェクトクラスと属性を共有するのに必要なオブジェクトクラス)、および必須属性のリスト (MUST) および許可される属性のリスト (MAY) が続きます。次の例で、この点を説明します。

例7.1 個人のオブジェクトクラススキーマエントリー

objectClasses: ( 2.5.6.6 NAME 'person' DESC 'Standard LDAP objectclass' SUP top MUST ( sn $ cn ) MAY ( description $ seeAlso $ telephoneNumber $ userPassword ) X-ORIGIN 'RFC 2256' )
Copy to Clipboard Toggle word wrap

7.1.1. 必須および許可される属性

すべてのオブジェクトクラスは、多数の必須属性と許可される属性を定義します。必須属性は、指定されたオブジェクトクラスを使用するエントリーに存在する必要がありますが、許可された属性は許可されており、エントリーで使用できますが、エントリーが有効である必要はありません。

Person オブジェクトクラススキーマエントリー と同様に、person オブジェクトクラスには cnsn、および objectClass 属性が必要であり、descriptionseeAlsotelephoneNumber、および userPassword 属性が許可されます。

注記

すべてのエントリーには、エントリーに割り当てられたオブジェクトクラスをリスト表示する objectClass 属性が必要です。

7.1.2. オブジェクトクラスの継承

エントリーには、複数のオブジェクトクラスを含めることができます。たとえば、個人のエントリーは person オブジェクトクラスで定義されますが、同じユーザーが inetOrgPerson および organizationalPerson オブジェクトクラスの属性で記述することもできます。

さらに、オブジェクトクラスは階層的に実行できます。オブジェクトクラスは、独自の必須属性と許可される属性に加えて、別のクラスから属性を継承できます。2 つ目のオブジェクトクラスは、最初のオブジェクトクラスの superior オブジェクトクラスです。

サーバーのオブジェクトクラス構造は、特定のエントリーに必要な属性と許可される属性のリストを決定します。たとえば、ユーザーのエントリーには inetOrgPerson オブジェクトクラスが必要です。その場合、エントリーには、inetOrgPersonorganizationalPerson の上位オブジェクトクラスと、organizationalPerson の上位オブジェクトクラスである person も含める必要があります。

objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
Copy to Clipboard Toggle word wrap

inetOrgPerson オブジェクトクラスがエントリーに割り当てられている場合、エントリーは上位オブジェクトクラスから必要な属性および許可される属性を自動的に継承します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat