Based on RFC 4512, object classes can be a combination of three different types:
- Abstract object classes
- Used as the base object class from which structural or auxiliary classes inherit its
properties.
This inheritance is a one-way relationship because abstract object classes cannot be derived from structural or auxiliary classes. The most common abstract object class is
top
, which defines the highest level object class in a hierarchical chain of object classes. - Structural object classes
- Define the basic attributes in an entry and define where an entry can be placed in a
directory information tree (DIT).
All entries in a DIT belong to one structural object class. Structural object classes can inherit properties from other structural object classes and from abstract object classes to form a chain of inherited classes. For example, the
inetOrgPerson
structural object class inherits properties from theorganizationalPerson
structural class, which inherits from another object class, person. - Auxiliary object classes
- Used together with structural object classes to define additional sets of attributes
required in an entry.
The auxiliary object class cannot form an entry alone but must be present with a structural object class. Auxiliary object classes cannot derive from structural object classes or vice-versa. They can inherit properties from other auxiliary classes and from abstract classes.