Настройка LDAP-сервера с Avanpost Directory Service


Общие сведения

Avanpost FAM обладает встроенной функциональностью LDAP-синхронизации и LDAP-аутентификации. В статье описывается настройка интеграции с Avanpost Directory Service (Avanpost DS) в качестве поставщика учётных данных и в качестве средства проверки паролей. Интеграция осуществляется посредством протокола LDAP.

Ознакомьтесь подробнее с функциональными возможностями продукта Avanpost DS на странице продукта

Механизм интеграции Avanpost FAM с Avanpost DS посредством LDAP может применяться при решении следующих задач:

Avanpost FAM поддерживает одновременную интеграцию с неограниченным количеством доменов, в качестве которых могут выступать несколько LDAP-каталогов как на базе Avanpost DS, так и на базе других служб каталогов (MS AD, FreeIPA, Avanpost DS и т.д.).

Системные требования для интеграции Avanpost FAM:

  • Сервер с установленным Avanpost DS.
  • Сервер Avanpost FAM 1.3+.

Настройка на стороне Avanpost DS

Необходимо создать служебную УЗ с установленным паролем.

  1. Войдите в Avanpost DS как администратор.
  2. Перейдите в раздел "Службы" → "Kerberos" → "Служебные учетные записи".
  3. Создать новую служебную запись, указав следующие параметры:
    ПараметрЗначение
    Имя службыВ качестве имени службы использовать адрес Avanpost FAM (в данном примере http/idp.avanpost.local)
    RealmУказать домен, к которому принадлежит служба (в данном примере, contoso.com).
    ПарольВвести пароль.
  4. Сохранить службу и скачать keytab-файл, который будет использоваться для дальнейшей аутентификации в Avanpost FAM.

Также на стороне Avanpost DS необходимо зафиксировать значения параметров, которые потребуются для настройки 

  • Значение IP-адреса или DNS-имя сервера Avanpost DS;
  • Значение порта LDAP-интерфейса сервера Avanpost DS;
  • Значение Base Distinguished Name (Base DN).

Настройка на стороне Avanpost FAM

  1. В разделе «Настройки LDAP-провайдеров» создать новый провайдер, указав следующие параметры (более подробно параметры внешних LDAP-провайдеров описаны в разделе Управление LDAP-источниками):

    ПараметрЧто указатьПримеры значений
    Вкладка/шаг визарда «Подключение»
    ИмяПроизвольное имя LDAP-провайдераAvanpost DS
    Домен 

    Домен LDAP-провайдера.

    Имя домена. Например, contoso.com

    В случаях, когда используется посредством протокола Kerberos, значение домена должно соответствовать значению Realm служебной записи Kerberos, настраиваемой на стороне Avanpost DS. 

    Группы по умолчаниюНачать ввод имён групп (минимум три символа), которые должны быть выданы новым пользователям, создаваемым в результате LDAP-синхронизацииИмя группы, созданной в Avanpost FAM: lk-client
    HostIP-адрес или DNS имя контроллера домена Avanpost DS

    Пример IP-адреса: 10.10.17.91,

    Пример имени контроллера домена: ads.avanpost.demo

    PortПорт подключения к LDAP-каталогу

    Без TLS: 38900.

    С TLS: 636.

    SSLФункция включения поддержки подключения к LDAP-каталогу по протоколу LDAPS
    BaseDNОбъект каталога, начиная с которого производится поискdc=ads,dc=demo
    Имя пользователяИмя служебной учетной записи в виде DN, используемая для импорта учетных записей, а также для проверки существования учетной записи в LDAP при попытке аутентифицироваться с использованием пароля от учетной записи в доменеuid=ads_user1,ou=users,dc=ads,dc=demo
    ПарольПароль от служебной учетной записиP@ssw0rd!

    Расписание запуска синхронизации (Cron с секундами)

    5-ти символьный формат cron  / 6-ти символьный формат quartz (с секундами)0 30 12 * * *
    Вкладка/шаг визарда «Интеграция»
    Фильтр поиска пользователейLDAP-фильтр для импорта пользователей(&(objectClass=krbPrincipal)(memberOf=cn=ADS_Users,ou=groups,dc=ads,dc=demo))
    Фильтр поиска аутентифицируемого пользователяLDAP-фильтр для поиск пользователей, чей пароль будет проверен в Avanpost DS(&(objectClass=krbPrincipal)(uid=%v))
    LDAP атрибут, содержащий логин пользователяПараметр, на основании которого будет сформирован логин в FAM . Атрибут пользователяusername
    Внешний ключ учетной записиУникальный ключ (атрибут пользователя) в Avanpost DSid
    Атрибут для связывания учетной записи из LDAP c учетной записью IDPПараметр для проверки уникальности учетной записи между Avanpost DS и FAM. Атрибут пользователяid
    Атрибут пользователя(или DN), перечисляемый в поле member группы LDAPНаименование атрибута пользователя, по которому будет производится поиск пользователей по группам. Например за факт наличия пользователей в группе отвечает атрибут группы memberUid, он в свою очередь является атрибутом uid у пользователяdn
    Импорт дополнительных атрибутов учетной записиНастройка импорт дополнительных атрибутов из AD в FAMПриложение B
    Фильтр поиска группLDAP-фильтр для импорта групп. Если в  данной настройке будут найдены пользователи из "Фильтр поиска пользователей", то их учетные записи автоматически попадут в эту группу в FAM(&(objectClass=posixGroup)(cn=ADS_Users))
    Атрибут наименования группыАтрибут группы в Avanpost DS с наименование группыcn
    Атрибут описания группыАтрибут группы в Avanpost DS с описанием группыcn
    Атрибут со списком участников группыАтрибут группы в Avanpost DS со списком пользователей группыmember
  2. Убедиться, что провайдер находится в статусе «Active».
  3. Если интеграция Avanpost DS и Avanpost FAM выполняется по протоколу Kerberos, то необходимо загрузить FAM keytab-файл, созданный на стороне Avanpost DS (более подробно о разделе "Kerberos-ключи" указано в статье Настройка метода Kerberos):
    1. Перейти в раздел "Kereros-ключи" режима "Сервиса".
    2. Нажать кнопку "Загрузить ключи" и выбрать созданный ранее keytab-файл.
    3. Убедиться, что параметры загруженной записи корректны:
      1. Параметр "Realm" соответствует параметру "Домен" в учетной записи пользователя, загруженного из Avanpost DS.
      2. Параметр "Учетная запись" соответствует Base URL FAM Server,
      3. В графе "Используется" стоит галочка. 

Настройка браузера для работы с Kerberos

При интеграции Avanpost FAM и Avanpost DS с использованием протокола Kerberos следует настроить браузеры для корректной работы с Kerberos SSO.

Настройка браузера Firefox (Mozilla) выполняется следующим образом:

  1. Перейти в редактор настроек Firefox, введя в адресной строке about:config.
  2. Изменить следующие параметры:
    ПараметрЗначение
    network.negotiate-auth.trusted-urisАдрес FAM Server из параметра base_url конфигурационного фалай (в данном примере https://idp.avanpost.local)
    network.negotiate-auth.delegation-urisАдрес FAM Server из параметра base_url конфигурационного фалай (в данном примере https://idp.avanpost.local)
    network.auth.use-sspitrue (для Windows)

Настройка браузера Google Chrome/Edge выполняется следующим образом:

  1. Убедиться, что, адрес FAM Server в зоне "Надёжные узлы" (Local Intranet):
    1. Открыть раздел "Свойства браузера" на Панели управления.
    2. В разделе безопасность выбрать "Надежные сайты" и нажать кнопку "Сайты".
    3. Убедиться, что в поле добавлен адрес FAM Server и выключен флаг "Требовать проверку сервера (https:) для всех сайтов в этой зоне" (чтобы не возникало ошибок для случаев, когда сертификат самоподписанный).
  2. Убедиться, что DNS-имя FAM (idp.avanpost.local) разрешается корректно:
    1. Открыть командную строку и убедиться, что при вводе команды nslookup idp.avanpost.local возвращается корректный IP-адрес FAM Server.
    2.  Убедиться, что при вводе команды nslookup <IP_адрес_FAM> возвращается адрес FAM Server.

Проверка настройки

Для проверки настройки выполнить следующие действия:

  1. Открыть Журнал событий безопасности Avanpost FAM.
  2. Убедиться в наличии сообщений об успешно выполненной синхронизации с Avanpost DS.
  3. Убедиться, что пользователю при переходе на адрес FAM (https://idp.avanpost.local в данном примере) корректно открывается окно аутентификации. 

Сценарии использования

Первичная загрузка/импорт пользователей из домена на базе Avanpost DS в Avanpost FAM

Система Avanpost FAM может выполнить первичную загрузку и создание пользователей, импортировав данные из домена Avanpost DS. Загрузка всех пользователей будет выполнена в результате первой синхронизации в соответствии с заданным расписанием.

После выполнения синхронизации в каталог Avanpost FAM будут автоматически добавлены пользователи, соответствующие заданному LDAP-фильтру. В качестве источника у таких пользователей автоматически будет указан соответствующий LDAP-каталог, а также будет зафиксирована дата и время создания пользователя.

Автоматическое создание пользователя в Avanpost FAM при его добавлении в домене Avanpost DS

При добавлении пользователей в Avanpost DS, подключенном к Avanpost FAM, система будет автоматически создавать пользователей, которые попадают под правила заданного LDAP-фильтра поиска пользователей.

Обновление атрибутов пользователя при их изменении в домене Avanpost DS

При изменении атрибутов пользователя в домене Avanpost DS, подключенном к Avanpost FAM, система будет автоматически обновлять значения атрибутов, которые настроены в правилах маппинга.

Аутентификация с проверкой пароля через LDAP BIND в домене Avanpost DS

Если пользователь найден в домене Avanpost DS, подключенном к Avanpost FAM, в соответствии с заданным фильтром поиска аутентифицируемого пользователя, то пароль проверяется в LDAP-каталоге. Иначе проверка пароля пользователя выполняется внутренними средствами Avanpost FAM.

Приложение А. Примеры LDAP-фильтров для выборки пользователей, синхронизируемых из Avanpost DS в Avanpost FAM

Выгрузка пользователей из нескольких групп:

(&(objectClass=krbPrincipal)(|(memberOf=cn=ADS_ExchangeUsers,ou=groups,dc=ads,dc=demo)(memberOf=cn=ADS_VPNusers,ou=groups,dc=ads,dc=demo)))

Приложение Б. Примеры LDAP-фильтров для выборки групп, синхронизируемых из Avanpost DS в Avanpost FAM

Выгрузка нескольких групп:

(&(objectClass=posixGroup)(|(cn=ADS_ExchangeUsers)(cn=ADS_VPNusers)))

Приложение В. Примеры импортируемых атрибутов пользователей при синхронизации из Avanpost DS в Avanpost FAM

Таблица с указанием наиболее часто импортируемых атрибутов пользователя в Avanpost DS:

Атрибут

Значение

Пример значения

displayNameФИОПетров Иван Сергеевич
firstnameФамилияПетров
lastnameИмяИван
displayNameФИОПетров Иван Сергеевич
emailE-mailpetrovis@avanpost.ru
usernameИмя входа пользователяpetrovIS
dnУникальное имя (Distinguished Name)uid=petrovis,OU=ИТ отдел,DC=open,DC=ldap
idУникальный идентификатор ( GUID) 212685e1-4b95-46e6-abfb-a37bf1d0d055
memberOfГруппы пользователя в виде DNcn=ADS_VPNusers,ou=groups,dc=ads,dc=demo
cnДополнительный атрибут, используемый для синхронизации между FAM и DS в случае изменения параметров учетной записи на стороне каталога (например, смена фамилии пользователя) без изменений на стороне FAM.Петров Иван Сергеевич

Исчерпывающий перечень доступных для загрузки атрибутов содержится в документации на Avanpost DS.

Обсуждение