Attribute für AD User : objectClass
Das Active Directory Attribut objectClass stellt die Einordnung von User-Objekten in der Klassenhierarchie des Active Directory Schemas dar. Hier werden außer der tatsächlichen Klasse "user" auch alle übergeordneten Klassen aufgeführt, von denen sich die User-Klasse ableitet.
objectClass
LDAP Name | objectClass |
Datentyp | String |
Multivalue (Array) | Ja |
System Flags | 0x12 |
Search Flags | 0x08 |
Im Global Catalog? | Ja |
Attribute ID | 2.5.4.0 |
AD DB Attributname | Object-Class |
ADSI datatype | 3 - String(Object Identifier) |
LDAP syntax | 1.3.6.1.4.1.1466.115.121.1.38 - OID |
Wird verwendet in ... | > W2K |
Schema Doku | Microsoft - MSDN |
Die Object-Klasse eines Users ist stets das folgende Array:
- top
- person
- organizationalPerson
- user
Die Klasse user repräsentiert dabei die eigentliche Objektklasse des Benutzers, sie muss auch bei der Erzeugung eines User-Objektes angegeben werden. Diese auch "structural class" genannte Hauptklasse steht bei Active Directory stets an letzter Stelle des Arrays (im Unterschied zu Exchange 5.5-Objektklassen). Wenn man also mit Hilfe des Attributs objectClass sichergehen will, dass ein Objekt auch tatsächlich ein User ist, dann muß man folgende Abfrage einbauen:
Noch einfacher wäre die Verwendung der ADSI-Eigenschaft class, denn hier wird direkt ohne Array die eigentliche Objektklasse "organizationalPerson" zurückgegeben und der Check nach der Objektklasse würde dann so aussehen:
Anmerkung: Wenn man mit dem LDAP-Filter "(objectClass=user)" im Verzeichnis nach Benutzerobjekten suchen möchte, so erhält man neben Usern auch Computern, da diese ebenfalls der Objektklasse "user" zugeordnet sind. Der Filter für echte Benutzer muss hier so lauten: "((&objectClass=user)(objectCategory=Person))" . Nähere Erläuterungen dazu lesen Sie im SelfADSI Tutorial im Abschnitt "Objekte im Verzeichnis suchen".
Die anderen Klassen "organizationalPerson", "person" und "Top" sind die Oberklassen, von denen sich user hierarchisch ableitet. Nach der Erstellung eines Objektes kann das Attribut objectClass nicht mehr geändert werden.