3.1.1.2.4.6 Auxiliary Class

Active Directory provides support for statically linking auxiliary classes to the classSchema definition of another object class. When an auxiliary class aux is statically linked to some other class cl, it is as if all of the mandatory and optional attributes of the auxiliary class aux are added to the class cl.

The governsID of auxiliary class aux is contained in the auxiliaryClass attribute of cl if aux was statically linked to cl by modifying the auxiliaryClass attribute of cl's classSchema definition as specified in section 3.1.1.3.1.1.5. The governsID of auxiliary class aux is contained in the systemAuxiliaryClass attribute of cl if aux was statically linked to cl by modifying the systemAuxiliaryClass attribute of cl's classSchema definition as specified in section 3.1.1.3.1.1.5.

A statically linked auxiliary class with mandatory attributes MUST be linked to the class cl through the systemAuxiliaryClass attribute of cl at the time cl is defined as described in section 3.1.1.3.1.1.5. The objectClass attribute of objects of class cl does not include the names of statically linked auxiliary classes or the classes in their superclass chains.

Active Directory also provides support for dynamically linking auxiliary classes on objects, which reflects the model of auxiliary object classes described in [X501] section 8.3.3. In this case, the dynamically linked auxiliary class affects only the individual object to which it is linked, as opposed to a statically linked auxiliary class, which is linked to a class and affects every object of that class. The classSchema of the class is not affected by dynamic auxiliary classes. When an auxiliary class is dynamically linked to an object, the mandatory and optional attributes of the auxiliary class become mandatory and optional attributes of the object. Refer to section 3.1.1.3.1.1.5 for auxiliary class related LDAP operations supported by Active Directory.

If an object is dynamically linked to one or more auxiliary classes, attribute objectClass of the object contains the following values in the order described below.

  1. Class top remains as the first value;

  2. Then it is followed by the set of dynamic auxiliary classes and the classes in their superclass chains, excluding those already present in the superclass chain of the most specific structural class. There is no specific order among the classes in this set, and no class is listed more than once.

  3. Next, the classes in the superclass chain of the most specific structural class are listed after that, in the order of inheritance from top.

  4. The most specific structural class remains last in the sequence.

The auxiliaryClass or systemAuxiliaryClass attributes are not affected by dynamic auxiliary classes.

For example, a user object with auxiliary class mailRecipient dynamically added has the following five-element sequence as the value of objectClass:

[ top, mailRecipient, person, organizationalPerson, user ]

Dynamic auxiliary classes are not supported when the forest functional level is DS_BEHAVIOR_WIN2000.