LDAP-аутентификация (active directory)

Большие инсталляции AggreGate управляются сотнями людей, каждый из которых имеет одну или множество ролей. Создание и поддержка отдельных учетных записей пользователей AggreGate Server для всех них слишком трудозатратна. В этом случае возможно аутентифицировать пользователей через сервер LDAP (такой как Microsoft Active Directory), в то время как авторизация (назначение прав доступа пользователя) будет использовать учетные записи пользователя AggreGate Server на основе ролей.

Помимо Microsoft Active Directory, функция аутентификации LDAP может использоваться с LDAP-серверами, совместимыми с RFC (например, решениями на основе FreeIPA, такими как ALD PRO). Следует помнить, что Microsoft Active Directory поддерживает привязку с использованием UPN (User Principal Name, например, user@domain), в то время как многие LDAP-серверы, совместимые с RFC, требуют привязки с использованием DN (Distinguished Name, например, uid=user,cn=...,dc=domain,dc=tld). Если вы интегрируетесь с LDAP-сервером, отличным от AD, и видите сообщение «Неверный пароль» для действительных учетных данных, проверьте параметр useUid.

Аутентификация LDAP включается и контролируется через общую настройку сервера Аутентификация через Active Directory и LDAP. Она имеет следующие поля:

  • Адрес. IP-адрес или имя хоста сервера LDAP.

  • Порт. Порт для подключения к серверу LDAP, по умолчанию 389.

  • Время ожидания. Время ожидания для процесса аутентификации LDAP. Если время ожидания истекает во время аутентификации, пользователь AggreGate Server, пытающийся зайти при помощи аутентификации LDAP, будет отклонен.

  • Тип. Выберите ваш тип аутентификации: Use RDN Prefix или Use Authentication User.

  • useUid. Логический флаг (по умолчанию: false), переключающий плагин на поток аутентификации в стиле RFC для серверов LDAP, отличных от Microsoft. При включении плагин использует Distinguished Name (DN) вместо User Principal Name (UPN) во время привязки LDAP и использует uid вместо sAMAccountName в запросах поиска LDAP. Оставьте его отключенным для типичных конфигураций Microsoft Active Directory (обратная совместимость) и включите для серверов LDAP, совместимых с RFC, таких как FreeIPA/ALD PRO.

  • Соответствие контейнеров по умолчанию. Таблица, использующаяся для преобразования primaryGroupID LDAP-пользователя (из столбца ID) в имя группы (указано с столбце Name). Используется только если выбран тип аутентификации Использовать RDN префикс. Обратите внимание, что primaryGroupID является специфическим для Microsoft Active Directory; многие LDAP-серверы, совместимые с RFC (например, FreeIPA/ALD PRO), не предоставляют его, поэтому в таких средах эту таблицу можно игнорировать.

  • Соответствие параметров пользователя LDAP пользователям AggreGate. Таблица, определяющая, как параметры LDAP-пользователей соотносятся с учетными записями пользователя AggreGate Server на основе ролей. После успешной аутентификации LDAP-пользователя, системе нужно будет найти соответствующего LDAP-пользователю пользователя AggreGate Server. Это происходит следующим образом:

    • Таблица Соответствие параметров пользователя LDAP пользователям AggreGate обрабатывается построчно

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

    • Результат Выражения значения атрибута сравнивается со значением атрибута LDAP-пользователя, указанным в столбце Имя атрибута. Если они совпадают, пользователь, указанный в столбце Пользователь aвторизуется для текущей сессии.

После того, как найдена соответствующая запись в таблице Соответствие параметров пользователя LDAP пользователям AggreGate, обработка данных продолжается. Если будут найдены другие записи, совпадающие с текущим LDAP-пользователем (т.е. совпадение более, чем одной записи), аутентификация закончится ошибкой.

Обратите внимание, что в режиме Use RDN Prefix авторизация на основе групп обычно реализуется с помощью атрибута memberOf в таблице сопоставления атрибутов пользователей LDAP с AggreGate. Другие атрибуты, такие как distinguishedName / userPrincipalName, могут существовать в схеме LDAP, но они не предназначены для сопоставления групп с ролями в этом режиме.

Обратите внимание, что учетные записи пользователей авторизации LDAP user1 и user1@domain.com эквивалентны и распознаются как user1, но вариант domain.com/user1 нельзя использовать в AggreGate.

  • Префиксы RDN. Имя RDN для поиска пользователя, без сегментов ЦОД. Это поле относится только к аутентификации по Типу Use RDN Prefix.

  • Домен по умолчанию. Имя домена для использования, если он не был определен в имени пользователя при входе.

  • Имя пользователя. Поле предоставляет имя пользователя. Относится только к аутентификации по Типу Use Authentication User.

  • Пароль. Пользовательский пароль. Это поле относится только к аутентификации по Типу Use Authentication User.

  • Домен для поиска. Домен для поиска пользователей. Либо Использовать доменную часть имени пользователя (например, часть логина аутентификации после символа @), либо Использовать домен по умолчанию (например, значение параметра домена по умолчанию).

  • Использовать SSL. Определяет, будет ли использоваться безопасный протокол LDAPs.

Аутентификация с использованием RDN префикса

