Предоставление доступа с помощью роли пользователя и роли группы пользователей
Для этого примера давайте предположим, что вы хотите предоставить доступ пользователю к определенным данным с помощью двух ролей: одна роль назначается этому пользователю, другая назначается группе, в которой состоит данный пользователь. Для этого необходимо сделать следующее:
Убедиться, что данный пользователь состоит требуемой группе. Если его там нет, необходимо добавить его в группу в Keycloak:
Создать атрибут пользователя.
Создать атрибут группы.
Создать роли и назначить их пользователю и группе.
Создание атрибута пользователя
Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
<domain>/v3/keycloak
где<domain>
– адрес вашего сервера.Откройте консоль администратора и в боковой панели нажмите Users:
Выберите пользователя, для которого будет создаваться RLS-роль. В нашем примере это будет пользователь ivanov:
В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:
В поле Key укажите уникальный ключ атрибута, например City, а в поле Value укажите его значение. В нашем примере это будет город Санкт-Петербург:
Нажмите Save для сохранения изменений.
Создание атрибута группы
Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
<domain>/v3/keycloak
где<domain>
– адрес вашего сервера.Откройте консоль администратора и в боковой панели нажмите Groups:
Щелкните название группы, для которой будет создаваться RLS-роль. В нашем примере это Аналитики.
В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:
В поле Key укажите уникальный ключ атрибута, например Country, а в поле Value укажите его значение. В нашем примере это будет Россия:
Нажмите Save для сохранения изменений.
Создание роли и назначение её пользователю и группе
Для начала мы создадим роль для пользователя.
Перейдите в требуемую рабочую область и откройте набор данных, для которого вы хотите создать роль безопасности. В нашем примере это будет Продажи:
В открывшемся окне нажмите Данные > Роли безопасности:
В появившемся окне нажмите кнопку с крестиком для создания роли:
Переименуйте созданную роль. Мы переименовали в Санкт-Петербург:
Для назначения роли пользователю нажмите кнопку справа от названия роли:
В строке поиска введите имя пользователям (в нашем случае ivanov) и нажмите Назначить. Пользователю будет назначена созданная роль, о чём система проинформирует вас:
Кликните название созданной роли в левой стороне диалогового окна. Отобразится список таблиц набора данных, с которым вы работаете:
Выберите таблицу, для которой вы хотите создать правило. В нашем примере это Локация:
В поле справа от списка таблиц введите DAX-выражение для фильтрации таблицы. В нашем примере мы хотим, чтобы пользователь ivanov мог просматривать данные, которые относятся к городу Санкт-Петербург. Для этого мы введем следующее выражение:
'Локация' [City] = USERATTRIBUTE ("Санкт-Петербург")
Данный запрос вернёт все строки из таблицы
Локация
, в которых столбецCity
содержит значение Санкт-Петербург.Нажмите Сохранить DAX в правом нижнем углу.
Теперь аналогичным образом создадим роль для группы пользователей, куда входит пользователь ivanov. Нам нужно повторить все шаги, описанные выше, со следующими изменениями:
на шаге
4
переименуем роль в Россия;на шаге
6
нужно будет ввести название группы (в нашем примере это Аналитики)на шаге
9
необходимо выбрать таблицу Локация, ввести DAX-выражение, указанное ниже, и нажать Сохранить DAX:
'Локация' [Country] = USERATTRIBUTE ("Россия")
В результате произведенных действий пользователь получит доступ к данным, которые относятся к Санкт-Петербургу и России (посредством своей роли и роли группы, в которой он состоит).
Смотрите также
На этой странице
Время чтения: 2 мин.
Нужна дополнительная помощь?