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.

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland