Huhu,
auf einem Univention-System mit Samba4 laufen gleich zwei LDAP-Server: OpenLDAP und das Samba4-LDAP. Zwischen beiden werden Einträge synchronisiert, sodass Benutzer in beiden existieren. Allerdings verwenden beide leicht unterschiedliche Syntaxen. Hier ein Beispiel meines Testsystems:
[0 root@poledra ~] univention-ldapsearch uid=mosu dn
…
dn: uid=mosu,cn=users,dc=int,dc=bunkus,dc=org
[0 root@poledra ~] univention-s4search cn=mosu dn
…
dn: CN=mosu,CN=Users,DC=int,DC=bunkus,DC=org
Beides ist derselbe User-Eintrag. Man muss daher wissen, an welchem LDAP man sich anmeldet, um den richtigen Anmeldenamen nutzen zu können.
Das OpenLDAP läuft auf den Ports 7389 (unverschlüsselt mit optionalem STARTTLS-Upgrade) und 7636 (verschlüsselt), das Samba4-LDAP auf den Standard-Ports 389 (unverschlüsselt mit optionalem STARTTLS-Upgrade) und 636 (verschlüsselt).
Weiterhin muss man bei Verschlüsselung auf die üblichen zwei Dinge achten:
- Der verbindende Client muss der CA vertrauen, die das Zertifikat ausgestellt hat. Daher ist es oft nötig, die UCS-CA in der Client-Anwendung oder dem Client-Betriebssystem zu importieren. Die CA liegt auf dem DC Master in
/etc/univention/ssl/ucsCA/CAcert.pem
.
- Der Hostname, den der Client zum Verbinden nutzt, muss im Zertifikat als
subjectAlternativeName
mit angegeben sein. Andernfalls wird die Verbindung als unsicher abgelehnt. Man kann also nicht einfach die IP-Adresse oder den kurzen Hostnamen nehmen, man muss den FQDN des LDAP-Servers nutzen.
Das Samba4-LDAP (Ports 389, 636) akzeptiert drei Varianten für die Angabe des Loginnamens:
- Die vollständige DN des Users:
CN=mosu,CN=Users,DC=int,DC=bunkus,DC=org
(also nicht uid=mosu,…
, denn so heißt das Objekt nur im OpenLDAP!)
- Die Variante
user@do.ma.in
: mosu@int.bunkus.org
- Die Variante
NetBIOSDomain\user
: int\mosu
OpenLDAP (Ports 7389, 7636) akzeptiert ausschließlich die DN-Syntax: uid=mosu,cn=users,dc=int,dc=bunkus,dc=org
(also nicht cn=mosu,…
, so heißt das Objekt nur im Samba4-LDAP!)
Große Unterschiede zwischen beiden LDAP-Varianten sind:
- Samba4 speichert Gruppenmitgliedschaften im Userobjekt direkt mittels des Attributs
memberOf
. OpenLDAP speichert die Mitgliedschaft hingegen im Gruppenobjekt mittels des Attributs uniqueMember
. Wenn man in seiner Anwendung nur einen LDAP-Filter angeben kann, so ist daher die Samba4-Variante einfacher. Achtung: man kann das in OpenLDAP mit Hilfe des »memberOf-Overlays« nachrüsten. Das wird ab UCS 4.3 übrigens standardmäßig aktiv sein (yay!).
- Diverse für Unix/Linux relevante Attribute wie z.B. das Home-Verzeichnis oder die Login-Shell stehen ausschließlich im OpenLDAP zur Verfügung.
- Die von Univention bereitgestellten, beliebig zu vergebenden Free Attributes stehen ebenfalls nur im OpenLDAP zur Verfügung.
Gruß
mosu