9.2. Active Directory-Verbindung#

Univention Corporate Server kann auf zwei unterschiedliche Arten mit einer bestehenden Active Directory-Domäne (AD-Domäne) zusammen betrieben werden. Beide Varianten lassen sich durch die Applikation Active Directory-Verbindung aus dem Univention App Center einrichten (siehe Installation weiterer Software). Diese steht auf einem Primary Directory Node und Backup Directory Node zur Verfügung.

Die beiden Varianten sind:

In beiden Modi wird unter UCS der Dienst Active Directory-Verbindung verwendet (kurz UCS AD-Connector), der Verzeichnisdienstobjekte zwischen einem Windows 2012/2016/2019/2022-Server mit Active Directory (AD) und dem OpenLDAP-Verzeichnis aus Univention Corporate Server synchronisieren kann.

Im ersten Fall, der Konfiguration eines UCS-Serversystems als Mitglied einer AD-Domäne, dient das AD als führender Verzeichnisdienst und das jeweilige UCS-System tritt dem Vertrauenskontext der AD-Domäne bei. Durch die Domänenmitgliedschaft hat das UCS-System limitierten Zugriff auf Kontodaten der Active Directory-Domäne. Die Einrichtung dieses Betriebsmodus ist im Detail in UCS als Mitglied einer Active Directory-Domäne beschrieben.

Der zweite Modus, der sich über die App Active Directory-Verbindung konfigurieren lässt, dient dazu, die UCS Domäne parallel zu einer bestehenden AD-Domäne zu betreiben. In diesem Modus ist jedem Domänen-Benutzer sowohl in der UCS- als auch in der AD-Domäne ein gleichnamiges Benutzerkonto zugeordnet. Durch die Namensidentität und die Synchronisation der verschlüsselten Passwortdaten ermöglicht dieser Modus einen transparenten Zugriff zwischen beiden Domänen. Die Authentifikation eines Benutzers in der UCS-Domäne geschieht in diesem Modus direkt innerhalb der UCS-Domäne und ist damit nicht direkt abhängig von der AD-Domäne. Die Einrichtung diese Betriebsmodus ist im Detail in Einrichtung des UCS AD-Connectors beschrieben.

9.2.1. UCS als Mitglied einer Active Directory-Domäne#

Bei der Konfiguration eines UCS-Serversystems als Mitglied einer AD-Domäne (AD member-Modus) dient das AD als führender Verzeichnisdienst und das jeweilige UCS-System tritt dem Vertrauenskontext der AD-Domäne bei. Das UCS-System ist nicht in der Lage selbst als Active Directory Domänencontroller zu arbeiten. Durch die Domänenmitgliedschaft hat das UCS-System limitierten Zugriff auf Kontodaten der Active Directory-Domäne, die es über den UCS AD-Connector aus dem AD ausliest und lokal in den eigenen OpenLDAP-basierten Verzeichnisdienst schreibt. In dieser Konfiguration schreibt der UCS AD-Connector keine Änderungen in das AD.

Der AD Member-Modus eignet sich, um eine AD-Domäne durch Applikationen zu erweitern, die auf der UCS-Plattform zur Verfügung stehen. Auf der UCS-Plattform installierte Apps sind dann für Benutzer der AD-Domäne nutzbar. Die Authentifikation erfolgt dabei weiter gegen native Microsoft AD-Domänencontroller.

Der Einrichtungsassistent kann direkt bei der UCS Installation durch die Auswahl Einer bestehenden Active-Directory-Domäne beitreten gestartet werden. Nachträglich kann der Einrichtungsassistent mit der Applikation Active Directory-Verbindung aus dem Univention App Center installiert werden. Alternativ kann das Softwarepaket univention-ad-connector installiert werden. Weitere Informationen finden sich in Installation weiterer Software.

Bemerkung

  • Der AD member-Modus kann nur auf einem Primary Directory Node konfiguriert werden.

  • Der Name der DNS-Domäne des UCS-Systems muss mit dem der AD-Domäne übereinstimmen. Die Hostnamen selbst müssen natürlich unterschiedlich sein.

  • Alle AD- und UCS-Server in einer Connector-Umgebung sollten dieselbe Zeitzone verwenden.

Konfiguration des Betriebsmodus als Teil einer AD-Domäne

Abb. 9.5 Konfiguration des Betriebsmodus als Teil einer AD-Domäne#

Im ersten Dialog des Einrichtungsassistenten ist der Punkt UCS als Teil einer AD-Domäne konfigurieren vorausgewählt und kann mit Weiter bestätigt werden.

Im nächsten Dialog wird die Adresse eines AD-Domänencontrollers sowie der Name des Standard-Administrator-Kontos der AD-Domäne und dessen Passwort abgefragt. Hier sollte das Standard AD Administrator-Konto verwendet werden. Der angegebene AD-Domänencontroller muss auch DNS-Dienste für die Domäne bereitstellen. Durch Betätigen der Schaltfläche AD-Domäne beitreten wird der Domänenbeitritt gestartet.

Domänenbeitritt zu einer AD-Domäne

Abb. 9.6 Domänenbeitritt zu einer AD-Domäne#

Falls die Systemzeit des UCS-Systems mehr als 5 Minuten gegenüber der Systemzeit des AD-Domänencontrollers vorgeht, ist eine manuelle Angleichung der Systemzeiten notwendig. Dies ist notwendig, da die AD-Kerberos-Infrastruktur zur Authentifizierung verwendet wird. Systemzeiten sollten dabei nicht zurückgestellt werden, um Inkonsistenzen zu vermeiden.

Der Domänenbeitritt läuft automatisch ab. Der abschließende Dialog sollte mit Fertigstellen bestätigt werden. Danach sollte mit einem Klick auf Neustart der UMC-Server neu gestartet werden.

Bemerkung

Nach Einrichtung des AD member-Modus findet die Authentifikation gegen den AD-Domänencontroller statt. Daher gilt für den Administrator jetzt das Passwort aus der AD-Domäne. Falls einer AD-Domäne mit nicht-englischsprachiger Sprachkonvention beigetreten wurde, dann wird das Administrator-Konto aus UCS während des Domänenbeitritts automatisch in die Schreibweise des AD umbenannt. Gleiches gilt für alle Benutzer- und Gruppenobjekte mit Well Known SID (z.B. Domain Admins).

