Предоставление доступа с помощью роли пользователя и роли группы пользователей

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

  1. Убедиться, что данный пользователь состоит требуемой группе. Если его там нет, необходимо добавить его в группу в Keycloak:

group.png
  1. Создать атрибут пользователя.

  2. Создать атрибут группы.

  3. Создать роли и назначить их пользователю и группе.

Создание атрибута пользователя

  1. Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
    <domain>/v3/keycloak
    где <domain> – адрес вашего сервера.

  2. Откройте консоль администратора и в боковой панели нажмите Users:

    keycloak-users.png
  3. Выберите пользователя, для которого будет создаваться RLS-роль. В нашем примере это будет пользователь ivanov:

  4. В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:

  5. В поле Key укажите уникальный ключ атрибута, например City, а в поле Value укажите его значение. В нашем примере это будет город Санкт-Петербург:

  6. Нажмите Save для сохранения изменений.

Создание атрибута группы

  1. Откройте Keycloak, введя соответствующий адрес в адресной строке браузера:
    <domain>/v3/keycloak
    где <domain> – адрес вашего сервера.

  2. Откройте консоль администратора и в боковой панели нажмите Groups:

  3. Щелкните название группы, для которой будет создаваться RLS-роль. В нашем примере это Аналитики.

  4. В открывшемся окне перейдите на вкладку Attributes и нажмите Add an attribute, чтобы добавить атрибут:

  5. В поле Key укажите уникальный ключ атрибута, например Country, а в поле Value укажите его значение. В нашем примере это будет Россия:

  6. Нажмите Save для сохранения изменений.

Создание роли и назначение её пользователю и группе

Для начала мы создадим роль для пользователя.

  1. Перейдите в требуемую рабочую область и откройте набор данных, для которого вы хотите создать роль безопасности. В нашем примере это будет Продажи:

  2. В открывшемся окне нажмите Данные > Роли безопасности:

  3. В появившемся окне нажмите кнопку с крестиком для создания роли:

  4. Переименуйте созданную роль. Мы переименовали в Санкт-Петербург:

  5. Для назначения роли пользователю нажмите кнопку справа от названия роли:

  6. В строке поиска введите имя пользователям (в нашем случае ivanov) и нажмите Назначить. Пользователю будет назначена созданная роль, о чём система проинформирует вас:

  7. Кликните название созданной роли в левой стороне диалогового окна. Отобразится список таблиц набора данных, с которым вы работаете:

  8. Выберите таблицу, для которой вы хотите создать правило. В нашем примере это Локация:

  9. В поле справа от списка таблиц введите DAX-выражение для фильтрации таблицы. В нашем примере мы хотим, чтобы пользователь ivanov мог просматривать данные, которые относятся к городу Санкт-Петербург. Для этого мы введем следующее выражение:
    'Локация' [City] = USERATTRIBUTE ("Санкт-Петербург")

  10. Данный запрос вернёт все строки из таблицы Локация, в которых столбец City содержит значение Санкт-Петербург.

  11. Нажмите Сохранить DAX в правом нижнем углу.

Теперь аналогичным образом создадим роль для группы пользователей, куда входит пользователь ivanov. Нам нужно повторить все шаги, описанные выше, со следующими изменениями:

  • на шаге 4 переименуем роль в Россия;

  • на шаге 6 нужно будет ввести название группы (в нашем примере это Аналитики)

  • на шаге 9 необходимо выбрать таблицу Локация, ввести DAX-выражение, указанное ниже, и нажать Сохранить DAX:

'Локация' [Country] = USERATTRIBUTE ("Россия")

В результате произведенных действий пользователь получит доступ к данным, которые относятся к Санкт-Петербургу и России (посредством своей роли и роли группы, в которой он состоит).


Смотрите также

Настройка динамической RLS
Настройка статической RLS