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="OneOffixx 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
- User.Title
- 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 OneOffixx-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 OneOffixx verwendet wird. Falls er nicht nur in OneOffixx 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 desClaim
-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":
Note
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.
<Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/function" ignoreClaimIfEmpty="true" property="description" useValueIfEmpty="true" />
Claims unterstützen zudem Regex, sodass z. B. auf Teile von Werten zugegriffen werden kann.
<!-- Wert für Property 'uid' ist 'bernhard.diener@oneoffixx.com' -->
<Claim type="http://schema.oneoffixx.com/ws/2011/01/identity/claims/uid" property="uid">
<Regex match="0" group="2">([a-z\\.]*)@([a-z\\.]*)</Regex> <!-- liefert 'oneoffixx.com' -->
</Claim>
- 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:
<Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/function" property="description" />
<Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/function" lcid="1036" property="descriptionFR" />
<Claim type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/function" lcid="1040" property="descriptionIT" />
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.