Настройка соответствия OpenID Connect
Оглавление
Настройка атрибутов
Для настройки соответствия атрибутов:
- Перейдите на вкладку “Сопоставление атрибутов“.
- Включите сопоставление атрибутов, нажав кнопку "Включить сопоставление атрибутов".
- Задайте параметры сопоставления:
- Фамилия – атрибут, в котором хранится фамилия пользователя;
- Имя – атрибут, в котором хранится имя пользователя;
- Отчество – атрибут, в котором хранится отчество пользователя;
- Email – атрибут, в котором хранится email пользователя.
- Дополнительные атрибуты – используются для разграничения прав доступа к данным. Подробно описание см. в Разграничение прав доступа к данным
- Для сохранения настроек нажмите “Сохранить“.
Если сопоставление атрибутов не включено, то при создании пользователей, Фамилия будет получена из атрибута для "UserName claim" на вкладке Настройка внешней авторизации.
Настройка ролей
Для настройки соответствия ролей пользователей во внешнем провайдере и ролям в Visiology:
- Перейдите на вкладку “Сопоставление ролей“.
- Выберите "Включить сопоставление ролей".
- Задайте параметр "JMESPath", по которому будут получены роли во внешнем Провайдере. Пользователям будут присваиваться значения ролей, полученные из этого параметра.
- Не удалять уже установленные роли пользователей:
- если опция включена, то в случае удаления роли пользователя во внешнем Провайдере, при авторизации в Visiology, удаленная роль не будет отозвана из назначенных ранее Пользователю ролей;
- если опция отключена, то удаленные у пользователя роли во внешнем Провайдере будут также удалены у пользователя в Платформе.
- Для сохранения настроек нажмите “Сохранить“.
Если Сопоставление ролей выключено, то при создании пользователя из внешнего Провайдера, новому пользователю будет присвоена роль "Все авторизованные пользователи".
Примеры сопоставления ролей
Имеется массив с ролями из токена:
{ "resource_access":{ "test":{ "roles":[ "foo", "fooo" ] } } }
Пример 1
Для сопоставления ролей из токена с ролями на платформе необходимо ввести следующую команду в поле JMESPath:
resource_access.test.roles
Результат будет таким:
[ "foo", "fooo" ]
В данном случае роли на платформе и в провайдере должны иметь одинаковые наименования.
Пример 2
Если в провайдере присутствует определённая роль, вы можете произвести мапинг. Для этого на платформе введите следующую команду:
[contains(resource_access.test.roles, 'foo') && 'bar', contains(resource_access.test.roles, 'fooo') && 'barr']
Результат будет таким:
[ "bar", "barr" ]
Пример 3
Если нужно к массиву ролей из провайдера добавить свою роль, например, чтобы назначить эту роль абсолютно всем пользователям, то необходимо ввести следующую команду:
[[resource_access.test.roles, 'bar']].map(&[], @)[0]
Результат будет таким:
[ "foo", "fooo", "bar" ]