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
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
inetOrgPersonstructural object class inherits properties from the
organizationalPersonstructural 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.