Verwaltung der Sicherheit mit Section Access
Mithilfe des Zugriffsabschnitts im Datenladeskript können Sie die Sicherheit verwalten. Auf diese Weise kann eine einzelne Datei verwendet werden, die die Daten für eine Reihe von Benutzern oder Benutzergruppen enthält. Qlik Sense nutzt die Informationen in Section Access für die Authentifizierung und Autorisierung und schränkt diese Daten so ein, dass die Benutzer nur die für sie vorgesehenen Daten einsehen können.
Da die Zugriffskontrolle in das Dokument integriert ist, sind die Dateien auch dann geschützt, wenn sie heruntergeladen und versehentlich in falsche Hände gelangen sollten. Wenn die Sicherheitsanforderungen jedoch hoch sind, sollten das Herunterladen von Dateien und die Offline-Nutzung unterbleiben und Dateien sollten nur vom Qlik Sense-Server veröffentlicht werden. Da sämtliche Daten in einer Datei gespeichert sind, kann die Datei sehr groß werden.
Die App muss veröffentlicht werden, bevor Section Access-Steuerelemente angewendet werden können. Beim Laden der App werden keine neuen oder geänderten Section Access-Skripts angewendet.
Damit vertrauliche Daten nicht offengelegt werden, entfernen Sie alle angehängten Dateien mit Section Access-Einstellungen aus der App, bevor Sie sie veröffentlichen.
Angehängte Dateien werden gemeinsam mit der App veröffentlicht. Wenn die veröffentlichte App kopiert wird, sind die angehängten Dateien auch in der Kopie enthalten. Wenn den angehängten Datendateien jedoch Abschnittszugriffseinschränkungen zugewiesen wurden, bleiben diese Einstellungen beim Kopieren der Daten nicht erhalten. Das bedeutet, dass alle Benutzer der kopierten App alle Daten in den angehängten Daten sehen können.
Sie dürfen Master-Dimensionswerten keine Farben zuweisen, wenn Sie Section Access verwenden oder mit vertraulichen Daten arbeiten, da die Werte durch die Farbkonfiguration offengelegt werden könnten.
Abschnitte im Skript
Qlik Sense verarbeitet die Zugriffskontrolle wie andere Daten auch, d. h. sie werden in Form einer oder mehrerer Tabellen durch das Skript eingelesen. Diese Tabellen können dadurch in einer normalen Datenbank gespeichert werden. Die Skriptanweisungen, die die Sicherheitstabellen verwalten, werden innerhalb des Zugriffsabschnitts angegeben, welcher im Skript durch die Bedingung Section Access eingeleitet wird.
Falls ein Zugriffsabschnitt im Skript definiert ist, muss der Teil des Skripts, der die App-Daten lädt, in einem anderen Abschnitt stehen, der durch die Bedingung Section Application eingeleitet wird.
Example:
Sicherheitsfelder
Die Berechtigungsstufen werden Benutzern in einer oder mehreren Tabellen zugewiesen, die innerhalb des Section Access geladen werden. Diese Tabellen können mehrere unterschiedliche benutzerspezifische Systemfelder enthalten, typischerweise USERID, und das Feld, welches die Berechtigungsstufe, ACCESS, definiert. Alle Section Access-Systemfelder werden für die Authentifizierung oder die Autorisierung herangezogen. Nachfolgend finden Sie eine komplette Liste der Zugriffsabschnitt-Systemfelder.
ACCESS
Definiert, welchen Zugriff der entsprechende Benutzer haben soll.
Der Zugriff auf Qlik Sense-Apps kann bestimmten Anwendern oder Anwendergruppen gewährt werden. In der Sicherheitstabelle können Benutzer den Berechtigungsstufen ADMIN oder USER zugewiesen werden. Ist einem Benutzer keine gültige Berechtigungsstufe zugeordnet, kann er die App nicht öffnen.
Eine Person mit ADMIN-Berechtigungen besitzt Zugriff auf alle Daten in der App. Eine Person mit USER-Berechtigungen kann nur auf Daten zugreifen, wie in der Sicherheitstabelle festgelegt.
Wenn Section Access im Szenario der Generierung einer On-Demand-App (ODAG) in der Vorlagen-App verwendet wird, muss der INTERNAL\SA_API-Benutzer als ADMIN in der Section Access-Tabelle enthalten sein. Hier ein Beispiel:
USERID
Enthält einen String, der einem Qlik Sense-Benutzernamen entspricht. Qlik Sense prüft die Login-Daten des Proxys und vergleicht sie mit den Werten dieses Felds.
GROUP
Enthält einen String, der einer Gruppe in Qlik Sense entspricht. Qlik Sense ordnet den vom Proxy bereitgestellten Benutzer gegenüber dieser Gruppe zu.
OMIT
Enthält den Namen des Felds, das für diesen speziellen Benutzer ausgelassen werden soll. Darf der Anwender alle Felder sehen, bleibt dieses Feld leer. Es können die üblichen Wildcards verwendet werden. Es kann mit der subfield-Funktion gearbeitet werden.
Qlik Sense vergleicht den vom Proxy bereitgestellten Benutzer mit UserID und ordnet den Benutzer gegenüber den Gruppen in der Tabelle zu. Wenn der Benutzer zu einer Gruppe gehört, der Zugriff eingeräumt ist, oder der Benutzer übereinstimmt, erhält er Zugriff auf die App.
Da die Qlik Sense-Logik auch im Zugriffsabschnitt angewandt wird, können die Sicherheitsfelder in mehreren Tabellen gespeichert werden. Alle in den LOAD- oder SELECT-Bedingungen im Section Access aufgelisteten Felder müssen groß geschrieben werden. Konvertieren Sie alle Feldnamen mit Kleinbuchstaben in der Datenbank in Großbuchstaben, indem Sie die Funktion Upper verwenden, bevor Sie das Feld durch die LOAD- oder SELECT-Bedingung lesen.
Weitere Informationen finden Sie unter Upper - Skript- und Diagrammfunktion.
Wildcards (*) stehen für alle existierenden Werte des Felds, d. h. für einen beliebigen Wert in der Tabelle. Werden Wildcards in einem der sicherheitsrelevanten Felder (USERID, GROUP) verwendet, interpretiert das Programm, dass sie für alle (auch für nicht explizit aufgeführte) Werte des Felds stehen.
Example:
In diesem Beispiel können nur Benutzer in der Finanzgruppe das Dokument öffnen.
Zugriff | Gruppe |
---|---|
USER | Finanzen |
Einschränkung des Datenbestands
Qlik Sense unterstützt die dynamische Einschränkung des Datenbestands, durch die einige der Daten einer App für Benutzer, basierend auf dem Section Access-Login, ausgeblendet werden können.
- Felder (Spalten) können mithilfe des Systemfelds OMIT ausgeblendet werden.
- Datensätze (Zeilen) können ausgeblendet werden, indem die Zugriffsabschnittsdaten mit den reellen Daten verknüpft werden: Diese Einschränkung erfolgt dadurch, dass ein oder mehrere Felder in beiden Abschnitten des Skripts, also im Zugriffs- und Datenabschnitt, vorkommen. Bei jedem Login versucht Qlik Sense den Abgleich der in Section Access aufgeführten Werte des Felds mit dem gleichnamigen Feld im Datenabschnitt mit genau denselben Feldnamen (Feldnamen müssen GROSSGESCHRIEBEN werden). Nach abgeschlossener Auswahl werden alle übrigen Werte des Felds dauerhaft in Qlik Sense vor dem Benutzer verborgen.
Example: Einschränkung des Datenbestands über Benutzer-ID
Das Feld REDUCTION (Großbuchstaben) ist nun sowohl in Section Access als auch in Section Application vorhanden (alle Feldwert sind ebenfalls groß geschrieben). Normalerweise werden diese beiden Felder völlig separat verarbeitet. Durch Verwendung von Section Access werden diese Felder jedoch verknüpft und die Anzahl der Datensätze, die dem Benutzer angezeigt werden, verringert.
Das Feld OMIT in Section Access definiert die Felder, die dem Benutzer nicht angezeigt werden sollen.
Dadurch ergibt sich Folgendes:
- Benutzer ADMIN kann alle Felder und nur die Datensätze sehen, die andere Benutzer in diesem Beispiel sehen können, wenn REDUCTION auf 1, 2 oder 3 festgelegt ist.
- Benutzer A kann alle Felder sehen, aber nur jene Datensätze, die mit REDUCTION=1 verknüpft sind.
- Benutzer B kann alle Felder mit Ausnahme von NUM und nur solche Datensätze sehen, die mit REDUCTION=2 verknüpft sind.
- Benutzer C kann alle Felder mit Ausnahme von ALPHA und nur solche Datensätze sehen, die mit REDUCTION=3 verknüpft sind.
Example: Einschränkung des Datenbestands über Benutzergruppen
Dadurch ergibt sich Folgendes:
- Benutzer aus der ADMIN-Gruppe können alle Daten und alle Felder sehen.
- Benutzer aus der A-Gruppe können über alle Felder hinweg Daten sehen, die mit REDUCTION=1 verknüpft sind.
- Benutzer aus der B-Gruppe können Daten sehen, die mit REDUCTION=2 verknüpft sind, aber nicht im NUM-Feld.
- Benutzer aus der C-Gruppe können Daten sehen, die mit REDUCTION=3 verknüpft sind, aber nicht im ALPHA-Feld.
- Benutzer aus der GROUP1-Gruppe können über alle Felder hinweg Daten sehen, die mit REDUCTION=3 verknüpft sind.
-
Der Benutzer INTERNAL\SA_SCHEDULER gehört keiner Gruppe an, kann aber alle Daten in allen Feldern sehen.
InformationshinweisDie Wildcard, das Zeichen *, in dieser Zeile bezieht sich nur auf alle Werte innerhalb der Section Access-Tabelle. Wenn Werte in Section Application vorhanden sind, die nicht im Feld REDUCTION in Section Access verfügbar sind, werden sie eingeschränkt.
Übertragung von Zugriffsbeschränkungen
Durch Laden von Dateien mit Hilfe des binary-Befehls werden Zugriffsbeschränkungen auf die neue Qlik Sense-App übertragen.