Сегодня хочется продолжить тему с настройкой безопасности приложений, но особый акцент сделать на Qlik Sense. Коллеги из Qlik Fix опубликовали ценный материал, который позволяет расставить акценты в настройках безопасности приложений Qlik Sense. Давайте узнаем, на что рекомендует обратить особое внимание наши западные коллеги.

Введение: Безопасность в Qlik Sense

Часто, когда сравнивают QlikView и Qlik Sense отмечают разницу в создании визуализаций и работы во фронт-энде.

Другой, не менее важный момент – это разница в развёртывании серверных приложений, использовании Master Items, а также в особенностях настройки API, создании расширений и виджетов.

И, как понятно из заголовка, не менее важная сторона отличий – настройки безопасности в Qlik Sense. Итак, изучим, в чем же разница в правилах безопасности в QlikView и Qlik Sense. Итак, основные отличия…

Подход ABAC

Qlik Sense работает на принципах ABAC (Attribute Based Access Control), то есть контроль доступа к данным организован не на принципах ролей, а на атрибутах. Иначе говоря, пользователь получает доступ к любой из частей среды через правила безопасности (политики), который состоят из атрибутов. Правила могут состоять из любых атрибутов – тех, которые назначены системой, или тех, что созданы пользователем (пользовательские настройки). Эти атрибуты могут принадлежать любому ресурсу: пользователям, потокам, приложениям, подключениям к данным, да и по сути любой сущности, которая есть в QMC.  Так, вместе все они образуют большой набор условных выражений (IF, THEN) для определения настроек доступа для пользователя.

Основное отличие этого подхода в том, что каждая ситуация оценивается не с точки зрения роли пользователя и действия, которое он хочет совершить, а с точки зрения атрибутов, которые к ним относятся. Бизнес-правило, по сути, представляет собой набор условий, в которых различные атрибуты должны удовлетворять предъявляемым к ним требованиям.

Существует несколько типов атрибутов:

https://habrastorage.org/files/9a8/5c7/03b/9a85c703b2834ba696f2c47d38819d11.png

Вот сравнительная таблица двух подходов к доступу к данным, по ролям и по атрибутам:

https://habrastorage.org/files/d2b/fb8/e3b/d2bfb8e3b9f448f482ddb49e6fab796f.png

Теперь вернемся к атрибутам доступа к данным.

Ресурсы

Когда создаются правила безопасности, мы должны определить фильтр ресурса. Так, нужно ответить на вопрос: «К каким ресурсам мы должны назначить права, учитывая условия?» Имея возможность настроить права для каждого ресурса, мы получаем большую гибкость. Вот полезный список фильтров.

Ресурсы QmcSection

Эти атрибуты позволяют настроить доступ к определенным разделам QMC. Когда мы даем доступ к разделу, мы должны определить права пользователей по созданию, чтению, обновлению и удалению содержимого. Эти правила могут применяться и для хаба, но их нужно настраивать отдельно.

Использование App* или App_*

Когда вы выбираете ресурсы, учитывайте использование ‘*’или ‘_*’ в качестве фильтра ресурсов – они отличаются друг от друга. В первом случае создается правило для каждого ресурса из приложения App (app_objects, app_datasegments и другое), а другое работает только для приложений. В первом случае мы дадим доступ ко всем объектам, data_segments и другое. А во втором случае приложения останутся видимыми в хабе, но при их открытии не будет показано содержимого. Так, мы можем настроить доступ к определенным объектам приложения app_objects конкретным пользователям.

Атрибуты и пользовательские настройки

Ресурсы имеют типичные атрибуты. Типичные атрибуты получаются из настроек подключения пользователя, например имя, ID или группа. А далее можно задать пользовательские настройки. Например, мы можем назначить пользовательские настройки для департамента “@Department”, а затем назначить его пользователю, потоку или подключению к данным. Пользовательские настройки можно использовать в настройках безопасности.

Правила

http://www.qlikfix.com/wp-content/uploads/2017/02/AccessDenied.png

Настройки безопасности в Qlik Sense работают на основе правил. Для настроек используются условные выражения для ограничения и создания доступа (IF, THEN). Важно понимать, что в Qlik Sense у пользователя нет прав, пока вы их не назначили. Это означает, что для настроек безопасности мы можем использовать любые атрибуты (пользователей, ресурсов), чтобы дать доступ к любым типам ресурсов.

Пересечение в правилах

Когда вы создаете правила безопасности, нужно учитывать, что они могут перекрывать друг друга. Так, стандартные правила, могут перекрывать ваши, пользовательские правила. Допустим, речь идет об общих правах доступа к определенным потокам данных. Пользователь имеет право публиковать приложения, хотя мы ограничили доступ к этому потоку. Это происходит, потому что наложено также правило (streams*). По этой причине используйте функцию аудита:

http://www.qlikfix.com/wp-content/uploads/2017/02/Audit1.png

Когда вы нажимаете на букву, связанную с правилом, то появляются связанные правила (наша любимая ассоциативность), поэтому легко найти пересечения в правилах. Нажав на правило и «View», мы можем перейти в настройки правила, чтобы изменить, отключить или удалить его.

http://www.qlikfix.com/wp-content/uploads/2017/02/Audit-2.png

На этом все на сегодня!

Интересных вам разработок с Qlik!