Benutzersynchronisation


Die Synchronisierung von Benutzerfeldern kann im Dashboard für eine Datenbank unter "Settings" → "User Auth & Sync Settings" konfiguriert werden.

Beispielkonfiguration

<UserSyncConfig batchSize="1" syncIntervalInSeconds="86400"> <!-- List of various sync sources available, e.g. LdapSyncSource --> <LdapSyncSource name="primedocs AD" queryKey="OneOffixxIdentifier" isOptional="false"> <QueryKeyRegex group="0" match="0">([a-z0-9])*</QueryKeyRegex> [...] <!-- Any sync source has claims --> <Claims> <Claim type="http://schema.oneoffixx.com/ws/2011/01/identity/claims/uid" property="uid" /> <Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenName" property="givenName" /> <Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sn" property="sn" /> </Claims> </LdapSyncSource> </UserSyncConfig>

Attribute

  • batchSize Der UserSyncJob synchronisiert Benutzer stapelweise. Über dieses Attribut kann die Anzahl an Benutzern in einem Stapel angepasst werden. Der Wert muss zwischen 1 und 100 liegen. – Standard: 10

  • syncIntervalInSeconds Legt das Interval in Sekunden für die Synchronisierung fest. Der Wert muss grösser als 60 sein. Standard: 86400 (= 1 Tag)

  • syncTimeoutInSeconds Beim Starten der Synchronisierung wird ein Zeitstempel beim Benutzer hinterlegt. Falls während der Synchronisierung ein Fehler auftritt oder die Aktion abgebrochen wird, verbleibt der Benutzer in diesem Status. Über dieses Attribut kann ein "Timeout" in Sekunden eingestellt werden, sodass der Benutzer wieder vom Synchronisierungsprozess erfasst wird. Der Wert muss zwischen 10 und 3600 liegen. Standard: 60

  • skipLockedFields Im Standardfall werden alle Felder – je nach Konfiguration – synchronisiert. Falls gesperrte Benutzerfelder von der Synchronisierung ausgeschlossen werden sollen, kann dieser Wert auf true gestellt werden. Standard: false


SyncSources

Zur Synchronisierung stehen aktuell folgende Quellen zur Verfügung:

Alle SyncSources haben folgende Attribute und Elemente gemeinsam:

  • name

  • queryKey Feldname, der als Parameter für die Abfrage verwendet werden soll. Verfügbar sind:

    • OneOffixxIdentifier

    • User.SID - Hinweis: Dies steht nur bei bestehenden Benutzern zur Verfügung, der WhatIf funktioniert nicht damit.

    • User.Title - Hinweis: Dies steht nur bei bestehenden Benutzern zur Verfügung, der WhatIf funktioniert nicht damit.

    • Jede SyncSource in der Pipeline kann weitere Felder hinzufügen, sodass man z.B. aus dem Active Directory die E-Mail des Benutzers liesst, welche man dann in einem anderen Schritt weiterverwenden kann.

  • isOptional

  • QueryKeyRegex (optional) Falls nur ein Teil des Wertes des QueryKeys verwendet werden soll, kann dieser hier spezifiziert werden.

  • Claims siehe nächster Abschnitt

HINWEIS beim Gebrauch von "User.Title"
Der User.Title ist der Name des Benutzers in der primedocs-Datenbank. Über die Eigenschaften des "Active Directory Connector" bzw. des "Office 365 Connector" kann die Quelle des Namens bestimmt werden. Eine Anpassung ist jederzeit möglich und wird bei einer Benutzersynchronisierung angewendet.


Claims

<Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage" property="wWWHomePage" />
  • type beschreibt den Claim-Pfad. Er muss ein gültiges URI-Format aufweisen, muss aber nicht existieren – solange er nur in primedocs verwendet wird. Falls er nicht nur in primedocs verwendet wird, ist es vorteilhaft, sich an die Claims von Microsoft zu halten.

  • property ist das Gegenstück zum Property, das in der SyncSource definiert wird. Die Werte der beiden müssen identisch sein.

Neben den direkten Zuweisungen, kann man Claims auch noch bestimmte Regeln hinterlegen:

  • useValueIfEmpty Wenn auf true: wenn das Property in der SyncSource leer ist, wird der vorgegebene Wert innerhalb des Claim-Elements genommen. Ist kein Wert vorhanden, bleibt das Feld leer.

<Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/function" property="description" useValueIfEmpty="true">Fallback-Value</Claim>

Definiert man einen Claim für die Benutzersynchronisation und mappt diesen am Ende auf ein Feld, wird der entsprechende Wert übernommen. Möchte man aber z. B. vermeiden, dass leere Eigenschaften aus der SyncSource übernommen werden, kann man über folgende Eigenschaft den Claim auch "ignorieren":

HINWEIS
Die LdapSyncSource mappt von sich aus nur "vorhandene" Attribute, andere Sources behandeln dies anders.

  • ignoreClaimIfEmpty Wenn auf true, werden in der SyncSource leere Felder ignoriert. Je nach SyncSources werden andernfalls auch leere Felder zum Benutzer synchronisiert und benutzerdefinierte Werte überschrieben.