Вот как происходит аутентификация по Типу Use RDN Prefix:

  • LDAP запросы делаются к пользователям из списка Домен для поиска, один запрос на каждую запись в таблице Префиксы RDN. Доменная часть запроса формируется путем соединения текущего Префикса RDN и,DC=Lookup Domain. Область поиска LDAP установлена ​​на Область поддерева. Поиск пользователей осуществляется по атрибуту LDAP userPrincipalName, если параметр useUid отключен. Если useUid включен, поиск пользователей осуществляется по атрибуту uid, и плагин выполняет привязку, используя DN, сформированный из uid + префиксов RDN + сегментов домена DC.

  • Все перечисленные выше запросы должны возвращать строго всего один результат, иначе аутентификация завершится ошибкой.

  • Если найденный LDAP-пользователь имеет атрибут primaryGroupID, имя группы пользователя вычисляется путем скрининга таблицы Соответствие контейнеров по умолчанию. Имя группы, найденной в записи с ID то же, что и используемый primaryGroupID.

  • Наконец, пользователь AggreGate Server ищется в таблице Соответствие параметров пользователя LDAP пользователям AggreGate.

Аутентификация с использованием пользователя аутентификации

Следующие шаги описывают, как выполняется аутентификация, если для параметра Тип установлено значение Use Authentication User:

  • Выполняется LDAP-запрос для поиска пользователя по атрибуту входа:

    • sAMAccountName используется, когда useUid отключен (типичный случай Microsoft Active Directory)

    • uid используется, когда useUid включен (серверы LDAP, соответствующие RFC)

    • Для выполнения запроса используются параметры имени пользователя и пароля.

  • Пользователь AggreGate Server ищется в сопоставлении атрибутов пользователя LDAP с пользователем AggreGate в соответствии с атрибутами пользователя, найденного с помощью вышеуказанного запроса.

  • После того, как запись пользователя найдена, AggreGate Server проверяет учетные данные пользователя, выполняя привязку LDAP:

    • с UPN, когда useUid отключен (если применимо для сервера LDAP),

    • с DN, когда useUid включен.

Примеры конфигурации ALD PRO

Приведенные ниже примеры показывают рабочие конфигурации для ALD PRO.

Включите параметр Использовать уникальный идентификатор во всех случаях — это переключает расширение на привязку на основе DN, соответствующую стандарту RFC.

Перед настройкой любого из режимов выполните следующие шаги:

  1. В настройках сервера (Безопасность → Аутентификация) установите для параметра Внешняя аутентификация значение LDAP и установите для параметра Режим подключения пользователя»значение Allow Parallel Connections.

  2. Для каждого пользователя AggreGate, упомянутого в таблице Сопоставление атрибутов пользователя LDAP и пользователей AggreGate, откройте свойства пользователя и включите внешнюю аутентификацию.

  3. Сопоставление со встроенным admin пользователю недоступно — эта опция отключена по соображениям безопасности.

Используйте режим RDN префикса

Поле

Значение

Адрес

Имя хоста контроллера домена ALD PRO, например dc01.example.lan

Порт:

389

Тип

Use RDN prefix

Префиксы RDN

cn=users,cn=accounts

Домен по умолчанию

example.lan

Использовать уникальный идентификатор

Да

В таблице Сопоставление атрибутов пользователя LDAP с пользователем AggreGate установите для параметра Имя атрибута значение memberOf , а в поле Выражение для значения атрибута — имя группы ALD PRO, например 'ldap_admins'.

memberOf — это стандартный атрибут LDAP, в котором перечислены группы, к которым принадлежит пользователь.

Пользователи входят в систему, используя своё сокращённое имя пользователя, например jdoe — без доменной части.

Используйте режим аутентификации пользователя

Поле

Значение

Адрес

Имя хоста контроллера домена ALD PRO, например dc01.example.lan

Порт:

389

Тип

Use authentication user

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

Полный DN аккаунта службы, например uid=svc_ldap,cn=users,cn=accounts,dc=example,dc=lan

Пароль

Пароль служебной учетной записи

Домен по умолчанию

example.lan

Использовать уникальный идентификатор

Да

В таблице Сопоставление атрибутов пользователя LDAP и пользователей AggreGate установите для параметра Имя атрибута значение memberOf.

Пользователи входят в систему, используя свое короткое имя пользователя, например jdoe — без части домена.

Известные лимиты

Следующие комбинации сопоставления атрибутов не работают и не могут быть настроены на работу независимо от типа LDAP-сервера.

Режим

Атрибут сопоставления

Работает с MS AD

Работает с ALD PRO

Use RDN prefix

memberOf

Да

Да

Use RDN prefix

distinguishedName

Нет

Нет

Use RDN prefix

userPrincipalName

Нет

Нет

Use authentication user

memberOf

Да

Да

Use authentication user

userPrincipalName

Да

Нет

Use authentication user

distinguishedName

Нет

Нет

Вход с использованием имени пользователя в формате user@domain не работает с ALD PRO ни в одном из режимов. Пользователи должны вводить только свое короткое имя пользователя (например, jdoe). Microsoft Active Directory поддерживает оба формата.

Was this page helpful?