Benutzer-/Gruppen-Synchronisierung
Bitte erstelle vor jeder Änderung an einer Schnittstelle/Import ein vollständiges Backup. Falls das Ergebnis nicht zufriedenstellend ist, kann dieses dann wiederhergestellt werden
Dieser Artikel zeigt dir, wie du Benutzer und Gruppen aus dem Active Directory gezielt in i-doit importierst. Der Import erfolgt immer über den console.php-Befehl ldap-sync. Am Ende des Artikels findest du ein komplettes Beispiel einer erweiterten Konfiguration.
Voraussetzungen:
- Du hast die grundlegende LDAP-/AD-Konfiguration bereits eingerichtet.
- Du verfügst über Grundkenntnisse im Bereich AD/LDAP.
In den folgenden Beispielen wird für Personen die objectClass = user und für Gruppen die objectClass = group verwendet. Wenn du nicht alle Benutzer oder Gruppen der Domaene synchronisieren möchtest, trage unter Nach Benutzern suchen in (OU) den DN/CN einer OU bzw. eines Containers ein.
Konfiguration der Filter#
Import von allen Benutzern#
Mit diesem Filter synchronisierst du ausschließlich Benutzer -- Gruppen werden dabei nicht erstellt:
1 | |
Import von Benutzern mit bestimmten Attributen#
Du kannst gezielt auf ein Attribut filtern. Im folgenden Beispiel wird nur der Benutzer synchronisiert, dessen sAMAccountName den Wert MichaelO hat:
1 | |
Import von allen Benutzern und allen Gruppen#
Dieser Filter erstellt sowohl Benutzer als auch Gruppen und weist die Benutzer den jeweiligen Gruppen zu:
1 | |
Import von Benutzern die Mitglied der Gruppe idoit-read sind#
Mit diesem Filter synchronisierst du nur Benutzer, die Mitglied der Gruppe idoit-read sind:
1 | |
Import von Benutzern die Mitglied der Gruppe idoit-read und idoit-write sind#
Dieser Filter synchronisiert nur Benutzer, die gleichzeitig Mitglied der Gruppen idoit-read und idoit-write sind:
1 | |
Import von Benutzern und Gruppen die unterhalb einer Nested Group sind#
Angenommen, du hast eine Gruppe idoit, in der die Gruppen idoit-read und idoit-write Mitglied sind. Mit diesem Filter legst du die untergeordneten Gruppen und deren Benutzer automatisch an.
Die übergeordnete Gruppe idoit selbst wird dabei nicht erstellt. Beachte, dass Gruppen in i-doit keine anderen Gruppen als Mitglied haben können.
1 | |
So filtere ich Benutzer mit mehr als einer objectClass#
Wenn sich die Benutzer dadurch unterscheiden, dass sie zwei objectClass-Attribute besitzen (z.B. person und user), baust du den Filter folgendermassen auf:
1 | |
Welche weiteren Attribute über die ldap.ini importiert werden können#
Stelle sicher, dass du mit der ldap.ini-Konfiguration vertraut bist und die Attributerweiterungen bereits konfiguriert hast. Die folgenden Einstellungen nutzen den Abschnitt [additional] der .ini-Datei.
Die Konfiguration der Attributerweiterungen#
Die Konfiguration als Tabelle:
| Feldname | Attribut | Mapping mit |
|---|---|---|
| Feldname 1 | objectSid | Key: custom_1 |
| Feldname 2 | objectGUID | Key: custom_2 |
| Feldname 3 | - | Key: custom_3 |
| Feldname 4 | - | Key: custom_4 |
| Feldname 5 | - | Key: custom_5 |
| Feldname 6 | - | Key: custom_6 |
| Feldname 7 | - | Key: custom_7 |
| Feldname 8 | - | Key: custom_8 |
Benutzer statisch Räumen zuordnen#
In der ldap.ini kannst du feste Zuweisungen von Benutzern zu Räumen eintragen. Die Benutzer werden dann dem jeweiligen Raum als Kontakt zugewiesen. Die Räume müssen vorher in i-doit existieren.
1 2 | |
Benutzer als Kontakt zu Räumen zuordnen#
Es ist möglich, über die Funktion import_rooms Personen als Kontakt zu Räumen zuzuordnen. Dazu muss die Option auf true gesetzt werden. Räume werden automatisch angelegt, allerdings ohne Standort.
1 2 3 | |
Die Anrede setzen lassen#
Um die Anrede beim Import automatisch zu setzen, konfiguriere die Option attributes[salutation]= in der .ini-Datei. Im folgenden Beispiel wird das AD-Attribut displayNamePrintable verwendet. Du kannst auch andere Attribute nutzen, solange diese im AD vorhanden sind.
Der Wert des Attributs displayNamePrintable könnte z.B. "Herr","Mr", "Mr." oder "Frau", "Mrs.", "Mrs", "Ms.", "Ms", "Miss" sein. Diese Werte können in der Verwaltung unter [Mandanten-Name] Verwaltung > Einstellungen für [Mandanten-Name] > LDAP Konfiguratiert werden.
1 | |
Diese Einstellung wurde im Beispiel der kompletten .ini Datei am Ende des Artikels mit aufgenommen.
So importiere ich Attribute aus dem LDAP#
Wenn du die Attributerweiterungen bereits konfiguriert hast, musst du als Nächstes die Konfigurationsdatei des LDAP-Sync (ldap.ini) anpassen.
Die verfügbaren Attribute findest du in deiner AD-Konfiguration. Eine Übersicht, welche Attribute zu welchem Feld gehören, findest du z.B. bei SelfADSI.
Das folgende Beispiel zeigt ein typisches Attribut-Mapping:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
In diesem Beispiel ist das Stammdaten-Attribut department mit dem gleichnamigen LDAP-Attribut gemappt. Zusätzlich wird die Attributerweiterung verwendet. Der Aufbau für z.B.
1 | |
funktioniert so:
attributes weist den Handler an, das i-doit-Attribut [custom_1] mit dem LDAP-Attribut objectSid zu synchronisieren. Nach der Synchronisation findest du folgende Stammdaten vor:
Weitere Optionen#
autoReactivateUsers#
Diese Einstellung setzt vor der Synchronisierung automatisch alle Benutzer auf den Status "normal". Das ist hilfreich, falls Benutzer versehentlich archiviert oder gelöscht wurden.
Info
Wir sollten uns bewusst sein, dass es mit NDS oder OpenLDAP derzeit nicht möglich ist, gelöschte Benutzer zu identifizieren, um sie später zu archivieren. Benutzer sind dann immer aktiviert!
1 | |
ignoreUsersWithAttributes#
Mit dieser Option verhinderst du die Synchronisation unerwünschter Verzeichnisobjekte. Ein Benutzer wird nicht synchronisiert, wenn ignoreFunction für ALLE ausgewählten Attribute fehlschlaegt.
Standardmäßig steht ignoreUsersWithAttributes=[], sodass nichts ignoriert wird.
Im folgenden Beispiel werden nur Benutzer importiert, bei denen die Attribute samaccountname, sn, givenname und mail nicht leer sind:
1 2 3 4 | |
ignoreFunction#
Die Prüffunktion zum Ignorieren von Benutzern (siehe ignoreUsersWithAttributes). Dies kann ein beliebiger Funktionsname sein, der über call_user_func oder die folgenden definierten Funktionen aufrufbar ist:
1 2 3 4 | |
Beispiel: empty würde als empty($value) ausgeführt werden
So prüfst du auf leere Attribute:
1 | |
Synchronisiere leere Attribute#
Diese Option entscheidet, ob geleerte Attribute aus dem AD mit i-doit synchronisiert werden sollen oder nicht.
1 | |
Die komplette ldap.ini#
Hier findest du eine vollständige, anpassbare .ini-Datei. Der erste Teil basiert auf der Konfigurationsdatei für Console Commands.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | |
Damit die .ini Datei verwendet wird, muss diese mit dem -c parameter angegeben werden.
1 | |









