Sicherheitsverwaltung über Zugriffsabschnitt

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.

Warnung:

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.

Warnung: Ein Schnappschuss zeigt Daten entsprechend den Zugriffsrechten des Benutzers an, der den Schnappschuss erstellt. Der Schnappschuss kann daraufhin in einer Story freigegeben werden. Wenn Benutzer jedoch aus einer Story zur Visualisierung zurückkehren, um die Daten in der App "live" anzusehen, gelten die Zugriffsbeschränkungen der eigenen Benutzerrechte.
Warnung:

Sie dürfen Master-Dimensionswerten keine Farben zuweisen, wenn Sie Section Access verwenden oder mit vertraulichen Daten arbeiten, da die Werte 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:  

Section Access;
LOAD * inline
[ACCESS,USERID
USER,U ];
Section Application;
LOAD... ... from... ...

Systemfelder von Section Access

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.

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.

Hinweis: Wenn Sie Gruppen zur Reduzierung von Daten verwenden, muss der Benutzer des Kontos INTERNAL\SA_SCHEDULER nach wie vor in der Lage sein, das Skript in einer Qlik Management Console-Aufgabe neu zu laden.

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.

Hinweis: Wir empfehlen, OMIT nicht auf Schlüsselfelder anzuwenden. Ausgelassene Schlüsselfelder sind in der Datenmodellansicht sichtbar. Allerdings sind die Inhalte nicht verfügbar, wodurch Benutzer verwirrt werden könnten. Außerdem kann die Anwendung von OMIT auf Felder, die in einer Visualisierung verwendet werden, für Benutzer, die keinen Zugriff auf die ausgelassenen Felder haben, zu einer unvollständigen Visualisierung führen.

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.

Hinweis:

Wenn Sie sich durch Festlegen einer Zugriffskontrolle selbst aus der App ausgesperrt haben, können Sie die App ohne Daten öffnen, und die Zugriffskontrolle im Datenladeskript bearbeiten. Dazu müssen Sie Zugriff auf das Datenladeskript haben, um es bearbeiten und neu laden zu können.

Weitere Informationen finden Sie unter Öffnen einer App ohne Daten.

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.

Hinweis: Wird beim Einlesen von Daten aus einer QVD-Datei der Befehl upper verwendet, beeinträchtigt dies die Ladezeit.
Hinweis: Wenn Sie den Zugriffsabschnitt aktiviert haben, können Sie die hier aufgeführten Zugriffsabschnitts-Systemfeldnamen nicht als Feldnamen in Ihrem Datenmodell verwenden.

Example:

In diesem Beispiel können nur Benutzer in der Finanzgruppe das Dokument öffnen.

Zugriff auf Dokument
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.
Hinweis: Alle Feldnamen, die für die Übermittlung oben herangezogen werden, und alle Feldwerte in diesen Feldern müssen in Großbuchstaben geschrieben sein, da alle Feldnamen und Feldwerte standardmäßig in Section Access in Großbuchstaben konvertiert werden.
Hinweis: Der Kontobenutzer INTERNAL\SA_SCHEDULER mit ADMIN-Zugriff muss in einer Qlik Management Console-Aufgabe das Neuladen des Skripts ermöglichen.

Example: Einschränkung des Datenbestands über Benutzer-ID

section access;
LOAD * inline [
ACCESS, USERID,REDUCTION, OMIT
USER, AD_DOMAIN\ADMIN,*,
USER, AD_DOMAIN\A,1,
USER, AD_DOMAIN\B, 2,NUM
USER, AD_DOMAIN\C, 3, ALPHA
ADMIN, INTERNAL\SA_SCHEDULER,*,
];
section application;
T1:
LOAD *,
NUM AS REDUCTION;
LOAD
Chr( RecNo()+ord('A')-1) AS ALPHA,
RecNo() AS NUM
AUTOGENERATE 3;

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

section access;

LOAD * inline [

ACCESS, USERID, GROUP, REDUCTION, OMIT

USER, *, ADMIN, *,

USER, *, A, 1,

USER, *, B, 2, NUM

USER, *, C, 3, ALPHA

USER, *, GROUP1, 3,

ADMIN, INTERNAL\SA_SCHEDULER, *, *,

];

section application;

T1:

LOAD *,

NUM AS REDUCTION;

LOAD

Chr( RecNo()+ord('A')-1) AS ALPHA,

RecNo() AS NUM

AUTOGENERATE 3;

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.

    Hinweis:

    Die 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.