LDAP/AD-Synchronisation mittels Job
Sie können die Kontakt- und Nutzerdaten in KIX Pro mit Daten aus dem LDAP/Active Directory befüllen. Diese Daten dienen der Verwendung als
Kontakte im Ticket- und Asset-Bereich
Kundennutzer ("User" mit "IsCustomer")
Agentennutzer ("User" mit "IsAgent").
Je nach verfügbarer LDAP-Quelle kann die Datensynchronisation auf verschiedenen Wegen erfolgen:
Synchronisations-Script bzw. -Daemon via Konsole-Kommando und SysConfig-Schlüssel
automatisiert über event- oder zeitbasierte Synchronisations-Jobs
Voraussetzung: Mindestens ein LDAP-basierter Verzeichnisdienst, welcher vom Backend des KIX erreichbar ist.
Achtung
Änderungen an den Kontaktdaten müssen dann ausschließlich im LDAP/AD erfolgen. In KIX vorgenommene Änderungen werden mit der Synchronisation überschrieben.
Informationen zur Anbindung von LDAP/AD-Hosts finden Sie auch unter:Authentifizierung/Autorisierung und Anbindung Active Directory
Synchronisations-Skript oder -Daemon verwenden
Konsole-Kommando | Console::Command::Maint::Auth::Sync::Synchronize |
SysConfig-Schlüssel | Daemon::SchedulerCronTaskManager::Task###AuthSynchronize |
Sie können ein Skript bzw. Daemon zur Vereinfachung der AD-Anbindung verwenden, wenn alle Kontakte aus dem LDAP auch als Nutzer in KIX vorhanden sein sollen. Das Einrichten eines LDAP2Contact-Jobs kann somit entfallen.
Das Konsole-Kommando Console::Command::Maint::Auth::Sync::Synchronize startet ein Synchronisations-Script, welches die im KIX verfügbaren Kontakte ausschließlich aus LDAP-Quellen bezieht und diese gleichzeitig als Nutzer im System zur Verfügung stellt. Bei Ausführung des Kommandos werden alle konfigurierten Auth.-Sync.-Backends abgefragt. Die daraus ermittelten Nutzer und Kontakte werden in KIX angelegt und ihren Berechtigungskontexten sowie -rollen zugeordnet (s. Authentifizierung/Autorisierung und Anbindung Active Directory). Die Konsole finden Sie im Menü .
Soll der Abgleich periodisch automatisiert erfolgen, können Sie den SysConfig-Schlüssel:
aktivieren (Menü ). Bitte beachten Sie die Zeitplanung, mit der die Ausführung erfolgt.Anmerkung
Wird der SysConfig-Schlüssel Console::command::admin::daemon::Reload.
gültig gesetzt, reicht ein Reload der Frontend Konfiguration nicht aus. Es muss der Daemon neu gestartet werden. Nutzen Sie dafür das Konsole-Kommando:Automatische Deaktivierung nicht mehr verfügbarer Kontakte
Sie können das Synchronisations-Script bzw. -Daemon auch für das automatische Deaktivieren von Nutzern und Kontakten verwenden, die nicht mehr in den LDAP-Quellen vorhandenen sind. Dies kann bspw. bei unvollständigen Offboarding-Prozessen vorkommen, in welchen angrenzende Tools nicht informiert werden.
Da diese Einträge in KIX nicht mehr aktualisiert werden, findet auch keine Deaktivierung statt. Die Deaktivierung kann manuell erfolgen.
Alternativ kann das Kommando Console::Command::Maint::Auth::Sync::Synchronize mit der Option --invalidate-unsynced ausgeführt werden. Das Skript deaktiviert alle Nutzer und Kontakte, die nicht mehr aus einer der Auth.-Sync-Quellen bezogen werden können.
Damit Systemzugänge oder manuell angelegte Nutzer diesem Verhalten nicht unterliegen, können ausgewählte Login-Kenner ausgeschlossen werden. Diese Login-Kenner werden im SysConfig-Schlüssel Entfernen Sie keinesfalls die initialen Einträge!
mittels regulärer Ausdrücke definiert.Synchronisations-Job einrichten
Sie können spezifische LDAP-Quellen direkt anbinden, um die darin enthaltenen Kontaktdaten periodisch zu synchronisieren ohne auf die Authentifizierungssynchronisation zurückzugreifen. Richten Sie dazu einen Synchronisations-Job wie nachfolgend beschrieben ein.
Pro Job können mehrere LDAP/AD-Hosts in unterschiedlichen Formaten angegeben werden. Zudem können auch Verzeichnisdienste abgefragt werden, die eine Größenbeschränkung der Ergebnismenge verwenden ("max size exceeded").
Durch Angabe der Seitengröße (Request-Page-Size) kann eine blockweise Verarbeitung erfolgen.
Navigieren Sie im Explorer zu
.Im Contentbereich wird eine Tabelle geöffnet, welche alle im System angelegten Jobs auflistet.
Klicken Sie in der Tabelle auf
.Es wird ein Formular-Dialog geöffnet, in dem Sie schrittweise den neuen Job anlegen können.
Nutzen Sie die kleinen blauen Pfeil- oder Punktschaltflächen, um zum nächsten Schritt zu gelangen oder um zwischen den Schritten zu wechseln.
Job Information
Wählen Sie unter JobTyp die Option "Synchronisation".
Vergeben Sie dem Job einen aussagekräftigen Namen.
Optional: Beschreiben Sie den Job im Feld "Kommentar".
Setzen Sie den Job auf "gültig".
Ausführungsplan
Wählen Sie aus, wann die Synchronisation erfolgen soll (Wochentage und/oder Uhrzeit).
Aktionen
Wählen Sie die Macro-Action LDAP zu Kontakt aus.
Es werden weitere Eingabefelder angezeigt.
Tragen Sie die Verbindungsdaten zum LDAP/AD-Server ein sowie die Attribute, welche mit dem LDAP/AD-Server synchronisiert werden sollen.
Siehe: Konfigurationsparameter
Sie können optional weitere Hosts angeben.
Klicken Sie auf
.
Mit jedem Klick wird eine weitere Action geöffnet.
Wählen Sie erneut "LDAP zu Kontakt" aus und tragen Sie auch hier die Verbindungsdaten und Attribute ein.
Zur besseren Übersicht können Sie die Eingabefelder der Aktionen ein- und ausklappen. Klicken Sie dazu auf die kleine Pfeilschaltfläche neben dem Plus-Symbol.
Speichern Sie den Job.
Die Synchronisation wird zum angegebenen Zeitpunkt ausgeführt.
Anmerkung
Wird ein LDAP zu Kontakt Synchronisations-Job ausgeführt und existiert der Nutzer bereits, dann wird der gefundene Nutzer aktualisiert und der Job fährt mit dem nächsten Nutzereintrag fort.
Konfigurationsparameter
Informationen zu den Parametern finden Sie auch unter: Attribute der Konfiguration
Parameter | Bedeutung |
---|---|
Überspringen | Ist hier das Häkchen gesetzt, wird die entsprechende Aktion nicht ausgeführt. Damit können Sie einzelne Aktionen von der Synchronisation (zeitweise) ausschließen, ohne den Job neu zu konfigurieren. Sind mehrere Aktionen im Job konfiguriert (z. B. zwei verschiedene LDAP-Server), laufen die anderen Aktionen normal weiter. |
Host | FQDN welches der LDAP-Server für die Synchronisation nutzt oder kommaseparierte Liste wenn mehrere Hosts angesprochen werden sollen. Beispiele:
|
BaseDN | Einstiegspunkt in die Verzeichnisstruktur. Beispiel: |
Contact / User Sync Map | JSON-String, der das Mapping von KIX-Attributen zu AD-/LDAP-Attributen beinhaltet. Das Mapping muss folgende Form haben: { "KIXAttributName" : "LDAPAttributName", "KIXAttributName" : "LDAPAttributName" } Alle im Mapping angegebenen Attribute müssen existieren. Anderenfalls kann keine korrekte Zuordnung erfolgen. Achten Sie auch auf korrekte Schreibweise. Der Kontakteintrag wird auf Basis der aus dem LDAP/AD ermittelten oder fixierten Werte erstellt bzw. aktualisiert. Die Angabe folgender Attribute ist dazu mindestens erforderlich:
AchtungAchtung!: Sind diese Angaben im LDAP-/AD-Eintrag nicht gesetzt (leer), kann kein Kontakteintrag erzeugt oder aktualisiert werden. Beispiel einer UserSync Map "ContactUserSync": { "Email": "mail", "Email1": "SET:mail@example.com", "Email3": "mail", "Email5": "automatedmail", "Title": "title", "Firstname": "givenname", "Lastname": "sn", "Street": "streetAddress", "City": "l", "Zip": "postalCode", "Phone": "telephoneNumber", "Mobile": "mobile", "Fax": "facsimileTelephoneNumber", "UserLogin": "sAMAccountName", "PrimaryOrganisationID": "SET:123", "OrganisationIDs": [ "department", "SET:13" ], "ImgThumbNail": "BINARY:jpegPhoto", "DynamicField_Source": "SET:ActiveDirectory1", "DynamicField_XYZ": "department", "DynamicField_ZIPCity":"CONCAT: postalCode}-{l}-DE" } |
UID | Name des LDAP-Attributes, welches zur eindeutigen Identifikation eines LDAP-Eintrages verwendet wird (Nutzerlogin). Zum Beispiel: Sollte kein TippDurch Setzen des Attributs "AuthAttr" im SysConfig-Schlüssel können Sie einen alternativen Kenner für das UserLogin setzen.Ist dieser bspw. auf "mail" gesetzt, kann sich ein Nutzer mit seiner im System hinterlegten Mailadresse anmelden. Werden zudem die Nutzerdaten mit dem LDAP per Job synchronisiert, kann der Nutzer sich immer mit seiner aktuellen Mailadresse anmelden, auch wenn diese sich z. B. aufgrund von Namensänderung geändert hat. Sollte die Anmeldung via Mailadresse fehlschlagen, wird die UID/das im System hinterlegte Nutzer Login als Fallback für die Authentifizierung verwendet. Bitte beachten Sie:Die Aktualisierung eines Kontaktattributs "Email" ist nur dann möglich, wenn in KIX ein Nutzereintrag vorhanden ist. Anderenfalls wird bei Änderung einer Email-Adresse im AD/LDAP ein neuer Kontakt angelegt. |
Parameter | JSON-String für LDAP-Verbindungsparameter, z. B.: Default: { "port": "389", "version": "3", "timeout": "120", "async": "0" } |
Suchnutzer DN | User DN des Nutzers mit dem sich KIX mit dem LDAP Server verbindet, um die Suche durchzuführen Beispiel: |
Suchnutzer Password | Passwort des Nutzers mit dem sich KIX mit dem LDAP Server verbindet, um die Suche durchzuführen |
Beschränkung auf GroupDN | Erlaubt die Einschränkung der abzufragenden Einträge auf Objekte, die in der angegebenen Gruppe enthalten sind. Dies kann erforderlich sein, wenn die Gruppenmitgliedschaft nicht über einen direkten Filter auf dem Kontakteintrag eingeschränkt werden kann. |
Access Attribute | Definiert das LDAP-Attribut, das zum Überprüfen der Gruppenmitgliedschaft verwendet wird. Verwendet memberUid, wenn nichts angegeben ist. Beispiel: |
User Attribute | Legt fest, ob der Distinguished Name des Benutzers ("DN") oder das im Parameter "UID" definierte LDAP-/AD-Attribut zur Überprüfung der Gruppenmitgliedschaft verwendet wird. |
Immer filtern | Permanenter LDAP Filter, der für alle Anfragen angewandt wird. Syntax: Beispiele:
Sie können auch Gruppenfilter eingetragen. Weitere Beispiele finden Sie unter: http://www.selfadsi.de/ldap-filter.htm |
Zeichensatz | Zeichensatz, in den die LDAP-Suchergebnisse konvertiert werden. Default: utf-8 |
Seitengröße | Sie können bei Bedarf die Gesamtanzahl der zu synchronisierenden Daten in mehrere Datenpakete zu je n Datensätzen aufsplitten. Bspw. wenn Sie vom Server die Nachricht erhalten, dass der Antwortdatensatz zu groß ist ("max size exceeded"). Tragen Sie hier die Anzahl der Datensätze ein, die pro Anfrage (Request) übertragen werden. Die Verarbeitung erfolgt dann blockweise in Paketen mit bspw. 20 Datensätzen. |
Debug | Debug-Ausgaben de-/aktivieren. Mögliche Werte: Ist der Parameter aktiv, werden wesentliche Schritte des LDAP-/AD-Datenabgleichs im Log des Jobs (Job-Historie) vermerkt. Hinweis
|
Dry Run | Trockenlauf (Testlauf) de-/aktivieren. Ist der Parameter aktiviert, erfolgt kein tatsächlicher Datenabgleich. Die aus der LDAP-/AD-Quelle ermittelten Daten werden jedoch im Job-Log vermerkt, als würde ein Update stattfinden. Der Datenabgleich kann somit im Vorfeld zu Testzwecken simuliert werden. HinweisDiese Option sollte wie Debug nur vorübergehend aktiviert werden, da sonst die Historieneinträge sehr umfangreich werden und entsprechend Speicherbedarf erzeugen. Es wird weiterhin empfohlen, diese Funktion in Verbindung mit AlwaysFilter zu verwenden um spezifische oder eine geringe Anzahl von LDAP-Einträgen zu prüfen. |
Anmerkung
Ist im Mapping das User-Attribut "Login" enthalten, wird auch ein User synchronisiert.
Ein vorhandener Kontakt wird beim Ausführen des Jobs, basierend auf dem Mapping, aktualisiert.
Ein nicht vorhandener Kontakt wird beim Ausführen des Jobs neu erstellt.
Hinweis
Die Nutzeranmeldung ist von der Synchronisation nicht direkt betroffen, jedoch die Funktion des "AuthSync".
Beim automatischen Import ist auf Datenbeschränkungen des AD zu achten (blockweises Einlesen).
Single-Point-of-Trust ist das externe System.
Konfigurationshinweise
Sie können für bestimmte KIX-Attribute an einem Kontakt/Nutzer einen voreingestellten Wert anstelle eines LDAP-Attributes angeben. Dies erfolgt über das Keyword "SET:", welches vor dem zu setzenden Wert eingebunden wird. Das Keyword ist caseinsensitive.
Beispiel: SyncMap mit fixierten Parametern
{ "Email": "mail", "Title": "title", "Firstname": "givenname", "Lastname": "sn", "Street": "streetAddress", "City": "l", "Zip": "postalCode", "Phone": "telephoneNumber", "Mobile": "mobile", "Fax": "facsimileTelephoneNumber", "UserLogin": "sAMAccountName", "IsAgent": "SET:1", "IsCustomer": "SET:0", "PrimaryOrganisationID": "department" }