🌳LDAP-Grundlagen
🗂️Der Verzeichnisbaum (DIT)
Klick auf › klappt auf, Klick auf den Namen zeigt den Eintrag.
Grün = RDN (Name unter dem Elternteil), blau = Vorfahren. Zusammen ergeben sie den DN. Klick auf einen Vorfahren springt dorthin.
| Attribut | Wert(e) | Rolle |
|---|---|---|
| objectClass | top person organizationalPerson inetOrgPerson posixAccount | MUST · top |
| uidRDN | anna.schmidt | MUST · posixAccount |
| cn | Anna Schmidt | MUST · person |
| sn | Schmidt | MUST · person |
| givenName | Anna | MAY · inetOrgPerson |
| ou | Vertrieb | MAY · organizationalPerson |
anna.schmidt@example.org | MAY · inetOrgPerson | |
| title | Vertriebsleiterin | MAY · organizationalPerson |
| telephoneNumber | +49 30 23125 101 | MAY · person |
| employeeNumber | 1001 | MAY · inetOrgPersonSINGLE-VALUE |
| userPassword | {SSHA}aQRixUDxLtbZ/TGd+murQf+Om0xKqqeV | MAY · person |
| uidNumber | 10001 | MUST · posixAccountSINGLE-VALUE |
| gidNumber | 10000 | MUST · posixAccountSINGLE-VALUE |
| homeDirectory | /home/anna.schmidt | MUST · posixAccountSINGLE-VALUE |
| loginShell | /bin/bash | MAY · posixAccountSINGLE-VALUE |
📚 Quellen: RFC 4512 – LDAP: Directory Information Models · RFC 4519 – LDAP: Schema for User Applications · RFC 2798 – Definition of the inetOrgPerson Object Class · RFC 2307 – An Approach for Using LDAP as a Network Information Service
✂️DN-Zerleger
| Ebene | RDN (roh) | Typ | Wert (entschlüsselt) |
|---|---|---|---|
| Eintrag (RDN) | cn=Schulz\, Frank | cn | „Schulz, Frank“ |
| Vorfahre 1 | ou=people | ou | „people“ |
| Vorfahre 2 | dc=example | dc | „example“ |
| Wurzel | dc=org | dc | „org“ |
cn=schulz\, frank,ou=people,dc=example,dc=org🧯 Wert escapen (RFC 4514 §2.4)
Mit Backslash geschützt werden , + " \ < > ;, ein Leerzeichen oder # am Anfang, ein Leerzeichen am Ende und NUL. Statt \, ist auch die Hex-Form \2C erlaubt – OpenLDAP gibt Kommas so aus.
cn=\ Müller\, Anna #1\ 📚 Quellen: RFC 4514 – LDAP: String Representation of Distinguished Names
🧱Einträge, Attribute, Objektklassen
Eintrag uid=anna.schmidt,ou=people,dc=example,dc=org │ ├─ objectClass: top ← ABSTRACT (Wurzel) ├─ objectClass: person ← STRUCTURAL ├─ objectClass: organizationalPerson ← STRUCTURAL ├─ objectClass: inetOrgPerson ← STRUCTURAL (unterste) ├─ objectClass: posixAccount ← AUXILIARY │ ├─ uid: anna.schmidt ← RDN-Attribut ├─ cn: Anna Schmidt ← MUST (person) ├─ sn: Schmidt ← MUST (person) ├─ mail: anna.schmidt@example.org ← MAY (inetOrgPerson) └─ uidNumber: 10001 ← MUST (posixAccount)
cn und commonName sind derselbe Typ.createTimestamp oder entryUUID pflegt der Server selbst. Sie kommen nur, wenn man sie ausdrücklich anfordert (Attributliste+).ou=people mit uid als RDN – der ändert sich seltener als ein Name. Ein RDN mit cn wie „Schulz, Frank“ braucht Escaping und ändert sich bei Heirat.📚 Quellen: RFC 4512 – LDAP: Directory Information Models · RFC 4519 – LDAP: Schema for User Applications