SQL
Benutzerdaten aus einer SQL-Datenbank können über die SqlSyncSource synchronisiert werden. Die Verbindung wird über das ConnectionString-Element aufgebaut, welches auch verschlüsselt abgelegt werden kann.
Über das ConnectionProvider-Element werden folgende ADO.NET-Provider unterstützt. Die Benutzersynchronisierung läuft serverseitig; die dafür nötigen Provider-Bibliotheken werden mit dem Server ausgeliefert und beim Start von primedocs registriert — eine zusätzliche Installation ist nicht nötig:
System.Data.SqlClient— Microsoft SQL ServerMySqlConnector— MySQL/MariaDB (der ältere NameMySql.Data.MySqlClientwird als Alias weiterhin akzeptiert)Oracle.ManagedDataAccess.Client— OracleSystem.Data.Odbc— generischer ODBC-Zugriff; hierfür muss auf dem Server zusätzlich ein passender ODBC-Treiber bzw. DSN für die Zieldatenbank vorhanden sein (Betriebssystem-Ebene)
Die Abfrage wird über das Query-Element definiert. Als Parameter wird der queryKey benötigt. Die Syntax im Query-Element muss dem SQL Datenbanksystem entsprechen:
Beispiel: MS SQL
SELECT FirstName, LastName FROM Users WHERE Email = @queryKey
Das Mapping wird ebenfalls unterstützt.
Konfiguration
<?xml version="1.0" encoding="utf-8"?>
<UserSyncConfig>
<SqlSyncSource name="Sql" queryKey="primedocsIdentifier">
<ConnectionString>Data Source=sqlserver.local;Initial Catalog=SampleData;User ID=user;Password=pw;Encrypt=False</ConnectionString>
<ConnectionProvider>System.Data.SqlClient</ConnectionProvider>
<Query>SELECT [givenname],[surname], [email] FROM [Table] WHERE UserId = @queryKey</Query>
<!-- Optional: Result Mapping Syntax is supported -->
<ResultMapping>
<Mapping>
<Map Source="email" Target="fromMappingEMail" />
</Mapping>
</ResultMapping>
<!-- Claim Mapping - column names are property names-->
<Claims>
<Claim type="http://schema.oneoffixx.com/ws/2011/01/identity/claims/givenname" ignoreClaimIfEmpty="true" property="givenname" />
<Claim type="http://schema.oneoffixx.com/ws/2011/01/identity/claims/surname" ignoreClaimIfEmpty="true" property="surname" />
<Claim type="http://schema.oneoffixx.com/ws/2011/01/identity/claims/email" ignoreClaimIfEmpty="true" property="fromMappingEMail" />
</Claims>
</SqlSyncSource>
</UserSyncConfig>
Optionen
Neben den gemeinsamen SyncSource-Attributen (name, queryKey, …) stehen folgende Elemente zur Verfügung:
| Element | Erforderlich | Beschreibung |
|---|---|---|
ConnectionString | ja | Verbindungszeichenfolge zur Datenbank. Kann verschlüsselt abgelegt werden. |
ConnectionProvider | ja | Datenbanktreiber, z. B. System.Data.SqlClient (siehe unterstützte Typen oben). |
Query | ja | SQL-Abfrage mit dem Parameter @queryKey; die Syntax muss dem verwendeten Datenbanksystem entsprechen. |
ResultMapping | nein | Optionales Mapping der Spalten auf Zielwerte. |