Der AD Connector ermöglicht es Ihnen, mit Allow- und Deny-Regeln präzise zu steuern, welche Objekte synchronisiert werden – flexibel, zuverlässig und ideal für große Umgebungen.
Der AD Connector verbindet ein Active Directory und den UCS-Verzeichnisdienst OpenLDAP sowie angeschlossene Dienste und hält so Benutzeraccounts, Gruppen und Computerobjekte auf beiden Seiten synchron. Aber gerade in großen Umgebungen – wie bei Schulträgern mit Hunderten von Schulen – ist es oft gar nicht gewünscht, das komplette Verzeichnis abzugleichen. Stattdessen geht es darum, ganz gezielt zu steuern, welche Objekte überhaupt „durch den Schlagbaum“ dürfen und welche nicht.
Inhaltsverzeichnis
Bislang gab es nur begrenzte Möglichkeiten, Bereiche auszuschließen. Mit Univention Corporate Server 5.0-9 vom September 2024 haben wir den AD Connector um neue Funktionen zum selektiven Synchronisieren erweitert. Jetzt können Sie ganz klar sagen: „Nur dieser Bereich darf durch.“ Alles, was nicht ausdrücklich erlaubt ist, bleibt zuverlässig draußen – völlig egal, wie sich das Verzeichnis verändert. Noch besser: Sie können die Regeln so fein justieren, dass auch innerhalb eines erlaubten Bereichs noch gezielt bestimmte Objekte ignoriert werden. Das ist praktisch, wenn Sie zum Beispiel in einer Gesamtschule nur die gymnasiale Oberstufe synchronisieren möchten, aber nicht die anderen Schulformen.
In diesem Artikel erfahren Sie, wie Sie gezielt steuern, welche Objekte synchronisiert werden, wie Sie Bereiche ausschließen, einzelne Objekte aussortieren und warum die Shell dabei Ihr bester Helfer ist.
Direkter Weg: UCR-Variablen setzen, Logs prüfen, fertig
Die in diesem Artikel vorgestellten LDAP-Filter setzen Sie über UCR-Variablen – und zwar am besten auf der Shell. Zuerst nehmen Sie die Einstellungen über das Kommando ucr set vor, danach starten Sie den AD Connector neu über den Befehl systemctl restart univention-ad-connector. Anschließend können Sie in den beiden Logfiles /var/log/univention/connector-ad.log und /var/log/univention/connector-ad-status.log kontrollieren, ob alles so läuft wie gewünscht.
Warum nicht die UMC? Die Univention Management Console ist zwar benutzerfreundlich, aber oft umständlicher: Sie müssen durch mehrere Menüs klicken, um Variablen zu setzen, Änderungen zu testen und Logs zu prüfen. Auf der Shell erledigen Sie das alles in einem klaren, schnellen Workflow – von der Konfiguration bis zur Fehlersuche.
Im Kapitel Werkzeuge/Fehlersuche in unserem Handbuch finden Sie Schritt für Schritt erklärt, wie Sie Synchronisations-Probleme erkennen und beheben können.
Zugangskontrolle: Präzise Synchronisation Ihrer Daten
Bisher konnte der AD Connector nur Elemente ausschließen – ganze Bäume oder Teilbereiche wurden einfach auf eine Exclude-Liste gesetzt. Das war anfangs praktisch, brachte aber schnell Schwierigkeiten, wenn einzelne Äste oder Objekte ausgeschlossen werden sollten. Ein weiteres Thema: Neue Bäume oder Organisationseinheiten (OUs) wurden in der Voreinstellung synchronisiert – manchmal ungewollt.
Jetzt haben Sie die volle Kontrolle: Mit Allow- und Deny-Filtern legen Sie präzise fest, was die App synchronisiert und was nicht. Das spart Aufwand und sorgt für mehr Übersicht. Statt mühsam alle unerwünschten Einträge auszuschließen (deny), können Sie auch einfach gezielt die gewünschten Elemente erlauben (allow).
Dafür bietet der AD Connector verschiedene Auswahlmöglichkeiten:
- Sie können Objekte nach ihrem Standort im LDAP-Teilbaum festlegen.
- Sie können Objekte auswählen, die einem bestimmten LDAP-Filter entsprechen.
- Oder Sie drehen die Auswahl um: Synchronisieren Sie alle Objekte außer denen aus einem bestimmten LDAP-Teilbaum oder außer denen, die einem Filter entsprechen.
Das Ganze funktioniert für verschiedene Typen – also für die Objekte, die der Connector überhaupt synchronisieren kann: Benutzerkonten, Gruppen und Computer. Bei Containern sieht es ein bisschen anders aus. Diese enthalten selbst keine Informationen, sondern gruppieren einfach nur andere Objekte. Eine OU (Organizational Unit) ist ein besonderer Container. Sie bildet die Organisationseinheit ab und ist sozusagen der Basiscontainer.
Ein Beispiel aus der Praxis: Stellen Sie sich vor, Sie verwalten Benutzerkonten aus mehreren Schulen – zum Beispiel Schule 1 bis 5. Sie möchten, dass nur die Accounts aus Schule 1 synchronisiert werden. Mit Allow-Listen können Sie das ganz einfach festlegen: „Synchronisiere nur Schule 1.“ Alles andere bleibt außen vor. Der Vorteil zeigt sich, sobald Schule 6 hinzukommt. Mit einem Deny-Ansatz müssten Sie ständig nachjustieren und auch Schule 6 explizit ausschließen. Mit Allow passiert das nicht: Da nur Schule 1 zugelassen wurde, wird Schule 6 automatisch nicht synchronisiert.
Wer zuerst kommt, geht zuerst: Prioritäten der Regeln
Stellen Sie sich vor, an Ihrer Brücke gibt es mehrere Schlagbäume, und jeder Schlagbaum hat eine eigene Regel, wer durchgelassen oder gestoppt wird. Damit das reibungslos funktioniert, braucht es eine klare Reihenfolge. Denn die Realität ist oft komplexer, als es auf den ersten Blick scheint: Mal geht es um ganze Schulen, mal nur um Teilmengen bestimmter Gruppen wie Lehrkräfte oder Schüler*innen. Da kann es schnell unübersichtlich werden.
Um hier Ordnung zu schaffen, arbeitet der AD Connector mit einer definierten Priorität für die Regeln zur selektiven Synchronisation. Diese Regeln greifen parallel, werden aber in einer festen Reihenfolge abgearbeitet:
- allowsubtree: Zuerst prüft der Connector, ob das Objekt in einem zugelassenen Teilbaum liegt.
- allowfilter: Wenn kein Teilbaum greift, kommt der LDAP-Filter zum Einsatz, um das Objekt zu erlauben.
- ignoresubtree: Danach prüft der Connector, ob das Objekt in einem ignorierten Teilbaum liegt.
- ignorefilter: Als Letztes entscheidet der LDAP-Filter, ob das Objekt ignoriert wird.
Sobald eine Regel greift, wird die Verarbeitung gestoppt. Wird das Objekt ignoriert (z. B. durch einen ignoresubtree oder ignorefilter), wird es nicht synchronisiert. Wird das Objekt zugelassen, prüft der Connector die nächste Regel. Wenn keine Regel mehr übrig ist, wird das Objekt synchronisiert.
Zwei Fahrspuren, ein System: So regeln Sie den Datenfluss
Der AD Connector verbindet zwei Verzeichnisdienste: UCS-LDAP und das Active Directory. Dabei können Daten in beide Richtungen synchronisiert werden: vom UCS ins AD oder vom AD ins UCS – oder sogar wechselseitig. Deshalb gibt es bei den Teilbaum-Regeln (allowsubtree) auch zwei Varianten: allowsubtree/.*/ucs und allowsubtree/.*/ad. In der Praxis setzt man meist beide, weil die Synchronisation oft in beide Richtungen läuft.
Bei den Filtern sieht das anders aus: Ein Filter gilt immer, unabhängig von der Synchronisationsrichtung. Das bedeutet aber auch, dass Filter separat für jede Seite definiert werden müssen, wenn sie greifen sollen.
Wie das im Detail funktioniert, schauen wir uns jetzt anhand der vier Regeltypen an.
Schlagbaum rauf: LDAP-Teilbäume zulassen (allowsubtree)
Ohne Konfiguration synchronisiert der AD Connector alles – auf beiden Seiten. Mit allowsubtree bestimmen Sie hingegen ganz klar, welche LDAP-Teilbäume synchronisiert werden sollen. Alles, was nicht dazugehört, bleibt außen vor.
Ein Beispiel: Sie möchten nur die Objekte aus Schule 1 synchronisieren. Dafür setzen Sie:
ucr set connector/ad/mapping/allowsubtree/school1/ucs="ou=school1,dc=ucs,domain"
In diesem Fall synchronisiert der Connector nur die Objekte aus ou=school1, also dem LDAP-Teilbaum von Schule 1. Objekte aus anderen Schulen wie Schule 2 werden konsequent ignoriert, selbst wenn neue Bereiche später hinzukommen. Das funktioniert übrigens in beide Richtungen:
- Vom UCS-LDAP ins Active Directory: Hier nutzen Sie allowsubtree/.*/ucs.
- Vom Active Directory ins UCS-LDAP: Dafür setzen Sie allowsubtree/.*/ad.
Wenn Sie also Schule 1 aus dem AD ins UCS-LDAP synchronisieren möchten, heißt das Kommando:
ucr set connector/ad/mapping/allowsubtree/school1/ad="ou=school1,dc=ad,domain"
allowsubtree schafft also den groben Rahmen, indem es ganze Bereiche definiert. Für noch mehr Kontrolle können Sie später zusätzlich Filter einsetzen, um einzelne Objekte gezielt einzuschließen – etwa nach Attributen oder Objektklassen. Ein Beispiel: Sie möchten nur die Objekte synchronisieren, bei denen die Beschreibung auf „Sync“ steht und die gleichzeitig zur Objektklasse „Person“ gehören. Das geht mit einem Filter:
ucr set connector/ad/mapping/allowfilter/sync="(&(description=Sync)(objectClass=person))"
Diese Filter für die Detailarbeit schauen wir uns im nächsten Abschnitt genauer an.
Präziser Durchlass: Der Filter prüft nach (allowfilter)
Nachdem Sie mit allowsubtree den groben Rahmen festgelegt haben, kommt der allowfilter ins Spiel. Während allowsubtree ganze Bereiche eines Verzeichnisbaums synchronisiert, geht der Filter eine Ebene tiefer: Er ermöglicht es Ihnen, einzelne Objekte innerhalb dieser Bereiche gezielt zuzulassen. Stellen Sie sich den allowfilter wie eine Feinkontrolle an der Zollstation vor. Der große Schlagbaum (allowsubtree) hat den Weg für den gesamten Teilbaum geöffnet, aber der Filter prüft jetzt ganz genau, welche Objekte wirklich durchgelassen werden dürfen.
Ein Beispiel: Sie möchten im Verzeichnisbaum von Schule 1 nur die Benutzer synchronisieren, die das Attribut description=sync tragen. Dann setzen Sie den folgenden Filter:
ucr set connector/ad/mapping/user/allowfilter="(description=sync)"
Damit werden nur Benutzer synchronisiert, die diesem Kriterium entsprechen – alle anderen bleiben außen vor. Der Filter funktioniert für verschiedene Objekttypen, die der Connector synchronisieren kann: user (Benutzerkonten), group (Gruppenobjekte), container (Standard-Container), ou (Organisationseinheiten) und windowscomputer (Computerobjekte).
Hinweis: Wenn ein Objekt, das dem Filter entspricht, später geändert wird und nicht mehr passt, stoppt der AD Connector die Synchronisation für dieses Objekt. Um den Abgleich zu deaktivieren, müssen Sie die Änderung auf beiden Seiten – also im UCS-LDAP und im Active Directory – vornehmen.
Schlagbaum runter: Bereiche gezielt ausschließen (ignoresubtree)
Der ignoresubtree ist das Gegenstück zum allowsubtree. Statt bestimmte Bereiche zuzulassen, legen Sie hier fest, welche LDAP-Teilbäume ignoriert werden sollen. Das ist besonders nützlich, wenn Sie gezielt bestimmte Objekte oder Bereiche von der Synchronisation ausschließen möchten.
Ein klassisches Beispiel: Sie möchten die Alumni, also ehemalige Mitarbeiter oder Schüler, nicht mehr synchronisieren. Mit ignoresubtree schließen Sie genau diesen Bereich aus:
ucr set connector/ad/mapping/ignoresubtree/ignore1="cn=alumni,dc=ucs,domain" ucr set connector/ad/mapping/ignoresubtree/ignore2="cn=alumni,dc=ad,domain"
Damit bleibt alles unterhalb von cn=alumni konsequent außen vor – sowohl im UCS-LDAP als auch im Active Directory.
Die letzte Schranke: Filter zum Ignorieren (ignorefilter)
Während ignoresubtree ganze Bereiche ausschließt, geht der ignorefilter noch einen Schritt weiter und bietet eine präzisere Kontrolle: Er ignoriert gezielt einzelne Objekte, die einem LDAP-Filter entsprechen. So können Sie festlegen, dass bestimmte Objekte von der Synchronisation ausgeschlossen werden – unabhängig davon, in welchem Teilbaum sie liegen.
Ein Beispiel: Sie möchten alle Benutzer ignorieren, bei denen in der Beschreibung no sync steht:
ucr set connector/ad/mapping/user/ignorefilter="(description=no sync)"
Der ignorefilter unterstützt dieselben Objekttypen wie der allowfilter: user, group, container, ou und windowscomputer.
Doch was ist, wenn Sie bestimmte Objekte direkt und ohne Filter ausschließen möchten? Genau dafür gibt es die ignorelist – das Thema des nächsten Abschnitts.
Das alte Tor bleibt: einzelne Objekte ausschließen (ignorelist)
Die ignorelist ist eine Besonderheit des AD Connectors. Sie funktioniert ähnlich wie der ignorefilter, ist aber etwas einfacher und eingeschränkter. Hiermit können Sie gezielt einzelne Objekte von der Synchronisation ausschließen – zum Beispiel bestimmte Benutzer oder Gruppen.
Ein typisches Beispiel wäre, den Benutzer Administrator oder root auszuschließen:
ucr set connector/ad/mapping/user/ignorelist="Administrator,root"
Die ignorelist gibt es vor allem aus Gründen der Abwärtskompatibilität. Sie war die ursprüngliche Methode, um Objekte zu ignorieren, lange bevor es Filter gab. Damit beim Update nichts kaputtgeht und bestehende Konfigurationen weiterhin funktionieren, haben wir die ignorelist beibehalten.
Ziel erreicht: Flexibel, sicher und zuverlässig
Der AD Connector bietet eine Kombination aus Allow- und Deny-Regeln, die eine präzise und sichere Steuerung der zu synchronisierenden Objekte ermöglicht – ähnlich wie bei Firewall-Regeln. Das mag auf den ersten Blick komplex wirken, weil Sie sich mit Filtern und Regeln auseinandersetzen müssen. Doch genau diese Komplexität erlaubt es, auch die individuellsten Einsatzszenarien zuverlässig abzubilden.
Das Ergebnis: Weniger administrativer Aufwand, eine geringere Fehleranfälligkeit und eine sichere Synchronisation, die bislang jede Herausforderung gemeistert hat – egal, wie speziell der Fall auch war.
Haben Sie Fragen zum Thema? Lesen Sie auch unser Handbuch-Kapitel „Selektive Synchronisation“ und diskutieren Sie mit uns im Forum.