Przeskocz do zawartości głównej
Zarządzanie bezpieczeństwem przy użyciu dostępu do sekcji

NA TEJ STRONIE

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

Można użyć dostępu do sekcji w skrypcie ładowania danych, aby zarządzać dostępem do danych na poziomie wiersza. Dzięki temu można użyć jednego pliku do przechowywania danych dla użytkowników lub grup użytkowników. Qlik Sense wykorzystuje informacje w dostępie do sekcji do autoryzacji na poziomie wiersza oraz dynamiczne ogranicza dane, aby użytkownicy mogli wyświetlić tylko te dane, do których wyświetlania mają uprawnienia.

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.

Aplikacja musi zostać opublikowana przed zastosowaniem środków kontroli dostępu do sekcji. Ponowne załadowanie aplikacji nie spowoduje zastosowania nowych ani zmienionych skryptów dostępu do sekcji.

Ostrzeżenie Aby uniknąć ujawnienia zastrzeżonych danych, przed opublikowaniem aplikacji należy usunąć wszystkie dołączone pliki, względem których obowiązują ustawienia dostępu do sekcji. Dołączone pliki są zawarte w momencie publikowania aplikacji. 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żenieMigawka 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 korzysta się z dostępu do sekcji albo z danych poufnych, ponieważ wartości mogą zostać ujawnione przez konfigurację kolorów.

Sekcje w skrypcie

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

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

Example:  

Dostęp do sekcji;

Tabela autoryzacji:

Załaduj DOSTĘP, IDENTYFIKATOR UŻYTKOWNIKA, REGION z...;

 

Aplikacja sekcji;

Ładowanie... Z... ;

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:

Dostęp do sekcji; LOAD * inline [ ACCESS, USERID ADMIN, INTERNAL\SA_API ];

NTNAME

Pole, które powinno zawierać ciąg znaków odpowiadający nazwie użytkownika lub grupy domeny systemu Windows NT. Jeśli wykorzystywany jest inny system uwierzytelniania, powinien zawierać nazwę zweryfikowanego użytkownika.

Qlik Sense pobierze dane logowania z systemu operacyjnego i porówna je z wartościami w tym polu.

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.

Informacja USERID oraz NTNAME używają tych samych danych uwierzytelniających zatem sprawdzenie obu elementów w tym samym wierszu tabeli autoryzacji nie jest konieczne. Różnica między tymi dwoma polami polega na tym, że NTNAME sprawdza także grupy.

USER.EMAIL

Obecnie nieobsługiwane, będzie w Qlik Sense jedynym dopasowaniem w symbolach wieloznacznych.

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.

InformacjaNawet gdy dane zostaną zredukowane przy użyciu grup, a wymagany jest dostęp do Qlik Management Console, użytkownik konta INTERNAL\SA_SCHEDULER nadal jest potrzebny.

SERIAL

Zawiera ciąg znaków odpowiadający platformie. Jeśli pole zawiera ciąg znaków „QLIKSENSE” lub symbol wieloznaczny „*”, dostęp może zostać przydzielony w zależności od innych pól w tabeli autoryzacji.

InformacjaJeśli pole SERIAL zawiera numer licencji, wiersz Dostęp do sekcji odmówi dostępu do dokumentu. To ustawienie jest prawidłowe tylko w QlikView.

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.

InformacjaZalecane jest, aby nie stosować OMIT w przypadku pól kluczowych. Pola klucza, które są pomijane, są widoczne w przeglądarce modelu danych, ale ich 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.

Qlik Sense porównuje użytkownika z identyfikatorem użytkownika oraz rozpoznaje użytkownika na tle grup w tabeli. Jeśli użytkownik jest zgodny lub należy do grupy z uprawnieniami dostępu, może otrzymać dostęp do aplikacji.

Informacja

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.

InformacjaW przypadku ładowania danych z pliku QVD funkcja Upper powoduje spowolnienie procesu ładowania.
InformacjaJeś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 dopasuje selekcje 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.
InformacjaWszystkie 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.
InformacjaJeś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 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.

    Informacja

    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

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