Warnung

Falls zuvor neben dem Primary Directory Node weitere UCS-Systeme schon Teil der UCS-Domäne waren, dann müssen diese der Domäne neu beitreten. Dabei erkennen sie, dass der Primary Directory Node sich im AD member-Modus befindet und treten ebenfalls der Authentifikationsstruktur der AD-Domäne bei und können dann z.B. zusätzlich Samba-Dateifreigaben bereitstellen.

Bemerkung

Da in diesem Modus die AD-Kerberos-Infrastruktur zur Authentifizierung von Benutzern verwendet wird, ist es essenziell, dass die Systemzeiten von UCS und AD-Domänencontroller synchron sind (mit einer Toleranz von 5 Minuten). Zu diesem Zweck ist unter UCS der AD-Domänencontroller als NTP-Zeitserver konfiguriert. Im Falle von Authentifikationsproblemen sollte immer als erstes die Systemzeit überprüft werden.

Nach dieser Einrichtung kann das UMC-Modul Active Directory-Verbindung zur weiteren Administration verwendet werden, z.B. um zu prüfen, ob der Dienst läuft und ihn gegebenenfalls neu zu starten (siehe Start/Stopp des Active Directory Connectors).

Um eine verschlüsselte Verbindung zwischen Active Directory und Primary Directory Node nicht nur für die Authentifikation, sondern auch für den Datenaustausch an sich zu verwenden, kann auf dem AD-Domänencontroller das Root-Zertifikat der Zertifizierungsstelle exportiert und über das UMC-Modul hochgeladen werden. Weitere Informationen dazu liefert Import des SSL-Zertifikats des Active Directory.

Per Voreinstellung überträgt die so eingerichtete Active Directory-Verbindung keine Passwortdaten aus AD in den UCS-Verzeichnisdienst. Einige Apps aus dem App Center benötigen verschlüsselte Passwortdaten. Sofern eine App diese benötigt, wird ein entsprechender Hinweis im App Center angezeigt.

Im AD member-Modus liest der UCS AD-Connector Objektdaten per Voreinstellung mit den Berechtigungen des Maschinenkontos des Primary Directory Nodes aus dem AD. Für das Auslesen von verschlüsselten Passwortdaten sind dessen Berechtigungen nicht ausreichend. Daher muss in diesem Fall zusätzlich manuell die LDAP-DN eines privilegierten Replikationsbenutzers in die Univention Configuration Registry Variable connector/ad/ldap/binddn eingetragen werden. Dieser muss im AD Mitglied der Gruppe Domänen-Admins sein. Das entsprechende Passwort muss auf dem Primary Directory Node in eine Datei gespeichert werden und ihr Dateiname muss in die Univention Configuration Registry Variable connector/ad/ldap/bindpw eingetragen werden. Falls zu einem späteren Zeitpunkt das Zugriffspasswort geändert wurde, muss das neue Passwort in diese Datei eingetragen werden. Die Zugriffsrechte für die Datei sollten so eingeschränkt werden, dass nur der Besitzer root Zugriff hat.

Die folgenden Kommandos zeigen die Schritte beispielhaft:

$ ucr set connector/ad/ldap/binddn=Administrator
$ ucr set connector/ad/ldap/bindpw=/etc/univention/connector/password
$ touch /etc/univention/connector/password
$ chmod 600 /etc/univention/connector/password
$ echo -n "Administrator password" > /etc/univention/connector/password
$ ucr set connector/ad/mapping/user/password/kinit=false

Falls gewünscht, kann zu einem späteren Zeitpunkt der AD-Domänencontroller auch durch den Primary Directory Node abgelöst werden. Dies ist über die Applikation Active Directory Takeover möglich (siehe Migration einer Active Directory-Domäne zu UCS mit Univention AD Takeover).

9.2.2. Einrichtung des UCS AD-Connectors#

Als Alternative zur Mitgliedschaft in einer AD-Domäne, die im vorherigen Abschnitt beschrieben ist, kann der UCS Active Directory-Connector dazu verwendet werden, Benutzer- und Gruppenobjekte zwischen einer UCS-Domäne und einer AD-Domäne zu synchronisieren. Diese Betriebsart erlaubt über die unidirektionale Synchronisation hinaus auch die bidirektionale Synchronisation. In dieser Betriebsart bestehen beide Domänen parallel und ihre Authentifikationssysteme funktionieren unabhängig. Dieser Betriebsmodus setzt die Synchronisation verschlüsselter Passwortdaten voraus.

In der Standardeinstellung werden Container, Organisationseinheiten, Benutzer, Gruppen und Rechner synchronisiert.

Der UCS AD Connector kann nur auf einem Primary Directory Node oder einem Backup Directory Node installiert werden.

Hinweise zu den in der Grundeinstellung konfigurierten Attributen und zu beachtende Besonderheiten finden sich in Details zur vorkonfigurierten Synchronisation.

Durch die in beiden Domänen gleichen Benutzereinstellungen können Benutzer transparent auf Dienste beider Umgebungen zugreifen. Nachdem eine Domänenanmeldung an einer UCS-Domäne durchgeführt wurde, ist anschließend eine Verbindung zu einer Dateifreigabe oder einem Exchange-Server mit Active Directory ohne erneute Passwortabfrage möglich. Auf den Ressourcen der anderen Domäne finden Benutzer und Administratoren gleichnamige Benutzer und Gruppen vor und können so mit den gewohnten Rechtestrukturen arbeiten.

Nach dem erstmaligen Start des Connectors wird die Initialisierung vorgenommen. Dabei werden alle Einträge aus dem UCS gelesen und entsprechend dem eingestellten Mapping in AD-Objekte umgewandelt und auf AD-Seite hinzugefügt, und, falls bereits vorhanden, modifiziert. Anschließend werden alle Objekte aus dem AD gelesen und in UCS-Objekte umgewandelt und entsprechend auf UCS-Seite hinzugefügt oder modifiziert. Solange noch Änderungen vorliegen, werden die Verzeichnisdienst-Server weiter abgefragt. Der UCS AD-Connector kann auch in einem unidirektionalen Modus betrieben werden.

Nach dem initialen Sync werden weitere Änderungen in einem festen Intervall abgefragt. Dieser Wert ist auf fünf Sekunden eingestellt und kann manuell per Univention Configuration Registry-Variable connector/ad/poll/sleep angepasst werden.

Sollte ein Objekt nicht synchronisiert werden können, so wird dieses Objekt zunächst zurückgestellt (rejected). Nach einer konfigurierbaren Anzahl von Durchläufen - das Intervall kann im per Univention Configuration Registry-Variable connector/ad/retryrejected angepasst werden - wird erneut versucht diese Änderungen wieder einzuspielen. Der Standardwert beträgt zehn Durchläufe. Außerdem wird bei einem Neustart des UCS AD-Connectors ebenfalls versucht, die zuvor zurückgewiesenen Änderungen erneut zu synchronisieren.

9.2.2.1. Grundkonfiguration des UCS AD-Connectors#

Der UCS AD-Connector wird über einen Assistenten im UMC-Modul Active Directory-Verbindung konfiguriert.

Das Modul kann mit der Applikation Active Directory-Verbindung aus dem Univention App Center installiert werden. Alternativ kann das Softwarepaket univention-ad-connector installiert werden. Weitere Informationen finden sich in Installation weiterer Software.

Bemerkung

Alle AD- und UCS-Server in einer Connector-Umgebung müssen dieselbe Zeitzone verwenden.

Warnung

Trotz intensiver Tests kann aufgrund der Vielfalt der Konfigurations- und Betriebsvarianten einer AD-Domäne nicht ausgeschlossen werden, dass die Ergebnisse des Synchronisationsvorgangs den Betrieb einer produktiven Domäne beeinträchtigen. Der UCS AD-Connector sollte daher vorab in einer getrennten Umgebung auf die jeweiligen Anforderungen geprüft werden.

Es ist zu empfehlen, die folgenden Schritte mit einem Webbrowser vom AD-Domänencontroller aus durchzuführen, da Dateien auf den AD-Domänencontroller herunter geladen und im Assistenten hochgeladen werden müssen.

Im ersten Dialog der Einrichtungsassistenten muss der Punkt Synchronisation von Kontendaten zwischen einer AD und dieser UCS-Domäne ausgewählt und mit Weiter bestätigt werden.

Konfiguration des UCS AD-Connectors über UMC-Modul

Abb. 9.7 Konfiguration des UCS AD-Connectors über UMC-Modul#

Im nächsten Dialog wird die Adresse eines AD-Domänencontrollers abgefragt. Hier kann die IP-Adresse oder ein voll qualifizierter DNS-Name eingegeben werden. Wenn der Rechnername des AD-Systems für das UCS-System nicht auflösbar sein sollte, kann entweder unter UCS der AD DNS-Server als DNS-Forwarder konfiguriert werden oder es kann im UMC-Modul DNS ein DNS-Host-Record für das AD-System angelegt werden (siehe A/AAAA-Records (Host Records)).

Alternativ kann auch über Univention Configuration Registry ein statischer Eintrag in /etc/hosts aufgenommen werden, z.B. mit

$ ucr set hosts/static/192.0.2.100=w2k8-32.ad.example.com

Im Feld Active Directory-Konto wird der Benutzer konfiguriert, der für den Zugriff auf das AD verwendet wird. Die Einstellung wird in der Univention Configuration Registry Variable connector/ad/ldap/binddn gespeichert. Der Replikationsbenutzer muss im AD Mitglied der Gruppe Domänen-Admins sein.

Das verwendete Passwort für den Zugriff muss im Feld Active Directory-Passwort eingetragen werden. Es wird auf dem UCS-System lokal in einer Datei gespeichert, die nur für den Benutzer root lesbar ist.

Änderung des AD-Zugriffspassworts beschreibt die Schritte, die notwendig sind, falls diese Zugangsdaten zu einem späteren Zeitpunkt angepasst werden müssen.

Nach Klick auf Weiter prüft der Einrichtungsassistent die Verbindung zum AD-Domänencontroller. Falls keine SSL/TLS-verschlüsselte Verbindung aufgebaut werden kann, wird eine Warnung ausgegeben, in der zur Installation einer Zertifizierungsstelle auf dem AD-Domänencontroller geraten wird. Es wird empfohlen diesem Rat zu folgen.

UCS 5.0 erfordert TLS 1.2, welches für Windows Server Releases vor 2012R2 manuell auf dem Windows Server aktiviert werden muss. UCS 5.0 unterstützt die Hash-Funktion SHA-1 nicht mehr. Falls für die Erstellung des AD Root-Zertifikat oder des Zertifikat des Windows Servers dieses Verfahren verwendet wurde, dann sollten diese ersetzt werden.

Nach diesem Schritt kann die Einrichtung durch erneuten Klick auf Weiter fortgesetzt werden. Falls weiterhin keine SSL/TLS-verschlüsselte Verbindung aufgebaut werden kann, wird in einem Sicherheitshinweis nachgefragt, ob die Synchronisation ohne SSL-Verschlüsselung eingerichtet werden soll. Falls dies gewünscht ist, kann die Einrichtung durch Klick auf Fortfahren ohne Verschlüsselung fortgesetzt werden. In diesem Fall findet die Synchronisation der Verzeichnisdaten unverschlüsselt statt.

Falls der AD-Domänencontroller SSL/TLS-verschlüsselte Verbindungen unterstützt, bietet der Einrichtungsassistent im nächsten Schritt das Hochladen des AD-Root-Zertifikats an. Dieses Zertifikat muss vorher aus der AD-Zertifizierungsstelle exportiert werden (siehe Import des SSL-Zertifikats des Active Directory). Falls dieser Schritt hingegen übersprungen wird, kann das Zertifikat auch zu einem späteren Zeitpunkt über das UMC-Modul hochgeladen und die SSL/TLS-Verschlüsselung aktiviert werden (bis dahin werden dann aber alle Verzeichnisdaten unverschlüsselt synchronisiert).

Der Connector kann in verschiedenen Modi betrieben werden, die im nächsten Dialog Konfiguration der Active Directory-Domänensynchronisation ausgewählt werden können. Neben einer bidirektionalen Synchronisation kann auch unidirektional von AD nach UCS oder unidirektional von UCS in das AD repliziert werden. Nach Auswahl des Modus muss auf Weiter geklickt werden.

