Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We want to store the schema into ADS as any other entries. We have to define the minimum set of ObjectClasses an AttributeTypes needed to be able to bootstrap the schema.

All the ObjectClass will depend on the MetaObjectClass element, which is hard wired in the server.
All the AttributeTypes will depend on the MetaAttributeType element, which is hard wired in the server.

Note

The new Syntaxes will use the OIDs 1.3.6.1.4.1.18060.1.1.0.1.N
The new MatchingRules will use the OIDs 1.3.6.1.4.1.18060.1.1.0.2.N
The new AttributesType will use the OIDs 1.3.6.1.4.1.18060.1.1.0.3.N
The new ObjectClasses will use the OIDs 1.3.6.1.4.1.18060.1.1.0.4.N

Here, the prefix 1.3.6.1.4.1.18060 is the one declared to IANA to represent the Apache Foundation and the next 1.1 values are used specifically for Apache Directory.

...

We now can define the schemas, using this meta schema

system

...

ObjectClass top

Section
Column
width50%
top as of

RFC 4512

Code Block
objectclass ( 2.5.6.0 
    NAME 'top' 
    DESC 'top of the superclass chain' 
    ABSTRACT 
    MUST objectClass 
)
Column
width50%
top using

Using MetaSchema

top is a very special ObjectClass, as it is the only one which can't be described with the MetaSchema, because top can't depend on itself because it can't exist before being created ! top will be hard wired in the server. Here is the LDIF file which could be used if we were to include it into the server :

Code Block

dn: Name=top,cn=schema


objectclass=metaObjectClass


name: top


desc: top of the superclass chain


type: ABSTRACT
must: objectClass

...

ObjectClass alias

Section
Column
width50%

RFC 4512

Code Block

objectclass ( 2.5.6.1 
    NAME 'alias' 
    DESC 'RFC2256: an alias' 
    SUP top 
    STRUCTURAL 
    MUST aliasedObjectName 
)
Column
width50%

Using MetaSchema

Code Block

dn: Name=alias,cn=schema
objectclass=top
name: alias
desc: RFC2256: an alias
type: STRUCTURAL
must: aliasedObjectName
must: objectClass