Claims unterstützen zudem Regex, sodass z. B. auf Teile von Werten zugegriffen werden kann.

  • match Index des Matches, meistens 0

  • group Index der Gruppe

    • Achtung! Die Gruppenzahl kann um 1 erhöht sein, da in Gruppe 0 gegebenenfalls der Fullmatch liegen kann.

  • Wert Gültiger Regex-Ausdruck


Mehrsprachigkeit

Die Benutzersynchronisation synchronisiert im Standardfall nur Felder in der Standarddokumentsprache. Möchte man z. B. bestimmte Feldinhalte auch in anderen Sprachen setzen, so ist dies über das Setzen des lcid-Attributes möglich:

In diesem Beispiel wird der Claim http://schemas.xmlsoap.org/ws/2005/05/identity/claims/function in der Standarddokumentsprache über das description-Property befüllt. Im Beispiel wird für die Dokumentsprache Italienisch und Französisch (LCID 1040 bzw. 1036) der gleiche Claim der jeweiligen Eigenschaft aus der Quelle zugeordnet. Die Regeln der normalen Claims gelten auch für diese "übersetzten" Claims.


Offboarding

Benutzer, welche in den konfigurierten “SyncSources” nicht werden, können über eine zusätzliche Konfiguration automatisch aus der Datenbank entfernt werden.

Das System überprüft die letzte erfolgreiche Synchronisationszeit für jeden Benutzer und setzt den Benutzer entweder auf den Status “Zur Löschung ausstehend“ (“PendingDeletion”) oder “Zur Löschung markiert“ (“FlaggedForDeletion”), wenn die entsprechenden Wartezeiten überschritten wurden.

Modus

Das automatische Benutzer Offboarding ist mit der entsprechenden Konfiguration aktiv und kann über den “mode” gesteuert werden.

  • “disabled”: Dies entspricht dem Standardwert. Hierbei ist die automatische Benutzerbereinigung deaktiviert.

  • “enabledWithoutAutomaticDeletion”: In diesem Modus werden Benutzer bereits in den entsprechenden Status verschoben, allerdings wird keine Löschung durchgeführt. Dieser Modus bietet sich an um das System zu testen ohne Gefahr zu laufen, dass Benutzer gelöscht werden.

  • “enabled”: In diesem Modus werden Benutzer in den entsprechenden Status verschoben und am Ende wird der Benutzer auch aus der Datenbank entfernt.

Status-System

Nach einer erfolgreichen Benutzersynchronisierung wird der Zeitpunkt der Synchronisierung am Benutzer gespeichert.
Wird ein Benutzer jedoch beispielsweise aus dem Active Directory gelöscht, wird der Zeitstempel nicht mehr aktualisiert.
Über das Element “SetToPendingDeletion” kann festgelegt werden, nach wie vielen Tagen seit der letzten erfolgreichen Synchronisierung der Benutzer in den Status “PendingDeletion” verschoben werden soll.
Ebenso wird über das Element “SetToFlaggedForDeletion” die Anzahl der Tage angegeben, nach denen der Benutzer mit dem Status “FlaggedForDeletion” markiert wird.

Standardeinstellung, falls es nicht konfiguriert wird:

  • 30 Tage für “SetToPendingDeletion”

  • 60 Tage für “SetToFlaggedForDeletion”

Beispiel:

Ein Benutzer in der Datenbank wurde am 1. Januar zuletzt erfolgreich synchronisiert.
Am 2. Januar wurde der Benutzer aus dem Active Directory entfernt.
Mit der Einstellung “SetToPendingDeletion” nach dem fünften Tag würde der Benutzer ab dem 6. Januar, also fünf Tage nach der letzten erfolgreichen Synchronisierung, in den Status “PendingDeletion” verschoben.
Mit der Einstellung “SetToFlaggedForDeletion” nach dem zehnten Tag würde der Benutzer ab dem 11. Januar, in den Status “FlaggedForDeletion” verschoben werden.

Abhängig vom gewählten Modus würden alle Benutzer mit “FlaggedForDeletion” automatisch gelöscht werden.

Sollte allerdings der Benutzer (evtl. durch eine versehtnliche Löschung) am 4. Januar wieder im Active Directory finden lassen, würde der Prozess von vorn beginnen.

Gelöschte Benutzer werden mitsamt Ihren Berechtigungen, privaten Textbausteinen, Profilen usw. gelöscht und können nicht wieder hergestellt werden.

Es empfiehlt sich initial grössere Zeitabstände zu wählen und mit der Einstellung “enabledWithoutAutomaticDeletion” zu testen.

Ausnahmen

Hat man technische Benutzer eingerichtet, welche gar nicht im Active Directory verfügbar sind, dann müssen diese Benutzer von der Synchronisierung ausgeschlossen werden. Dies kann über das Admin Dashboard erledigt werden.

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland