Zu Hauptinhalt springen
Verwaltung der Sicherheit mit Section Access

AUF DIESER SEITE

Verwaltung der Sicherheit mit Section Access

Sie können Section Access im Datenladeskript verwenden, um den Datenzugriff auf Zeilenebene zu verwalten. Auf diese Weise kann eine einzelne Datei verwendet werden, die die Daten für Benutzer oder Benutzergruppen enthält. Qlik Sense verwendet die Informationen in Section Access für die Autorisierung auf Zeilenebene und reduziert die Daten dynamisch, sodass die Benutzer nur die Daten sehen, für die sie über Anzeigeberechtigungen verfügen.

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. Dateien sollten nur auf dem 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.

Warnhinweis 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 beim Veröffentlichen der App eingeschlossen. 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.
WarnhinweisEin 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.
Warnhinweis Weisen Sie Master-Dimensionswerten keine Farben zu, wenn Sie Section Access verwenden oder mit vertraulichen Daten arbeiten, da die Werte durch die Farbkonfiguration offengelegt werden könnten.

Abschnitte im Skript

Die Zugriffssteuerung auf Zeilenebene wird über eine oder mehrere Sicherheitstabellen verwaltet, die auf die gleiche Weise wie für andere Daten üblich geladen werden. Dadurch wird es möglich, diese Tabellen in einer Standarddatenbank oder in einer Kalkulationstabelle zu speichern. Die Skriptanweisungen, die die Sicherheitstabellen verwalten, werden innerhalb eines Autorisierungsabschnitts angegeben, welcher im Skript durch die Anweisung Section Access eingeleitet wird.

Falls ein Autorisierungsabschnitt im Skript definiert ist, muss der Teil des Skripts, der die App-Daten lädt, in einem anderen Abschnitt stehen, der durch die Anweisung Section Application eingeleitet wird.

Example:  

Section Access;

AuthorizationTable:

Load ACCESS, USERID, REGION From ... ;

 

Section Application;

Load ... From ... ;

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 Anwender 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:

Section Access; LOAD * inline [ ACCESS, USERID ADMIN, INTERNAL\SA_API ];

NTNAME

Ein Feld, das eine Zeichenfolge enthalten sollte, die einem Windows NT-Domänenbenutzernamen oder -gruppennamen entspricht. Wenn ein anderes Authentifizierungssystem verwendet wird, sollte es den Namen eines authentifizierten Benutzers enthalten.

Qlik Sense ruft die Anmeldedaten vom Betriebssystem ab und vergleicht sie mit dem Wert dieses Felds.

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.

Informationshinweis USERID und NTNAME verwenden die gleichen Authentifizierungsinformationen. Daher ist es nicht erforderlich, beide in der gleichen Zeile in der Autorisierungstabelle zu prüfen. Der Unterschied zwischen den beiden Feldern ist, dass mit NTNAME auch Gruppen geprüft werden.

USER.EMAIL

Wird derzeit nicht unterstützt, und entspricht in Qlik Sense nur einem Platzhalter.

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.

InformationshinweisWenn Sie Gruppen zur Reduzierung von Daten verwenden und Qlik Management Console nutzen möchten, ist dennoch der INTERNAL\SA_SCHEDULER-Kontobenutzer erforderlich.

SERIAL

Enthält einen String, der der Plattform entspricht. Wenn das Feld den String „QLIKSENSE“ oder einen Platzhalter „*“’ enthält, kann der Zugriff abhängig von den anderen Feldern in der Autorisierungstabelle gewährt werden.

InformationshinweisWenn das Feld SERIAL eine Lizenznummer enthält, verweigert die Section Access-Zeile den Zugriff auf das Dokument. Diese Einstellung ist nur in QlikView gültig.

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.

InformationshinweisEs wird empfohlen, OMIT nicht auf Schlüsselfelder anzuwenden. Ausgelassene Schlüsselfelder sind im Datenmodell sichtbar, aber der Inhalt ist nicht verfügbar, was für einen Benutzer verwirrend erscheinen mag. 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 Benutzer mit UserID und löst den Benutzer anhand von Gruppen in der Tabelle auf. Wenn der Benutzer zu einer Gruppe gehört, der Zugriff eingeräumt ist, oder der Benutzer übereinstimmt, kann er auf die App zugreifen.

Informationshinweis

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 Felder in Section Access unter LOAD oder SELECT müssen in Großbuchstaben 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-Anweisung lesen.

Weitere Informationen finden Sie unter Upper - Skript- und Diagrammfunktion.

Wildcards (*) stehen für alle (aufgelisteten) 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.

InformationshinweisBeim Laden von Daten aus einer QVD-Datei verlangsamt die Upper-Funktion die Ladegeschwindigkeit.
InformationshinweisWenn 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 jeder Anmeldung gleicht Qlik Sense die in Section Access aufgeführten Werte des Felds mit dem Feld im Datenabschnitt mit genau denselben Feldnamen (Feldnamen müssen großgeschrieben werden) ab. Nach abgeschlossener Auswahl werden alle übrigen Werte des Felds dauerhaft in Qlik Sense vor dem Anwender verborgen.
InformationshinweisAlle 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.
InformationshinweisWenn Sie das erneute Laden des Skripts in einer Qlik Management Console-Aufgabe aktivieren möchten, ist der INTERNAL\SA_SCHEDULER-Kontobenutzer mit ADMIN-Zugriff erforderlich.

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 (in Großbuchstaben) existiert nun in exakt gleicher Schreibweise in Section Access und im Datenabschnitt (auch alle Feldwerte sind in Großbuchstaben geschrieben). Normalerweise werden diese beiden Felder getrennt 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:

  • Der ADMIN-Anwender kann alle Felder, aber nur die Datensätze sehen, die andere Anwender in diesem Beispiel sehen können, wenn REDUCTION 1, 2 oder 3 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.

    Informationshinweis

    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.