Beschreibung

Ob das wirklich Sinn macht oder völlig Unsinnig ist, ist nicht die Frage. 
Viel mehr ist dir Frage kann das Qlik Sense das und wenn ja wie?

Ja Qlik Sense kann das und es ist ganz einfach, Qlik hat diese auch Dokumentiert und anhand dieser Dokumentation konnten wir das auch aufbauen. 

Aktuell können nicht mehrere User Directorys zusammen geführt werden!
Das heisst es können mehrere User Directorys erstellt werden, diese sind aber immer für sich alleine ein Directory.

Falls ein User Directory via ODBC erstellt wird, werden die User nicht mehr auf dem LDAP geprüft, diese müssen in dem User Directory existieren.

Wie kann es umgesetzt werden

In der Dokumentation ist gut beschrieben wie alles funktioniert und was wie gemacht werden soll. Es braucht zwei Tabelle oder Views für den User Sync via ODBC, eine mit den Usern drin und die andere Tabelle mit den Rechten/ Werten.
In der zweiten Tabelle können nicht nur Gruppen/ Rechte mitgegeben werden, sondern auch andere Werte. Die Tabelle nimmt immer ein Key Value Paar auf. Was der Key (Feld Type) ist, kann frei definiert werden, das Value ist dann immer der Wert.

Struktur der beiden Tabellen ist genau einzuhalten und wird unten Beschrieben. Wichtig sind die Feldnamen, Gross-/ Kleinschreibung ist nicht so wichtig, da gewisse DB's das bestimmen. Die Beschreibungen enthalten immer auch noch ein paar Zeilen mit Beispiel Daten.

User Table

Id,userid,name
1,JoD,John Doe

 

Attribute Table

userid,type,value
JoD,email,Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
JoD,Group,MeineApp1

 

Wenn diese beiden Tabellen mit genau den Spalten Bezeichnungen bereitgestellt sind, kann die Synchronisation in der QMC konfiguriert werden. Je nach ODBC Treiber ist es einfacher die Verbindung zuerst als System-DSN zu erfassen. Das haben wir auch so gemacht, da wir in dem Beispiel mit ORACLE verbunden haben. Falls das nicht so gemacht wird, muss der Connection String angepasst werden. Mit der DSN ist es einiges einfacher aus meiner Sicht, da wir in dem Fall zuerst die Verbindung zu DB testen können und erst dann Qlik User Sync reinspielt und dies auch wieder einzeln geprüft werden kann.

Wichtig sind die Log-Files, diese sind unter C:\Programdata\Qlik\Sense\Log\Repository\ zu finden. Dort wird falls ein Fehler beim Qlik User Sync auftritt sehr genau protokoliert was falsch ist. Am besten noch die Logging Optionen auf Info setzten, dann werden einiges mehr an Daten protokolliert.

Nun zur eigentliche Konfiguration, wie eine DSN erstellt wird ist euch hoffentlich bekannt und wenn nicht, kann diese sehr einfach im Internet nachgeschlagen werden. Wichtig ist das eine System-DSN erstellt wurde, sonst ist sie später nicht verfügbar. Wenn das alles erledigt ist, gehen wir in die QMC  => User Directory Connectors, ganz unten gibt es einen Knopf «Create New», diesen klicken und es geht los.

Im ersten Menü müsst ihr wählen welche Art von User Sync erstellt werden soll.

Hier muss der korrekte Verbindungstyp gewählt werden, am besten SQL (via ODBC) oder ODBC, beides geht.
Nun sollte die Eingabe Maske für ein User Directory aufpoppen.

 

 

 

Parameter Beschreibung
Name

Name der Verbindung, ist frei wählbar

Type

Der Typ wird durch die erste Selektion bestimmt und kann nicht angepasst werden.

Sync user for existing user

Wenn der Hacken nicht gesetzt ist, werden alle User dem Directorys synchronisiert. Wird der Hacken gesetzt werden nur bekannte User synchronisiert.

User Directory Name

Name des Directorys auf Qlik Sense.
Dieser Name wird in Security Rules und beim Anmelden an Qlik Sense verwendet. Falls SSO verwendet werden soll, muss das User Directory gleich heissen wie das Active Directory an dem sich der User anmeldet.

User Table Name

Name der Tabelle, welche die Daten der User enthält,
siehe auch «User Table» weiter oben.

Attributes Tabel Name

Name der Tabelle mit den Attributen für die User,
da können Rollen oder andere Werte geladen werden.
Struktur ist unter «Attribute Table» Dokumentiert.

Visible connection string

Connection String zur DB ohne User und Passwort,
beim Beispiel wurde eine System DSN verwendet,
bsp. «DSN=DWH_TEST;» 

Wichtig ist das am Schluss ein Semikolon («;») ist.

Encrypted connection string

Hier werden der User und Passwort erfasst.
Im Beispiel sah das so aus  «Uid=MeinDBUser;Pwd=********;»

Auch hier ist alles mit einem Semikolon abgegrenzt und am Schluss ist auch ein Semikolon.

Dieses Feld wird nicht gespeichert und bei einem erneuten öffnen müssen diese Daten neu erfasst werden! Sonst geht die Connection nach dem speichern nicht mehr!

 

Synchroniation Timeout

Wie lange soll es gehen bis ein Timeout kommt, je nach DB muss der hoch gesetzt werden, sollte aber mit 240 Sekunden reichen.

Tags

Wie üblich in Qlik Sense es sind einfach Tags.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



Nun den Knopf Apply drücken und dann sollte alles gut sein und ein grüne Meldung aufpoppen.
Falls etwas nicht geklappt hat, wird ein Fehler in Orange angezeigt, dann empfehle ich die Logs zu prüfen.
In den Logs ist sehr gute beschrieben was falsch gelaufen ist und er Fehler kann so sehr schnell gelöst werden.

Als letzte wenn die Connection fehlerfrei ist, muss noch der Task erfasst für den Reload erstellt werden.
Dieser muss direkt hier erfasst werden auf der rechten Seite gibt es die Option Task erstellen, dort kann ein neuer Task erstellt werden. Der Task selbst ist ein normaler Qlik Sense Task, das heisst ihr wisst wie das gemacht wird.
Jetzt seit ihr definitiv fertig mit dem User sync.

Prüfen ob die Sync läuft

  1. Prüfen ob der Task durch läuft
  2. Unter den Menü User, prüfen ob ein User mit dem Directory existiert und wenn ja,
    die Werte der User prüfen ob alle da sind.

Je nachdem ob bei Punkt 1 oder 2 was nicht passt muss etwas Anderes gemacht werden.
Aber mit den zwei Prüfungen, Kann geprüft werden wo was falsch gelaufen ist und in welchem Bereich.

Viel spass damit. Wir empfehlen euch verwendet wenn möglich immer das Active Directory (LDAP) und lest die Gruppen/ Rollen aus dem Directory aus. Es macht euer Leben einiges einfacher. Wenn ihr das aber mit ODBC machen müsst, habt ihr hier eine Anleitung wie es gehen kann.