Внешняя авторизация

Так как Keycloak, используемый платформой Visiology, имеет встроенную поддержку для подключения к существующим серверам LDAP или Active Directory и поддерживает OpenID Connect, OAuth 2.0 и SAML, администраторы могут существенно упростить процесс администрирования пользователей и групп.

Рассмотрим в качестве примера интеграцию с Active Directory, которая позволяет автоматизировать процесс создания учетных записей пользователей и назначение им прав доступа посредством мапирования групп Active Directory на роли в Visiology.

Процедура интеграции включает в себя:

  • настройку подключения к LDAP провайдеру в Keycloak;

  • настройку мапперов для корректного извлечения атрибутов импортируемых пользователей;

  • синхронизацию пользователей.

Настройка подключения к LDAP провайдеру

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

  1. Откройте Keycloak и выберите область (realm), в которой вы будете производит настройки. В нашем примере это Visiology:

     

  2. Нажмите User federation в боковой панели и выберите Add Ldap providers в окне справа:

     

  3. В открывшейся форме укажите параметры подключения и нажмите Save. Все обязательные поля, помеченные красной звездочкой, должны быть заполнены:

    После заполнения полей вы можете протестировать соединение нажав на кнопки Test connection и Test authentication. Если параметры указаны без ошибок, в правом верхнем углу вы увидите сообщение о том, что соединение прошло успешно:

     

Если вы не хотите извлекать данные всех пользователей, зарегистрированных на домене, вы можете указать определенную группу пользователей. Для этого необходимо в секции LDAP searching and updating настроек LDAP провайдера указать данную группу. Сделать это можно так: OU=Acme, где OU – подразделение (Organizational Unit), а Acme – название группы:

Настройка мапперов

При создании LDAP провайдера автоматически создается необходимая группа мапперов (за исключением group-ldap-mapper), которые содержат в себе атрибуты пользователей. Вы можете отредактировать как отредактировать их, так и создать новые мапперы для передачи дополнительных атрибутов пользователей.

Редактирование маппера

Для изменения параметров маппера выполните следующие шаги:

  1. Щелкните на созданный LDAP провайдер в окне User federation:

     

  2. В открывшемся окне перейдите на вкладку Mappers и выберите маппер, который хотите отредактировать:

     

  3. Обновите требуемые параметры. Для извлечения пользовательских атрибутов используются специальные Active Directory атрибуты (см. таблицу основных пользовательских атрибутов ниже). В нашем примере мы укажем givenName в поле LDAP Attribute для извлечения имени пользователя:

     

ТАБЛИЦА ОСНОВНЫХ ПОЛЬЗОВАТЕЛЬСКИХ АТРИБУТОВ ACTIVE DIRECTORY

Атрибут

Англоязычное название

Русскоязычное название

Пример

Подразделение (OU – Organizational Unit)

distinguishedName

 Distinguished Name

 Отличительное (уникальное) имя

OU=Компания,DC=domain,DC=com

name

 

 

Компания

Группа

distinguishedName

 Distinguished Name

Отличительное (уникальное) имя

CN=Группа,OU=Компания,DC=domain,DC=com

name

 

 

Группа

member

Members

Члены группы (какие пользователи входят в данную группу)

CN=Сергей Петрович Иванов,OU=Компания,DC=domain,DC=com

Пользователь

DN

Distinguished Name

Отличительное (уникальное) имя

CN=Сергей Петрович Иванов,OU=Компания,DC=domain,DC=com

DC

Domain Component

Компонент(класс) доменного имени.

DC=domain,DC=com

OU

Organizational Unit

Подразделение

Компания

CN

Common Name

Общее имя

Сергей Петрович Иванов

givenName

First name

Имя

Сергей Петрович

name

Full name

Полное имя

Сергей Петрович Иванов

sn (SurName)

Last name

Фамилия

Иванов

displayName

Display Name

Выводимое имя

Сергей Петрович Иванов

mail

E-mail

Электронная почта

mail@domain.com

sAMAccountName

User logon name (pre-Windows 2000)

Имя входа пользователя (пред-Windows 2000)

IvanovSP

userPrincipalName

User logon name

Имя входа пользователя

IvanovSP@domain.com

memberOf

Member Of

Член групп (в какую группу входит данный пользователь)

CN=Группа,OU=Компания,DC=domain,DC=com

Добавление маппера

Как мы уже сказали, маппер group-ldap-mapper автоматически не добавляется при подключении к LDAP провайдеру, его необходимо добавить. На его примере мы продемонстрируем, как добавлять мапперы:

  1. Выберите созданный LDAP провайдер в окне User federation:

     

  2. В открывшемся окне перейдите на вкладку Mappers и нажмите Add mapper:

  3. В открывшейся форме укажите следующие параметры и нажмите Save:

    Созданный маппер появится в списке мапперов.

Набор настроек завит от выбранного типа маппера. Более подробную информацию о мапперах см. в документации Keycloak.

Синхронизация пользователей

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

После синхронизации, пользователи Active Directory смогут входить в Visiology с использованием своего пароля и логина.

Вы можете также активировать автоматическую синхронизацию, указав необходимый временной период в настройках синхронизации LDAP провайдера.

Особенности интеграции

  • Важно отметить, что если пользователь принадлежит к группе с ролью Зритель, ему можно в индивидуальном порядке назначить роль Администратор, и он получит полный доступ к платформе независимо от того, что он принадлежит к группе с ограниченным доступом. Если у пользователя роль Зритель, а его добавят в группу с ролью Администратор, то он также получит полный доступ к платформе.

  • При переносе LDAP-групп в Keycloak иерархия групп не сохраняется. Группы попадают в Visiology “плоским списком”. Это означает, что если пользователь принадлежит к какой-либо подгруппе в Active Directory, то в Visiology он будет принадлежать к обеим группам (родительской и дочерней). Данное поведение регулируется в Keycloak в настройках маппера group-ldap-mapper:


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

Создание, редактирование и удаление пользователей