Zarządzanie bezpieczeństwem przy użyciu dostępu do sekcji

Dostęp do sekcji w skrypcie ładowania danych można wykorzystać do zwiększenia bezpieczeństwa. Dzięki temu można użyć jednego pliku do przechowywania danych dla wielu użytkowników lub grup użytkowników. Program Qlik Sense wykorzystuje dane w dostępie do sekcji do uwierzytelnienia i autoryzacji, a następnie dynamicznie ogranicza zakres danych, aby każdy użytkownik widział tylko dane odpowiednie dla siebie.

Uwaga: Grupy użytkowników nie są obsługiwane w Kubernetes.

Zabezpieczenia są wbudowane w sam plik, co oznacza, że plik pobrany jest w pewnej mierze chroniony. W przypadku rygorystycznych zasad bezpieczeństwa należy jednak zapobiegać pobieraniu plików i używaniu ich w trybie offline. Ponadto pliki powinny być publikowane wyłącznie przez serwer Qlik Sense. Wszystkie dane są przechowywane w jednym pliku, może być on zatem bardzo duży.

Ostrzeżenie:

Aby uniknąć ujawnienia zastrzeżonych danych, należy przed opublikowaniem aplikacji usunąć wszystkie dołączone pliki, względem których obowiązują ustawienia dostępu do sekcji.

W przypadku publikacji aplikacji dołączone pliki są dodawane do publikacji. Jeśli publikowana aplikacja zostanie skopiowana, dołączone pliki zostaną dodane do kopii. Jeśli jednak względem dołączonych plików danych zastosowano ograniczenia dostępu do sekcji, wówczas ustawienia dostępu do sekcji nie zostaną zachowane w przypadku skopiowania plików, dzięki czemu użytkownicy skopiowanej aplikacji będą widzieć wszystkie dane w dołączonych plikach.

Ostrzeżenie: Migawka przedstawia dane zgodnie z uprawnieniami dostępu użytkownika, który ją rejestruje, i może być udostępniana w narracji. Użytkownicy wracający do wizualizacji z narracji w celu wyświetlenia danych na żywo w aplikacji są jednak ograniczeni własnymi uprawnieniami dostępu.
Ostrzeżenie:

Do wartości wymiaru głównego nie należy przypisywać kolorów, jeśli używany jest dostęp do sekcji albo używane są dane poufne, ponieważ wartości mogą zostać ujawnione.

Sekcje w skrypcie

Zarządzanie kontrolą dostępu odbywa się z wykorzystaniem jednej lub kilku tabel zabezpieczeń, które są ładowane przez aplikację Qlik Sense w taki sam sposób jak zwykłe dane. Dzięki temu można przechowywać te tabele w zwykłej bazie danych. Instrukcje skryptu używane do zarządzania tabelami zabezpieczeń są podane w sekcji dostępu, inicjowanej w skrypcie instrukcją Section Access.

Jeśli skrypt zawiera definicję sekcji dostępu, część skryptu ładująca dane aplikacji musi znajdować się w odrębnej sekcji, zainicjowanej instrukcją Section Application.

Example:  

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

Pola systemowe dostępu do sekcji

Poziomy dostępu są przypisywane użytkownikom w jednej lub kilku tabelach ładowanych w ramach funkcji dostępu do sekcji. Tabele te mogą zawierać kilka różnych pól systemowych zależnych od użytkownika — najczęściej będzie to pole USERID oraz pole ACCESS definiujące poziom dostępu. Wszystkie pola systemowe dostępu do sekcji są używane do uwierzytelniania lub autoryzacji. Poniżej opisano pełen zestaw pól systemowych dostępu do sekcji.

ACCESS

Określa poziom dostępu konkretnego użytkownika.

Uprawienia dostępu do aplikacji w Qlik Sense można przyznawać określonym użytkownikom lub grupom użytkowników. W tabeli zabezpieczeń każdy użytkownik może mieć jeden z dwóch poziomów dostępu: ADMIN lub USER. Jeśli użytkownikowi nie zostanie przypisany żaden poprawny poziom dostępu, nie będzie on mógł otworzyć danej aplikacji.

Użytkownik z uprawnieniami ADMIN ma dostęp do wszystkich danych w aplikacji. Użytkownik z uprawnieniami USER ma dostęp do danych jedynie w zakresie zdefiniowanym w tabeli zabezpieczeń.

Jeśli dostęp do sekcji jest używany w scenariuszu generowania aplikacji On-demand (ODAG) w aplikacji szablonu, użytkownik INTERNAL\SA_API musi zostać uwzględniony jako ADMIN w tabeli dostępu do sekcji. Na przykład:

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

USERID

Zawiera ciąg znaków odpowiadający nazwie użytkownika Qlik Sense. Program Qlik Sense pobierze dane logowania z serwera proxy i porówna je z wartością w tym polu.

GROUP

Zawiera ciąg znaków odpowiadający grupie w programie Qlik Sense. Program Qlik Sense rozpozna dane użytkownika dostarczone przez serwer proxy względem tej grupy.

Uwaga: Nawet gdy dane zostaną zredukowane przy użyciu grup, a wymagane jest użycie konsoli Qlik Management Console, użytkownik konta INTERNAL\SA_SCHEDULER nadal jest potrzebny.

OMIT

Zawiera nazwę pola, które ma zostać pominięte w odniesieniu do danego użytkownika. Pole może zawierać symbole wieloznaczne lub być puste. Łatwo to zrobić za pomocą pola podrzędnego.

Uwaga: Nie zalecamy stosowania pola OMIT w przypadku pól kluczowych. Pominięte pola kluczowe są widoczne w przeglądarce modelu danych, ale zawartość jest niedostępna, co może być mylące dla użytkownika. Ponadto zastosowanie pola OMIT względem pól używanych w wizualizacji może spowodować, że wizualizacja będzie niekompletna dla użytkowników, którzy nie mają dostępu do pól pominiętych.

Program Qlik Sense porówna dane użytkownika dostarczone przez serwer proxy z identyfikatorem użytkownika (UserID) i rozpozna użytkownika względem grup w tabeli. Jeśli użytkownik jest zgodny lub należy do grupy z uprawnieniami dostępu, otrzyma dostęp do aplikacji.

Uwaga:

Jeśli użytkownik zablokuje sobie dostęp do aplikacji, konfigurując dostęp do sekcji, wówczas może otworzyć aplikację bez danych i zmodyfikować sekcję dostępu w skrypcie ładowania danych. Wymaga to uprawnień do edytowania i przeładowania skryptu ładowania danych.

Więcej informacji zawiera temat Otwieranie aplikacji bez danych.

Ponieważ sekcja dostępu podlega tej samej logice co inne aspekty aplikacji Qlik Sense, możliwe jest umieszczenie pól zabezpieczeń w różnych tabelach. Wszystkie pola wymienione w instrukcjach LOAD lub SELECT w ramach dostępu do sekcji muszą być zapisane WIELKIMI LITERAMI. Zmień zapis wszelkich nazw pól zawierających w bazie danych małe litery na zapis wielkimi literami przy użyciu funkcji Upper, zanim pole zostanie odczytane przez instrukcję LOAD lub SELECT.

Więcej informacji zawiera temat Upper — funkcja skryptu i funkcja wykresu.

Symbol wieloznaczny * jest interpretowany jako wszystkie wymienione wartości tego pola, czyli wszystkie wartości podane w innych miejscach tabeli. Jego użycie w jednym z pól systemowych (USERID, GROUP) w tabeli załadowanej w sekcji dostępu skryptu jest interpretowane jako wszystkie możliwe (nie tylko wymienione) wartości tego pola.

Uwaga: W przypadku ładowania danych z pliku QVD użycie funkcji upper spowolni proces ładowania.
Uwaga: Jeśli włączono funkcję dostępu do sekcji, wymienione tutaj nazwy pól systemowych funkcji dostępu do sekcji nie mogą być używane jako nazwy pól w modelu danych.

Example:

W tym przykładzie dokument mogą otworzyć tylko użytkownicy w grupie finansowej.

Dostęp do dokumentu
Dostęp Grupa
USER Finanse

Dynamiczne redukowanie danych

Program Qlik Sense obsługuje funkcję dynamicznej redukcji danych umożliwiającą ukrywanie przed użytkownikiem niektórych danych w aplikacji na podstawie danych logowania dostępu do sekcji:

  • Do ukrywania pól (kolumn) służy pole systemowe OMIT.
  • Rekordy (wiersze) można ukrywać poprzez odpowiednie powiązanie danych dostępu do sekcji z rzeczywistymi danymi: kontrolowanie zakresu wartości wyświetlanych lub wykluczanych polega na używaniu pól o takich samych nazwach w sekcji dostępu i aplikacji sekcji. Po zalogowaniu użytkownika program Qlik Sense podejmie próbę dopasowania selekcji w polach dostępu do sekcji do pól o identycznych nazwach w aplikacji sekcji (nazwy pól muszą być zapisane WIELKIMI LITERAMI). Po dokonaniu selekcji program Qlik Sense trwale ukryje przed użytkownikiem wszystkie dane wykluczone na podstawie tych selekcji.
Uwaga: Wszystkie nazwy pól używane w opisanej powyżej procedurze przenoszenia oraz wszystkie wartości tych pól muszą być zapisane wielkimi literami, ponieważ w dostępie do sekcji wszystkie nazwy i wartości pól są domyślnie zamieniane na wielkie litery.
Uwaga: Jeśli wymagane jest włączenie przeładowania skryptu w zadaniu konsoli Qlik Management Console, wówczas wymagany jest użytkownik konta INTERNAL\SA_SCHEDULER z dostępem ADMIN.

Example: Redukcja danych na podstawie identyfikatora użytkownika

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;

Pole REDUCTION (nazwa zapisana wielkimi literami) istnieje teraz zarówno w dostępie do sekcji, jak i aplikacji sekcji (wszystkie wartości pola również są zapisane wielkimi literami). W zwykłej sytuacji te dwa pola byłyby zupełnie różne i niepowiązane, ale przez zastosowanie dostępu do sekcji zostaną one powiązane i wykorzystane do zredukowania liczby rekordów wyświetlanych użytkownikowi.

Pole OMIT w dostępie do sekcji definiuje pola, które mają być ukryte przed użytkownikiem.

Wynik będzie następujący:

  • Użytkownik ADMIN widzi wszystkie pola oraz tylko te rekordy w tym przykładzie, które mogą wyświetlać inni użytkownicy, gdy REDUCTION to 1,2 lub 3.
  • Użytkownik A widzi wszystkie pola i jedynie rekordy powiązane z wartością REDUCTION=1.
  • Użytkownik B widzi wszystkie pola oprócz NUM i jedynie rekordy powiązane z wartością REDUCTION=2.
  • Użytkownik C widzi wszystkie pola oprócz ALPHA i jedynie rekordy powiązane z wartością REDUCTION=3.

Example: Redukcja danych na podstawie grup użytkownika

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;

Wynik będzie następujący:

  • Użytkownicy należący do grupy ADMIN widzą wszystkie dane i pola.
  • Użytkownicy należący do grupy A widzą dane powiązane z wartością REDUCTION=1 we wszystkich polach.
  • Użytkownicy należący do grupy B widzą dane powiązane z wartością REDUCTION=2, ale nie w polu NUM.
  • Użytkownicy należący do grupy C widzą dane powiązane z wartością REDUCTION=3, ale nie w polu ALPHA.
  • Użytkownicy należący do grupy GROUP1 widzą dane powiązane z wartością REDUCTION=3 we wszystkich polach.
  • Użytkownik INTERNAL\SA_SCHEDULER nie należy do żadnej grupy, ale widzi wszystkie dane we wszystkich polach.

    Uwaga:

    Symbol wieloznaczny, czyli znak *, w tym wierszu odnosi się tylko do wszystkich wartości w tabeli dostępu do sekcji. Jeśli w aplikacji sekcji znajdują się wartości, które są niedostępne w polu REDUCTION w dostępie do sekcji, zostaną one zredukowane.

Dziedziczone ograniczenia dostępu

Uwaga: Ta funkcjonalność jest niedostępna w środowisku Kubernetes.

Po wykonaniu ładowania binarnego ograniczenia dostępu zostaną odziedziczone przez nową aplikację Qlik Sense.