Nach einem Klick auf Weiter wird die Konfiguration übernommen und der UCS AD-Connector wird gestartet. Der abschließende Dialog muss dann durch Klick auf Fertigstellen geschlossen werden.

Nach dieser Einrichtung kann das UMC-Modul Active Directory-Verbindung zur weiteren Administration des UCS Active Directory Connectors verwendet werden, z.B. um zu prüfen, ob der Dienst läuft und ihn gegebenenfalls neu zu starten (siehe Start/Stopp des Active Directory Connectors).

Bemerkung

Der Connector kann auch mehrere AD-Domänen mit einer UCS-Domäne synchronisieren; dies ist in Extended Windows integration documentation [7] dokumentiert.

Administrationsdialog für die Active Directory-Verbindung

Abb. 9.8 Administrationsdialog für die Active Directory-Verbindung#

9.2.2.2. Import des SSL-Zertifikats des Active Directory#

Auf dem Active Directory-System muss nun ein SSL-Zertifikat erzeugt und das Root-Zertifikat exportiert werden, damit eine verschlüsselte Kommunikation stattfinden kann. Erzeugt wird das Zertifikat mit dem Zertifikatsdienst des Active Directory. Die nötigen Schritte sind abhängig von der eingesetzten Windows-Version und werden hier beispielhaft für drei Varianten dargestellt.

Die verschlüsselte Verbindung zwischen UCS-System und Active Directory kann auch deaktiviert werden, indem die Univention Configuration Registry Variable connector/ad/ldap/ssl auf no gesetzt wird. Diese Einstellung betrifft nicht die Synchronisation der verschlüsselten Passwortdaten.

Export unter Windows Server 2012 / 2016 / 2019 / 2022#

Falls der Zertifizierungsdienst noch nicht installiert ist, installieren Sie ihn in Ihre Domäne mit den folgenden Schritten, bevor sie fortfahren:

  1. Öffnen Sie den Server Manager.

  2. Wählen Sie unter Verwalten ‣ Rollen und Features hinzufügen die Rolle Active Directory-Zertifikatsdienste aus.

  3. Wählen Sie in der Liste der Dienste die Zertifizierungsstelle aus. Die obere Leiste des Server Managers zeigt ein gelbes Warndreieck an.

  4. Wählen Sie die Option Active Directory-Zertifikatsdienste konfigurieren auf dem Server und konfigurieren Sie die Zertifizierungsstelle als ausgewählten Rollendienst.

  5. Wählen Sie Unternehmenszertifizierungsstelle ‣ Stammzertifizierungsstelle als Installationstyp.

  6. Klicken Sie Neuen privaten Schlüssel erstellen, bestätigen Sie die vorgeschlagenen Verschlüsselungseinstellungen und den Namen der Zertifizierungsstelle.

  7. Wählen Sie einen beliebigen Zeitraum für die Gültigkeit und verwenden Sie die Standardpfade für den Speicherort der Datenbank.

  8. Starten Sie abschließend Ihren Windows Active Directory Server neu, damit die Änderungen wirksam werden.

Siehe auch

Installieren der Zertifizierungsstelle

für eine detaillierte Beschreibung der Installation der Zertifizierungsstelle in Installieren der Zertifizierungsstelle [12].

Um das Zertifikat der Zertifizierungsstelle zu exportieren, gehen Sie wie folgt vor:

  1. Öffnen Sie den Server Manager.

  2. Wählen Sie die Rolle AD-Zertifikatsdienste.

  3. Klicken Sie mit der rechten Maustaste auf den Namen des Windows-Servers und wählen Sie Zertifizierungsstelle. Das Fenster mit der Zertifizierungsstelle öffnet sich. Ein Baum von Rechnern erscheint unter Zertifizierungsstelle auf der linken Seite.

    Unter jedem aufgelisteten Rechner befinden sich die Elemente Gesperrte Zertifikate, Ausgestellte Zertifikate, Ausstehende Anforderungen, Fehlgeschlagene Anforderungen und Zertifikatsvorlagen.

  4. Klicken Sie in der Serverliste mit der rechten Maustaste auf den Windows-Server, der Ihre Zertifizierungsstelle bedient, und wählen Sie Eigenschaften. Verwechseln Sie ihn nicht mit einem der anderen Elemente.

  5. Im Fenster Eigenschaften wählen Sie Generell ‣ Stammzertifikat ‣ Zertifikat Nr. 0 und klicken auf Zertifikat anzeigen.

    Wichtig

    Es ist wichtig, das Zertifikat zu kopieren, das normalerweise den Namen Zertifikat Nr. 0 trägt, da die App AD Connection genau dieses Zertifikat für eine sichere Verbindung benötigt.

  6. Wählen Sie im sich öffnenden Fenster Zertifikat die Registerkarte Details und klicken Sie auf In Datei kopieren ….

Kopieren des AD-Zertifikats auf das UCS-System#

Nun muss das SSL-AD-Zertifikat über das UMC-Modul in das UCS-System importiert werden.

Dies erfolgt durch einen Klick auf Hochladen im Untermenü Active Directory-Verbindung SSL-Konfiguration. Hierbei öffnet sich ein Fenster, in dem eine Datei ausgewählt wird. Das hochgeladene Zertifikat wird dadurch für den UCS AD-Connector verfügbar gemacht.

9.2.2.3. Start/Stopp des Active Directory Connectors#

Abschließend kann der Connector über Active Directory-Verbindungsdienst starten gestartet werden und bei Bedarf über Active Directory-Verbindungsdienst stoppen angehalten werden. Alternativ kann ein Starten/Stoppen auch über Kommandozeile durch die Befehle /etc/init.d/univention-ad-connector start und /etc/init.d/univention-ad-connector stop erfolgen.

9.2.2.4. Funktionstest der Grundeinstellungen#

Die korrekte Grundkonfiguration des Connectors lässt sich prüfen, indem vom UCS-System aus im Active Directory gesucht wird. Mit folgendem Befehl kann z.B. nach dem Administrator-Konto im Active Directory gesucht werden:

$ univention-adsearch cn=Administrator

Da univention-adsearch auf die in Univention Configuration Registry Variable gespeicherte Konfiguration zugreift, kann auf diesem Weg die Erreichbarkeit/Konfiguration des Active Directory-Zugriffs geprüft werden.

9.2.2.5. Änderung des AD-Zugriffspassworts#

Die vom UCS AD-Connector benötigten Zugangsdaten zum Active Directory werden über die Univention Configuration Registry Variable connector/ad/ldap/binddn und connector/ad/ldap/bindpw konfiguriert. Falls das Passwort sich geändert hat oder ein anderes Benutzerkonto verwendet werden soll, können diese Variablen manuell angepasst werden.

Über die Univention Configuration Registry Variable connector/ad/ldap/binddn wird die LDAP-DN eines privilegierten Replikationsbenutzers konfiguriert. Dieser muss im AD Mitglied der Gruppe Domänen-Admins sein. Das entsprechende Passwort muss lokal auf dem UCS-System in eine Datei gespeichert werden, deren Dateiname in der Univention Configuration Registry Variable connector/ad/ldap/bindpw eingetragen sein muss. Die Zugriffsrechte für die Datei sollten so eingeschränkt werden, dass nur der Besitzer root Zugriff hat. Die folgenden Kommandos zeigen dies beispielhaft:

$ eval "$(ucr shell)"
$ echo "Updating ${connector_ad_ldap_bindpw?}"
$ echo "for AD sync user ${connector_ad_ldap_binddn?}"
$ touch "${connector_ad_ldap_bindpw?}"
$ chmod 600 "${connector_ad_ldap_bindpw?}"
$ echo -n "Current AD Syncuser password" > "${connector_ad_ldap_bindpw?}"

9.2.3. Werkzeuge / Fehlersuche#

Die Active Directory Connection stellt die folgenden Werkzeuge und Protokolldateien für die Diagnose zur Verfügung:

univention-adsearch

Dieses Tool ermöglicht die einfache LDAP-Suche im Active Directory. In AD gelöschte Objekte werden immer mit angezeigt (diese werden in AD weiterhin in einem LDAP-Unterbaum vorgehalten). Als erste Option erwartet das Skript einen LDAP-Filter, die zweite Option kann eine Liste der anzuzeigenden LDAP-Attribute sein, z.B.:

Beispiel:

$ univention-adsearch cn=administrator cn givenName
univention-adconnector-list-rejected

Dieses Tool führt die DNs nicht synchronisierter Objekte auf. Zusätzlich wird, sofern zwischengespeichert, die korrespondierende DN im jeweils anderen LDAP-Verzeichnis angegeben. Abschließend gibt lastUSN die ID der letzten von AD synchronisierten Änderung an.

Dieses Skript könnte eine Fehlermeldung oder eine unvollständige Ausgabe anzeigen, wenn der AD Connector in Betrieb ist.

remove_ad_rejected.py

Sie können dieses Skript verwenden, um ein AD-Objekt aus der Liste der abgelehnten AD-Objekte zu entfernen, das sich in der internen Datenbankdatei /etc/univention/connector/internal.sqlite befindet.

Beispiel:

$ /usr/share/univention-ad-connector/remove_ad_rejected.py \
   -c connector <AD object DN>
remove_ucs_rejected.py

Mit diesem Skript können Sie ein UCS Verzeichnisobjekt aus der Liste der abgelehnten UCS-Objekte entfernen, das sich in der internen Datenbankdatei /etc/univention/connector/internal.sqlite befindet.

Beispiel:

$ /usr/share/univention-ad-connector/remove_ucs_rejected.py \
   -c connector <UCS object DN>
resync_object_from_ad.py

Sie können dieses Skript verwenden, um Verzeichnisobjekte von AD zu UCS erneut zu synchronisieren. Verwenden Sie es, um ein einzelnes oder mehrere Verzeichnisobjekte zu synchronisieren.

Beispiel:

# to re-sychronize a single object
$ /usr/share/univention-ad-connector/resync_object_from_ad.py \
    -c connector <object DN>

# to re-synchronize all objects matching a specific filter
$ /usr/share/univention-ad-connector/resync_object_from_ad.py \
    -c connector \
    --filter "(objectClass=posixAccount)"

# to re-synchronize all objects matching a specific base
$ /usr/share/univention-ad-connector/resync_object_from_ad.py \
    -c connector \
    --filter "(objectClass=posixAccount)" \
    --base "dc=example,dc=com"
resync_object_from_ucs.py

Sie können dieses Skript verwenden, um Verzeichnisobjekte von UCS nach AD erneut zu synchronisieren. Verwenden Sie es, um ein einzelnes oder mehrere Verzeichnisobjekte zu synchronisieren.

Beispiele:

# to re-synchronize a single object
$ /usr/share/univention-ad-connector/resync_object_from_ucs.py \
   -c connector <object DN>

# to re-synchronize all objects matching a specific filter
$ /usr/share/univention-ad-connector/resync_object_from_ucs.py \
   -c connector \
   --filter "<LDAP filter>" \

# to re-synchronize all objects matching a specific base
$ /usr/share/univention-ad-connector/resync_object_from_ucs.py \
   -c connector \
   --filter "<LDAP filter>" \
   --base "<base dn>" \
prepare-new-instance

Sie können dieses Skript verwenden, um AD-Verbindungsinstanzen zu erstellen. Das Skript kopiert die erforderlichen Dateien und setzt bestimmte UCR-Variablen.

Alternativ können Sie dieses Skript auch verwenden, um eine AD-Verbindungsinstanz zu löschen. Das Skript löscht dann intern die Dateien für die Instanz und setzt die UCR-Variablen zurück.

well-known-sid-object-rename

Sie können dieses Skript verwenden, um Benutzer und Gruppen mit bekannten SIDs in UDM umzubenennen. Die AD Connection verwendet es, um Benutzer und Gruppen mit bekannten SIDs umzubenennen.

make-deleted-objects-readable-for-this-machine

Sie können dieses Skript verwenden, um Zugriff zum Auflisten und Lesen auf CN=Deleted Objects in Active Directory zu gewähren.

Logdateien

Zur Fehlersuche bei Synchronisationsproblemen finden sich entsprechende Meldungen in folgenden Dateien auf dem UCS-System:

  • /var/log/univention/connector-ad.log

  • /var/log/univention/connector-ad-status.log

9.2.4. Selektive Synchronisation#

Sie können die Active Directory Connection so konfigurieren, dass nur eine bestimmte Auswahl von Quellobjekten synchronisiert wird. Sie können die Quellobjekte nach Kriterien auswählen, die in den folgenden Abschnitten ausführlich beschrieben werden:

  • Auswahl von Objekten nach Standort im LDAP-Teilbaum

  • Auswahl von Objekten durch Übereinstimmung mit einem LDAP-Filter

  • Auswahl aller Elemente außer nach Standort im LDAP-Teilbaum

  • Auswahl aller Elemente außer durch Übereinstimmung mit einem LDAP-Filter

9.2.4.1. Nur bestimmte LDAP-Teilbäume zulassen#

Um den Connector so zu konfigurieren, dass er nur bestimmte Teilbäume der LDAP-Struktur synchronisiert, können Sie die folgenden UCR-Variablen verwenden:

connector/ad/mapping/allowsubtree/.*/ucs#

Für die Synchronisation von UCS LDAP-Verzeichnis zu Active Directory

Verwenden Sie diese Univention Configuration Registry Variable, um einen DN aus Ihrem UCS LDAP-Verzeichnis für die Synchronisation mit dem angeschlossenen Active Directory zu definieren. Die AD-Verbindung berücksichtigt dann nur UCS LDAP-Objekte für die Synchronisation, die sich in Teilbäumen befinden, die durch eine dieser UCR-Variablen spezifiziert sind. Die LDAP-Basis muss in den DNs enthalten sein und der Vergleich der DNs ist unabhängig von der Groß- und Kleinschreibung.

Siehe die Erklärung des Platzhalters .* weiter unten.

Zum Beispiel:

$ ucr set connector/ad/mapping/allowsubtree/school1/ucs="ou=school1,dc=ucs,domain"
$ ucr set connector/ad/mapping/allowsubtree/school2/ucs="ou=school2,dc=ucs,domain"
connector/ad/mapping/allowsubtree/.*/ad#

Für die Synchronisation von Active Directory zum UCS Verzeichnisdienst

Verwenden Sie diese Univention Configuration Registry Variable, um einen DN aus Ihrem Active Directory für die Synchronisation mit Ihrem UCS LDAP-Verzeichnis zu definieren. Die AD-Verbindung berücksichtigt dann nur Active Directory Objekte für die Synchronisation, die sich in Teilbäumen befinden, die durch eine dieser UCR-Variablen festgelegt sind. Die LDAP-Basis muss in den DNs enthalten sein, und beim Vergleich der DNs wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Siehe die Erklärung des Platzhalters .* weiter unten.

Zum Beispiel:

$ ucr set connector/ad/mapping/allowsubtree/school1/ad="ou=school1,dc=ad,domain"
$ ucr set connector/ad/mapping/allowsubtree/school2/ad="ou=school2,dc=ad,domain"
Platzhalter .*

Der Teil .* der Variable ist ein Platzhalter, den Sie als individuelle Bezeichnung für jede Variable verwenden können. Wenn Sie diesen Ansatz verfolgen, können Sie eine Reihe von UCR-Variablen der beschriebenen Typen erstellen. Jede Variable enthält nur einen DN.

Für jeden LDAP-Teilbaum, den Sie für die Synchronisierung zulassen möchten, müssen Sie eine separate Univention Configuration Registry Variable konfigurieren.

Nachdem Sie die UCR-Variablen definiert oder geändert haben, müssen Sie die Active Directory Verbindung neu starten.

Tipp

Die Active Directory Verbindung bestimmt die Position des Zielobjekts durch dynamische und statische Faktoren wie die Mapping Attribute dn_mapping_function und position_mapping, sofern sie im Mapping für einzelne Objekttypen konfiguriert sind. Die Position des entsprechenden Zielobjekts kann also außerhalb der Teilbäume liegen, die den Univention Configuration Registry Variablen entsprechen.

Warnung

Wenn Sie die Konfiguration …/allowsubtree/.*/[ad|ucs] verwenden und ein Quellobjekt aus einem betrachteten Teilbaum an eine Position verschieben, die außerhalb des kombinierten Geltungsbereichs aller Ihrer …/allowsubtree/.*/[ad|ucs] Definitionen liegt, dann entfernt die Active Directory Verbindung das Objekt aus dem Zielverzeichnis.

9.2.4.2. Nur Objekte zulassen, die einem LDAP-Filter entsprechen#

Sie können für jede Art von Objekt einen LDAP-Filter konfigurieren. Active Directory Verbindung synchronisiert nur LDAP-Objekte, die diesem Filter entsprechen. Alle anderen LDAP-Objekte werden ignoriert.

Für die bidirektionale Synchronisierung muss der Filter sowohl mit dem UCS Objekt als auch mit dem AD-Objekt übereinstimmen. Wird ein Objekt, das mit dem Filter übereinstimmt, gelöscht, löscht der Connector auch das entsprechende Objekt auf der anderen Seite.

connector/ad/mapping/{type}/allowfilter#

Der Connector synchronisiert nur die Objekte mit dem Objekttyp {type}, die diesem LDAP-Filter entsprechen. {type} kann einer der folgenden Werte sein:

  • user

  • group

  • container

  • ou

  • windowscomputer

Zum Beispiel:

$ ucr set connector/ad/mapping/user/allowfilter="(description=sync)"

Nach dem Ändern dieser Einstellungen müssen Sie die Active Directory Verbindung neu starten.

Bemerkung

Dieser Filter unterstützt jedoch nicht die vollständige LDAP-Filtersyntax. Es wird immer zwischen Groß- und Kleinschreibung unterschieden. Sie können nur den Platzhalter * als Einzelwert ohne andere Zeichen verwenden.

Wichtig

Wenn ein Objekt, das mit dem Filter übereinstimmt, so geändert wird, dass der Filter nicht mehr passt, synchronisiert der Connector keine Änderung. Das bedeutet, dass der Connector weiterhin Änderungen von der anderen Seite auf das Objekt anwendet.

Wenn Sie die Synchronisierung für ein Objekt ausschalten wollen, müssen Sie die Änderung auf beiden Seiten, UCS und Active Directory, vornehmen.

9.2.4.3. Ignorieren von Objekten aus bestimmten LDAP-Teilbäumen#

Um den Connector so zu konfigurieren, dass er Objekte aus bestimmten LDAP-Teilbäumen ignoriert, können Sie die folgende Univention Configuration Registry Variable verwenden:

connector/ad/mapping/ignoresubtree/.*#

Die Variable definiert die Stellen im Verzeichnisdienst, die der Connector von der Synchronisation ausschließt. Die Werte können Positionen in Active Directory und im UCS LDAP-Verzeichnis enthalten. Standardmäßig ist die Variable nicht gesetzt.

Zum Beispiel:

$ ucr set connector/ad/mapping/ignoresubtree/ignore1="cn=alumni,dc=ucs,domain"
$ ucr set connector/ad/mapping/ignoresubtree/ignore2="cn=alumni,dc=ad,domain"

Nach der Änderung dieser Einstellung müssen Sie die Active Directory Verbindung neu starten.

9.2.4.4. Objekte durch LDAP-Filter ignorieren#

Um Objekte von der Synchronisierung auszuschließen, können Sie ihre Namen zu den folgenden Univention Configuration Registry Variable hinzufügen:

connector/ad/mapping/{type}/ignorelist#

Der Connector synchronisiert keine Objekte, die diese Variable als Werte definiert. Trennen Sie mehrere Werte durch Kommas. Für die möglichen Werte für {type}, siehe Tab. 9.1. Die Tabelle zeigt auch, welche LDAP-Attribute Sie je nach Objekttyp im Filter berücksichtigen müssen.

Tab. 9.1 Zuordnung, welcher {type} welches LDAP-Attribut benötigt#

{type}

Wert aus LDAP-Attribut

user

uid

group

cn

container

cn

ou

ou

windowscomputer

cn

Der Typ user berücksichtigt zum Beispiel das LDAP-Attribut uid:

$ ucr set connector/ad/mapping/user/ignorelist="Administrator,krbtgt,root,pcpatch,mmustermann"

Wichtig

Einige der ignorelist-Einstellungen haben Voreinstellungen, die für die Funktionalität des Connector wichtig sind. Achten Sie darauf, dass Sie diese Einstellungen nicht überschreiben. Sie können den aktuellen Wert einer Univention Configuration Registry Variable mit dem folgenden Befehl überprüfen:

$ ucr get connector/ad/mapping/user/ignorelist

Für mehr Flexibilität können Sie auch einen LDAP-Filter setzen, um Objekte zu ignorieren. Verwenden Sie die folgende Univention Configuration Registry Variable:

connector/ad/mapping/{type}/ignorefilter#

Der Connector synchronisiert keine Objekte, die diesem LDAP-Filter entsprechen. {type} kann einen der folgenden Werte haben:

  • user

  • group

  • container

  • ou

  • windowscomputer

Zum Beispiel:

$ ucr set connector/ad/mapping/user/ignorefilter="(description=no sync)"

Bemerkung

Dieser Filter unterstützt jedoch nicht die vollständige LDAP-Filtersyntax. Es wird immer zwischen Groß- und Kleinschreibung unterschieden. Sie können nur den Platzhalter * als Einzelwert ohne andere Zeichen verwenden.

Nach dem Ändern dieser Einstellungen müssen Sie die Active Directory Verbindung neu starten.

9.2.4.5. Vorrang der Regeln#

In diesem Abschnitt wird die Verarbeitungsreihenfolge für die bisher dokumentierten Einstellungen zur selektiven Synchronisation beschrieben.

Die Active Directory Verbindung verarbeitet die Regeln für Erlauben und Ignorieren in einer definierten Reihenfolge. Abhängig vom Ergebnis der Auswertung verhält sich der Connector wie folgt:

  • Wenn eine Regel dazu führt, dass der Connector ein Objekt ignoriert, stoppt der Connector die Verarbeitung der Regel und synchronisiert kein Objekt.

  • Wenn eine Regel dazu führt, dass der Connector ein Objekt verarbeitet, wertet der Connector die nächste Regel aus. Wenn die Regel die letzte Regel war und es keine nächste Regel gibt, synchronisiert der Connector das Objekt.

Der Connector wertet die Regeln für jedes Objekt in der folgenden Reihenfolge aus:

  1. Teilbaum zulassen:

    UCR Variablen:

    connector/ad/mapping/allowsubtree/.*/ucs und connector/ad/mapping/allowsubtree/.*/ad

    Keine Übereinstimmung:

    Keine Synchronisation. Abarbeitung der Regeln beenden.

    Übereinstimmung:

    Fortsetzen.

  2. Filter zulassen:

    UCR Variable:

    connector/ad/mapping/{type}/allowfilter

    Keine Übereinstimmung:

    Keine Synchronisation. Abarbeitung der Regeln beenden.

    Übereinstimmung:

    Fortsetzen.

  3. Unterbaum ignorieren:

    UCR Variable:

    connector/ad/mapping/ignoresubtree/.*

    Keine Übereinstimmung:

    Fortsetzen.

    Übereinstimmung:

    Keine Synchronisation. Abarbeitung der Regeln beenden.

  4. Filter ignorieren:

    UCR Variablen:

    connector/ad/mapping/{type}/ignorelist und connector/ad/mapping/{type}/ignorefilter

    Keine Übereinstimmung:

    Fortsetzen.

    Übereinstimmung:

    Keine Synchronisation. Abarbeitung der Regeln beenden.

  5. Ende der Regeln.

  6. Objekt synchronisieren.

9.2.5. Details zur vorkonfigurierten Synchronisation#

Standardmäßig schließt die Active Directory Verbindung einige LDAP-Teilbäume von der Synchronisation aus. Sie finden die Liste der ignorierten Teilbäume in der Datei /var/log/univention/connector-ad-mapping.log unter der Einstellung ignore_subtree für jeden Objekttyp.

9.2.5.1. Container und Organisationseinheiten#

Container und Organisationseinheiten werden zusammen mit ihrer Beschreibung synchronisiert. Die Container cn=mail und cn=kerberos werden auf beiden Seiten ignoriert. Bei Containern sind einige Besonderheiten auf AD-Seite zu beachten. Active Directory bietet im Manager für Benutzer und Gruppen keine Möglichkeit, Container anzulegen. AD zeigt diese im erweiterten Modus aber an (Ansicht ‣ Erweiterte Funktionen).

