Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

3.4.4. 新規オブジェクトクラスを定義するストラテジー

新しいオブジェクトクラスを作成する方法は 2 つあります。
  • 属性を追加する各オブジェクトクラス構造に対して、多くの新規オブジェクトクラスを作成します。
  • ディレクトリーに作成されるすべてのカスタム属性をサポートする単一のオブジェクトクラスを作成します。この種類のオブジェクトクラスは、補助オブジェクトクラスとして定義して作成します。
2 つのメソッドを混在させることが最も簡単な場合があります。
たとえば、管理者が属性 exampleDateOfBirthexamplePreferredOSexampleBuildingFloor、および exampleVicePresident を作成するとします。簡単なソリューションは、これらの属性のサブセットを許可する複数のオブジェクトクラスを作成することです。
  • 1 つのオブジェクトクラス examplePerson を作成し、exampleDateOfBirth および examplePreferredOS を許可します。examplePerson の親は inetOrgPerson です。
  • 2 つ目のオブジェクトクラス exampleOrganization は、exampleBuildingFloorexampleVicePresident を許可します。exampleOrganization の親は organization オブジェクトクラスです。
新しいオブジェクトクラスは、以下のように LDAPv3 スキーマ形式で表示されます。
objectclasses: ( 2.16.840.1.117370.999.1.2.3 NAME 'examplePerson' DESC 'Example Person Object Class'
     SUP inetorgPerson MAY (exampleDateOfBirth $ examplePreferredOS) )

objectclasses: ( 2.16.840.1.117370.999.1.2.4 NAME 'exampleOrganization' DESC 'Organization Object Class'
     SUP organization MAY (exampleBuildingFloor $ exampleVicePresident) )
または、これらの属性をすべて許可するオブジェクトクラスを 1 つ作成し、これらの属性を必要とするエントリーと共に使用ます。単一のオブジェクトクラスは以下のようになります。
objectclasses: (2.16.840.1.117370.999.1.2.5 NAME 'exampleEntry' DESC 'Standard Entry Object Class' SUP top
     AUXILIARY MAY (exampleDateOfBirth $ examplePreferredOS $ exampleBuildingFloor $ exampleVicePresident) )
新しい exampleEntry オブジェクトクラスには AUXILIARY というマークが付き、構造的なオブジェクトクラスとは無関係に任意のエントリーと共に使用できることを意味します。
注記
例の新規オブジェクトクラスの OID (2.16.840.1.117370) は、以前の Netscape OID プレフィックスに基づいています。カスタムオブジェクトクラスを作成するには、「オブジェクト識別子の取得と割り当て」の説明に従って OID を取得します。
組織環境に応じて、新規オブジェクトクラスを整理する方法はいくつかあります。新しいオブジェクトクラスの実装方法を決定する際に、以下を考慮してください。
  • 複数のオブジェクトクラスによって、作成および維持するスキーマ要素がより多くなります。
    通常、要素の数が小さいため、メンテナンスはほとんど必要ありません。ただし、スキーマに 2 つ以上のオブジェクトクラスが追加されている場合は、単一のオブジェクトクラスを使用するのがより簡単です。
  • 複数のオブジェクトクラスの場合には、より注意深い厳密なデータ設計が必要です。
    厳密なデータ設計により、すべてのデータが置かれるオブジェクトクラス構造に注意を払うことが強制されます。これには、便利な面と面倒な面があります。
  • 人とアセットエントリーの両方など、複数のタイプのオブジェクトクラスに適用できるデータがある場合に、単一のオブジェクトクラスはデータ設計を簡素化します。
    たとえば、カスタムの preferredOS 属性は、ユーザーエントリーとグループエントリーの両方に設定できます。単一のオブジェクトクラスは両方のタイプのエントリーでこの属性を許可できます。
  • 新規オブジェクトクラスには、必要な属性は使用しないでください。
    新規オブジェクトクラスの属性に 許可 ではなく 必要 を指定すると、スキーマが柔軟ではなくなります。新規オブジェクトクラスを作成する場合には、できるだけ 必要 でなく 許可 を使用します。
    新しいオブジェクトクラスを定義したら、許可および必要な属性、ならびに属性を継承するオブジェクトクラスを決定します。