Verwaltung der Datensicherheit mit Abschnittszugriff
Section Access dient zur Kontrolle der Sicherheit einer Anwendung. Im Grund handelt es sich dabei um einen Teil des Datenladeskripts, dem Sie eine Sicherheitstabelle hinzufügen, um zu definieren, wer was anzeigen darf. Qlik Sense verwendet diese Informationen, um Daten auf den entsprechenden Umfang zu reduzieren, wenn der Benutzer die Anwendung öffnet, das heißt, ein Teil der Daten in der Anwendung wird dem Benutzer basierend auf seiner Identität verborgen. Abschnittszugriff ist eng in die Daten in der Anwendung integriert und stützt sich auf diese, um den Zugriff zu steuern. Diese Form der dynamischen Beschränkung des Datenbestands kann für Tabellenzeilen, -spalten oder eine Kombination aus beiden gelten. Weitere Informationen finden Sie unter Vertrauen und Sicherheit bei Qlik.
Abschnitte im Ladeskript
Die Datenzugriffssteuerung 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 Anwendungsdaten lädt, in einem anderen Abschnitt stehen, der durch den Befehl Section Application eingeleitet wird.
Beachten Sie, dass nach Änderungen am Ladeskript immer die Daten neu geladen werden müssen, damit die Änderungen in Kraft treten.
Section Access-Systemfelder
Die Berechtigungsstufen werden den Benutzern in einer oder mehreren Sicherheitstabellen zugewiesen, die im Section Access-Teil des Skripts geladen werden. Diese Tabellen müssen mindestens zwei Systemfelder enthalten: ACCESS, das Feld, das die Berechtigungsstufe definiert, und USERID oder USER.EMAIL . Andere optionale Systemfelder können je nach Anwendungsfall hinzugefügt werden. Nachfolgend finden Sie eine komplette Liste der Section Access-Systemfelder.
ACCESS
Definiert, welchen Zugriff der entsprechende Benutzer haben soll.
Der Zugriff auf Qlik Sense-Anwendungen kann bestimmten Benutzern gewährt werden. In der Sicherheitstabelle können Benutzer den Berechtigungsstufen ADMIN oder USER zugewiesen werden. Ein Benutzer mit ADMIN-Rechten hat Zugriff auf alle Daten der Anwendung, sofern dieser nicht durch die Sicherheitstabelle beschränkt ist. Benutzer mit USER-Rechten können nur auf Daten zugreifen, wie sie in der Sicherheitstabelle definiert sind. Ist einem Benutzer keine gültige Berechtigungsstufe zugewiesen, kann er die Anwendung nicht öffnen.
Wenn Section Access in einem Ladeszenario verwendet wird, benötigt INTERNAL\SA_SCHEDULER, der der Scheduler-Dienstbenutzer ist, ADMIN-Zugriff, um die Ladevorgänge durchzuführen. Beispiel:
Wenn Sie das Konto INTERNAL\SA_SCHEDULER nicht verwenden möchten, informieren Sie sich unter Verwenden des Wechsels der Benutzeridentität zum Laden von Daten über eine alternative Methode.
Wenn Abschnittszugriff im Szenario der Generierung einer On-Demand-Anwendung (ODAG) in der Vorlagenanwendung verwendet wird, muss der INTERNAL\SA_API-Benutzer als ADMIN in der Abschnittszugriffstabelle enthalten sein. Beispiel:
USERID
Enthält eine Zeichenfolge, die einem Qlik Sense Domänennamen und Benutzernamen entspricht. Qlik Sense prüft die Anmeldedaten des Proxys-Diensts und vergleicht sie mit dem Wert dieses Felds.
Ein Platzhalterzeichen (*) wird als alle Benutzer interpretiert, vorbehaltlich weiterer in der Sicherheitstabelle angegebener Bedingungen. Beispiel: In der folgenden Sicherheitstabelle können Benutzer, die zu den Qlik Sense Mandantenadministratoren gehören, alle aufgelisteten REDUCTION-Werte sehen.
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 Anmeldeinformationen vom Betriebssystem ab und vergleicht sie mit dem Wert in diesem Feld.
GROUP
Enthält eine Zeichenfolge, die einer Gruppe in Qlik Sense entspricht. Qlik Sense ordnet den vom Proxy-Dienst bereitgestellten Benutzer nach Abgleich mit dieser Gruppe zu.
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 Sicherheitstabelle gewährt werden.
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.
Verwalten des Benutzerzugriffs auf eine Anwendung
Abschnittszugriff kann in seiner einfachsten Form verwendet werden, um den Zugriff bestimmter Benutzer auf eine Anwendung einzuschränken. Benutzern wird der Zugriff auf eine Anwendung durch Ausschluss verweigert. Mit anderen Worten: Wenn eine bestimmte Benutzer-ID nicht in der Sicherheitstabelle aufgeführt ist, kann der Benutzer nicht auf die Anwendung zugreifen. Die einzige Ausnahme für diese Regel gilt, wenn ein Wildcard (*) dem Feld USERID in einer der Zeilen in der Sicherheitstabelle zugewiesen ist. Eine Wildcard bedeutet in diesem Fall, dass alle authentifizierten Benutzer auf die Anwendung zugreifen können. Es folgt ein Beispiel für eine Sicherheitstabelle mit einer Liste von Benutzer-IDs:
Verwalten des Benutzerzugriffs auf spezifische Daten einer Anwendung
Die dynamische Dateneinschränkung schränkt den Zugriff auf Zeilen und Spalten in den Datentabellen in Qlik Sense Anwendungen ein, nachdem ein Benutzer für den Zugriff auf die Anwendung selbst autorisiert wurde.
Verwalten des Zugriffs auf Daten auf Zeilenebene
Schränken Sie den Zugriff auf Daten auf Zeilenebene ein, indem Sie eine Dateneinschränkungsspalte zur Sicherheitstabelle im Zugriffsabschnitt des Ladeskripts hinzufügen. Bestimmte Datensätze (Zeilen) können für Benutzer ausgeblendet werden, indem die Section Access-Daten mit den reellen Daten verknüpft werden. Die Auswahl der anzuzeigenden bzw. auszuschließenden Daten wird dadurch gesteuert, dass ein oder mehrere Einschränkungsfelder mit gemeinsamen Namen in den Teilen Section Access und Section Application des Skripts vorhanden sind. Nach der Benutzeranmeldung gleicht Qlik Sense die Auswahlen in Einschränkungsfeldern im Zugriffsabschnittt mit allen Feldern im Anwendungsabschnitt mit genau denselben Feldnamen (Feldnamen müssen großgeschrieben werden) ab. Nachdem die Auswahlen getroffen wurden, verbirgt Qlik Sense dauerhaft alle durch diese Auswahlen Ausgeschlossen Daten vor dem Anwender. Wenn ein Platzhalter (*) als Feldwert in der Dateneinschränkungsspalte verwendet wird, wird er so interpretiert, dass er den Benutzern den Zugriff auf Datensätze gewährt, die mit allen ausgewählten Einschränkungsfeldern in der Sicherheitstabelle verknüpft sind.
Wenn Qlik Sense das Einschränkungsfeld im Abschnittszugriff mit Feldern im Datenmodell vergleicht, werden die folgenden Verhaltensweisen erwartet:
-
Wenn ein Feldwert im Datenmodell mit dem Einschränkungsfeld im Abschnittszugriff übereinstimmt, wird die Anwendung geöffnet und zeigt Daten an, die eine Übereinstimmung mit dem angegebenen Benutzer aufweisen. Andere Daten werden ausgeblendet.
-
Wenn der Einschränkungsfeldwert mit keinen Werten im Datenmodell übereinstimmt, wird die Anwendung für einen regulären USER nicht geöffnet. Sie wird aber ohne Einschränkungen für einen Benutzer geöffnet, der als ADMIN gekennzeichnet ist.
Es wird nicht empfohlen, im Abschnittszugriff mehrere Einschränkungsfelder zu verwenden, da dadurch andere Zugriffskombinationen als beabsichtigt zugelassen werden.
Das Platzhalterzeichen * in der Dateneinschränkungsspalte bezieht sich nur auf alle Werte in der Sicherheitstabelle. Wenn in Section Application Werte vorhanden sind, die in der Einschränkungsspalte der Sicherheitstabelle nicht verfügbar sind, werden sie eingeschränkt.
Beispiel: Einschränkung der Daten auf Zeilenebene über Benutzeridentität
In diesem Beispiel existiert das Feld REDUCTION (in Großbuchstaben) nun in exakt gleicher Schreibweise in Section Access und in Section Application (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.
Dadurch ergibt sich Folgendes:
- Anwender ADMIN kann alle Felder und nur die Datensätze sehen, die andere Anwender sehen können, wenn REDUCTION = 1 oder REDUCTION =2.
- Benutzer A kann alle Felder sehen, aber nur jene Datensätze, die mit REDUCTION=1 verknüpft sind.
- Benutzer B kann alle Felder sehen, aber nur jene Datensätze, die mit REDUCTION=2 verknüpft sind.
- Anwender C kann alle Felder und nur die Datensätze sehen, die andere Anwender sehen können, wenn REDUCTION = 1 oder REDUCTION =2.
Verwalten des Zugriffs auf Daten auf Spaltenebene
Schränken Sie den Zugriff auf Daten auf Spaltenebene ein, indem Sie ein OMIT-Systemfeld zur Sicherheitstabelle im Section Access-Skript hinzufügen. Das folgende Beispiel baut auf dem vorigen Beispiel auf, in dem eine Dateneinschränkung auf Zeilenbasis bereits eingerichtet ist.
Beispiel: Spaltenbasierte Dateneinschränkung über Benutzeridentität
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.
Verwalten des Zugriffs auf Benutzergruppen
Section Access bietet die Option, die den Benutzern angezeigte Datenmenge über Gruppenmitgliedschaft einzuschränken. Um die Daten mithilfe von Benutzergruppen einzuschränken, fügen Sie den Feldnamen GROUP zur Sicherheitstabelle in Access Section hinzu und definieren Sie Werte für das Feld GROUP.
Beispiel: Einschränkung des Datenbestands über Benutzergruppen
Dadurch ergibt sich Folgendes:
- Benutzer, die zur Gruppe ADMIN gehören, können alle Felder, aber nur die Datensätze sehen, die andere Benutzer in diesem Beispiel sehen können, wenn REDUCTION 1, 2 oder 3 ist.
- Benutzer aus der Gruppe A können die mit REDUCTION=1 verknüpften Daten über alle Felder hinweg anzeigen.
- Benutzer aus der B Gruppe dürfen 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 Gruppe GROUP1 können die mit REDUCTION=3 verknüpften Daten über alle Felder hinweg anzeigen.
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 Anwendung zugreifen.
Verwenden des Wechsels der Benutzeridentität zum Laden von Daten
Standardmäßig wird das interne Systemkonto SA_SCHEDULER zum Ausführen von Ladeaufgaben verwendet. Dieses Konto hat eine hohe Berechtigungsstufe und kann rein technisch jede Datenquelle verwenden. Es gibt jedoch eine Einstellung in der QMC, die den Wechsel der Benutzeridentität verwendet, um Ladeaufgaben mit den Berechtigungen des Anwendungsbesitzers anstelle des internen Systemkontos auszuführen. Wenn diese Einstellung konfiguriert wird, wird der Anwendungsbesitzer und nicht SA_SCHEDULER für Ladevorgänge verwendet. Das bedeutet, dass Sie nicht SA_SCHEDULER in der Abschnittszugriff-Tabelle hinzufügen, sondern stattdessen den Anwendungsbesitzer. Innerhalb einer Aufgabenkette können Anwendungen verschiedene Besitzer mit Berechtigungen für Quellen haben, abhängig von den Zugriffsrechten des jeweiligen Besitzers. Weitere Informationen finden Sie unter Dienstcluster (nur auf Englisch).
Verwalten von Benutzerzugriff in einer Multi-Cloud-Umgebung
Eine Qlik Sense-Multi-Cloud-Umgebung umfasst eine Kombination aus Benutzerauthentifizierungsmechanismen. In der Regel wird in Qlik Sense Enterprise on Windows die USERID in der Section Access-Sicherheitstabelle vom Proxydienst verifiziert. In Qlik Cloud übernimmt ein Identitätsanbieter diese Authentifizierungsrolle. Infolgedessen funktioniert Abschnittszugriff, der für eine lokale Umgebung wie Qlik Sense Enterprise on Windows eingerichtet wurde, in einer Cloud-Umgebung nicht.
Wenn Sie einen OIDC- oder SAML-Identitätsanbieter (Qlik IdP oder benutzerdefinierter IdP) mit Qlik Cloud verwenden, wird der subject claim zum Identifizieren von Benutzern bei der Anmeldung verwendet. Mit Section Access wird der Wert des Felds USERID in der Sicherheitstabelle mit dem Wert von subject claim verglichen. Wenn Sie Ihren Mandanten einrichten, vergewissern Sie sich, dass der SAM-Kontoname dem subject claim Ihres Identitätsanbieters zugeordnet ist. Beispiel: Wenn Ihr SAM-Kontoname AD_DOMAIN\Dev lautet, legen Sie den subject claim auf AD_DOMAIN\Dev fest. Wenn Sie den Wert des subject claim des IdP anzeigen möchten, hängen Sie /api/v1/diagnose-claims an die Mandanten-URL im Browser an, zum Beispiel your-tenant.us.qlikcloud.com/api/v1/diagnose-claims. In der JSON-Antwort wird der subject claim als sub bezeichnet.
Wenn Sie den SAM-Kontonamen nicht verwenden können, gibt es eine alternative Möglichkeit zur Authentifizierung eines Benutzers. Da E-Mail-Adressen normalerweise in unterschiedlichen Umgebungen gleich bleiben, können Sie den Benutzer verwenden.EMAIL-Feld anstelle von USERID in der Sicherheitstabelle. Das folgende Beispiel zeigt, wie die Sicherheitstabelle aussehen könnte:
| ACCESS | USERID | USERE-Mail | Kommentar | COUNTRY |
|---|---|---|---|---|
| USER |
ABC\Joe |
* | Access-on-prem | Vereinigte Staaten |
| USER | * |
joe.smith@example.com |
Access-in-cloud | Vereinigte Staaten |
| USER |
ABC\Ursula |
* | Access-on-prem | Deutschland |
| USER | * |
ursula.schultz@example.com |
Access-in-cloud | Deutschland |
| USER |
ABC\Stefan |
* | Access-on-prem | Schweden |
| USER | * |
stefan.svensson@example.com |
Access-in-cloud | Schweden |
Autorisierungsskript:
Beachten Sie, dass jeder Benutzer über zwei Datensätze verfügt: einen für lokalen Zugriff und einen für Cloud-Zugriff. Die Platzhalter stellen sicher, dass nur die relevanten Autorisierungsfelder verwendet werden. In diesem Feld wird COUNTRY als Feld für die Einschränkung des Datenbestands verwendet.
Verwenden von Section Access und Insight Advisor Chat
Um Anwendungen, die Section Access verwenden, in Insight Advisor Chat verfügbar zu machen, müssen Sie im Section Access-Skript sicherstellen, dass die folgenden Dienstbenutzer Administratorzugriff haben:
-
INTERNAL/sa_repository: Damit wird das Abschnittszugriffsskript dem Repository-Dienst zur Kontrolle des Benutzerzugriffs zur Verfügung gestellt.
-
INTERNAL/sa_scheduler: Damit kann die Anwendung Ladevorgänge mithilfe von QMC-Aufgaben durchführen.
Wenn sensible Informationen in Anwendungsnamen, Feldnamen oder Master-Elementnamen enthalten sind, können diese offengelegt werden, wenn Sie Anwendungen, die Abschnittszugriff verwenden, für Insight Advisor Chat zur Verfügung stellen. Anwendungsvorschläge für Abfragen umfassen Anwendungen in Streams, auf die Benutzer Zugriff haben. Dazu können Anwendungen gehören, auf die Benutzer im Abschnittszugriff einer Anwendung keinen Zugriff haben. Das Auswählen dieser Anwendungen wird jedoch nichts bewirken. Wenn Sie auf Dimensionen oder Kennzahlen klicken, um die verfügbaren Elemente einer Anwendung anzuzeigen, die Abschnittszugriff verwendet, können Benutzern Elemente angezeigt werden, auf die sie keinen Zugriff haben. Durch Klicken auf diese Elemente erhalten die Benutzer aber keine Daten.
Beispiel:
Nachdem diese Benutzer in das Abschnittszugriff-Skript aufgenommen wurden, können Sie die Anwendung für Insight Advisor Chat bereitstellen. Nachdem die Anwendung neu geladen wurde, ist die Anwendung in Insight Advisor Chat verfügbar.
Verwenden von QVDs mit Abschnittszugriff
QVD-Dateien können als regulärer oder als optimierter Ladevorgang gelesen werden. Ein optimierter Ladevorgang liegt vor, wenn während des Ladens keine Datenumwandlungen vorgenommen werden und keine Filter in einem WHERE-Befehl vorhanden sind.
Optimierte Ladevorgänge funktionieren nicht, wenn QVDs mit Abschnittszugriff verwendet werden. Wenn Sie eine QVD-Datei verwenden möchten, um Daten in Abschnittszugriff zu laden, müssen Sie die QVD-Datei erweitern. Das einfachste Verfahren zum Erweitern der QVD-Datei besteht im Vornehmen von Formatierungsänderungen beim Laden der Daten.
Im folgenden Beispiel wird die QVD-Datei nicht erweitert, da die Daten nicht formatiert werden.
Beispiel: Nicht funktionierendes Beispiel ohne Datenformatierung (optimiertes Laden)
Stattdessen können Sie beispielsweise die Funktion upper() verwenden, um die Daten zu formatieren, wodurch die QVD-Datei erweitert wird.
Beispiel: Funktionierendes Beispiel mit Datenformatierung
Sie können auch einen Befehl Where 1=1 zur LOAD-Anweisung hinzufügen.
Beispiel: Weiteres funktionierendes Beispiel mit Datenformatierung
Anweisungen und Tipps für die Verwendung von Section Access
Die folgenden wichtigen Fakten und nützlichen Hinweise zu Section Access sollten dem Benutzer bekannt sein.
- Alle Feldnamen und Werte im Zugriffsabschnitt 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.
- Sie können die hier aufgeführten Section Access-Systemfeldnamen nicht als Feldnamen in Ihrem Datenmodell verwenden.
- Wenn Sie Änderungen an einer Entwicklungskopie einer veröffentlichten Anwendung vornehmen, muss die Entwicklungskopie erneut veröffentlicht werden, bevor Abschnittszugriff-Steuerelemente auf die veröffentlichte Anwendung angewendet werden.
- 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 Live-Daten in der Anwendung anzusehen, gelten die Zugriffsbeschränkungen der eigenen Benutzerrechte.
- 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.
- Damit vertrauliche Daten nicht offengelegt werden, sollten Sie immer darauf achten, alle Dateien mit Abschnittszugriffseinstellungen aus der Anwendung zu entfernen, bevor Sie sie veröffentlichen. Angehängte Dateien werden gemeinsam mit der Anwendung veröffentlicht. Wenn die veröffentlichte Anwendung 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 Anwendung alle Daten in den angehängten Dateien sehen können.
- Ein Platzhalter (*) wird als alle (aufgelisteten) Werte des Felds in der Tabelle interpretiert. 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.
- Sicherheitsfelder können in verschiedenen Tabellen platziert werden.
- Beim Laden von Daten aus einer QVD-Datei verlangsamt die Upper-Funktion die Ladegeschwindigkeit.
-
Wenn Sie sich durch Festlegen von Section Access selbst aus einer Anwendung ausgesperrt haben, können Sie die Anwendung ohne Daten öffnen und den Zugriffsabschnitt 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 Eine Anwendung ohne Daten öffnen.
- Durch Binäres Laden werden die Zugriffsbeschränkungen auf die neue Qlik Sense Anwendung übertragen.