Berücksichtigen Sie die folgenden Besonderheiten:

  • Unter AD gelöschte Container oder Organisationseinheiten werden unter UCS rekursiv gelöscht, das bedeutet, dass nicht synchronisierte Unterobjekte, die in AD nicht zu sehen sind, ebenfalls entfernt werden.

9.2.5.2. Gruppen#

Gruppen werden anhand des Gruppennamens synchronisiert, dabei findet eine Berücksichtigung der primären Gruppe eines Benutzers statt (die unter AD nur am Benutzer im LDAP hinterlegt wird).

Gruppenmitglieder, die im anderen System z.B. aufgrund von Ignore-Filtern kein Gegenstück haben, werden ignoriert (bleiben also Mitglied der Gruppe).

Zusätzlich wird die Beschreibung der Gruppe synchronisiert.

Besonderheiten#

Berücksichtigen Sie die folgenden Besonderheiten:

  • Unter AD wird der Prä-Windows 2000 Name (LDAP-Attribut samAccountName) verwendet, daher kann eine Gruppe im Active Directory mit anderem Namen erscheinen als unter UCS.

  • Der Connector ignoriert Gruppen, die im Univention Directory Manager unter Samba Gruppentyp als Bekannte Gruppe konfiguriert wurden. Eine Synchronisation von SID oder RID findet nicht statt.

  • Gruppen, die im Univention Directory Manager unter Samba Gruppentyp als Lokale Gruppe konfiguriert wurden, werden vom Connector als globale Gruppen in das Active Directory synchronisiert.

  • Neu angelegte oder verschobene Gruppen werden immer im gleichen Untercontainer auf der Gegenseite angelegt. Existieren während der Initialisierung gleichnamige Gruppen in unterschiedlichen Containern, werden die Mitglieder synchronisiert, nicht jedoch die Position im LDAP. Wird eine solche Gruppe auf einer Seite verschoben ist der Zielcontainer auf der anderen Seite identisch, so dass sich die DNs der Gruppen ab diesem Zeitpunkt nicht mehr unterscheiden.

  • Bestimmte Gruppennamen werden anhand einer Mapping-Tabelle umgesetzt, so dass z.B. die UCS-Gruppe Domain Users mit der AD-Gruppe Domänen-Benutzer. synchronisiert wird. Dieses Mapping kann in englischsprachigen AD-Domänen dazu führen, das die deutschsprachigen Gruppen angelegt werden und sollte in diesem Fall deaktiviert werden. Dazu kann die Univention Configuration Registry Variable connector/ad/mapping/group/language verwendet werden.

    Die vollständige Tabelle ist:

    UCS-Gruppe

    AD-Gruppe

    Domain Users

    Domänen-Benutzer

    Domain Admins

    Domänen-Admins

    Windows Hosts

    Domänencomputer

  • Die Repräsentation von Gruppen in Gruppen unterscheidet sich zwischen AD und UCS. Sind unter UCS Gruppen Mitglieder von Gruppen, so können diese Objekte nicht immer auf AD-Seite synchronisiert werden und erscheinen in der Liste der zurückgewiesenen Objekte. Verschachtelte Gruppen sollten daher aufgrund der in Active Directory vorliegenden Einschränkungen immer nur dort zugewiesen werden.

  • Wird im Univention Directory Manager eine globale Gruppe A als Mitglied einer anderen globalen Gruppe B aufgenommen, so erscheint diese Mitgliedschaft aufgrund von AD-internen Beschränkungen unter Windows 2000/2003 nicht im Active Directory. Wird Gruppe A anschließend umbenannt, geht die Gruppenmitgliedschaft in Gruppe B verloren. Ab Windows 2008 besteht diese Einschränkung nicht mehr, dort können im Active Directory auch globale Gruppen verschachtelt werden.

Benutzerdefinierte Mappings#

Für benutzerdefinierte Mappings, siehe Active Directory Connection custom mappings in Univention Developer Reference [3].

9.2.5.3. Benutzer#

Benutzer werden wie Gruppen anhand des Benutzernamens und anhand des AD-Windows 2000 Namens synchronisiert. Direkt übermittelt werden die Attribute Vorname, Nachname, primäre Gruppe (sofern auf der anderen Seite vorhanden), Organisation, Beschreibung, Straße, Stadt, PLZ, Profilpfad, Anmeldeskriptpfad, Deaktiviert und Kontoablaufdatum. Indirekt werden zusätzlich Passwort, Passwortablaufdatum und Ändern des Passwortes beim nächsten Login synchronisiert. Vorbereitet, aber auf Grund unterschiedlicher Syntax in der Mapping-Konfiguration auskommentiert, sind Primäre Mail-Adresse und Telefonnummer.

Ausgenommen werden die Benutzer root und Administrator.

Berücksichtigen Sie die folgenden Besonderheiten:

  • Benutzer werden ebenfalls anhand des Namens identifiziert, so dass für Benutzer, die vor der ersten Synchronisation auf beiden Seiten angelegt wurden, hinsichtlich der Position im LDAP das gleiche Verhalten gilt wie bei Gruppen.

  • Es kann vorkommen, dass ein unter AD anzulegender Benutzer, dessen Passwort zurückgewiesen wurde, nach sofortigem erneuten Anlegen aus AD gelöscht wird. Grund dafür ist, das AD diesen Benutzer zunächst anlegt und nach dem Abweisen des Passwortes sofort wieder löscht. Werden diese Operationen nach UCS übertragen, werden sie auch wieder zurück nach AD übermittelt. Wurde der Benutzer auf AD-Seite schon vor der Rückübertragung der Operation erneut eingetragen, so wird er nach der Rückübertragung gelöscht. Das Auftreten dieses Verhaltens ist abhängig von dem eingestellten Abfrageintervall des Connectors.

  • AD und UCS legen neue Benutzer per Voreinstellung in eine bestimmte primäre Gruppe (meist Domain Users und Domänen Benutzer). Während der ersten Synchronisation von UCS nach AD werden die Benutzer daher immer in dieser Gruppe Mitglied.