LDAP-прокси для нескольких доменов Microsoft

Вопрос или проблема

Я могу искать пользователя с помощью ldapsearch, это работает нормально для обоих доменов.

Если я хочу аутентифицироваться с помощью testsaslauthd -u user1 -p 12345678 0: NO “аутентификация не удалась”.

Если я аутентифицируюсь с Windows-машины: аутентификация не удалась – пожалуйста, проверьте ваше имя пользователя и пароль.

Как я могу это решить?

У меня следующая конфигурация:

/etc/ldap/ldap.conf

BASE dc=proxy,dc=local

URI ldap://ldap.proxy.local

TLS_CACERT /etc/ssl/certs/ca-certificates.crt

/etc/default/slapd

SLAPD_USER=”openldap”

SLAPD_GROUP=”openldap”

SLAPD_PIDFILE=

SLAPD_SERVICES=”ldap:/// ldapi:///”

SLAPD_SENTINEL_FILE=/etc/ldap/noslapd

SLAPD_OPTIONS=””

/etc/ldap/slapd.conf

include /etc/ldap/schema/core.schema

include /etc/ldap/schema/cosine.schema

include /etc/ldap/schema/inetorgperson.schema

include /etc/ldap/schema/misc.schema

include /etc/ldap/schema/openldap.schema

allow bind_v2

pidfile /var/run/ldap/slapd.pid

argsfile /var/run/ldap/slapd.args

modulepath /usr/lib/ldap

moduleload back_ldap.la

moduleload back_meta.la

moduleload rwm.la

moduleload accesslog.la

moduleload auditlog.la

loglevel 2048

LogFile /var/log/slapd/slapd.log

#######################################################################

определения базы данных

#######################################################################

attributetype ( 1.2.840.113556.1.4.656 NAME ‘userPrincipalName’ EQUALITY caseExactMatch

SYNTAX ‘1.3.6.1.4.1.1466.115.121.1.15’ SINGLE-VALUE )

database meta

suffix “dc=proxy,dc=local”

rootdn “cn=admin,dc=proxy,dc=local”

rootpw ******

#LDAP1

uri “ldap://dc1.local/ou=AD1,dc=proxy,dc=local”

lastmod off

suffixmassage “ou=AD1,dc=proxy,dc=local” “dc=dc1,dc=local”

idassert-bind bindmethod=simple

binddn=”CN=Service1,OU=Users,DC=dc1,DC=local”

credentials=”*****”

mode=none

flags=non-prescriptive

idassert-authzFrom “dn.exact:cn=admin,dc=proxy,dc=local”

#LDAP2

uri “ldap://dc2.local/ou=AD2,dc=proxy,dc=local”

lastmod off

suffixmassage “ou=AD2,dc=proxy,dc=local” “dc=dc2,dc=local”

idassert-bind bindmethod=simple

binddn=”CN=Service2,OU=Users,DC=dc2,DC=local”

credentials=”*****”

mode=none

flags=non-prescriptive

idassert-authzFrom “dn.exact:cn=admin,dc=proxy,dc=local”

overlay rwm

rwm-map attribute uid sAMAccountName

rwm-map attribute mail proxyAddresses

nano /etc/default/saslauthd

START=yes

DESC=”демон аутентификации SASL”

NAME=”saslauthd”

MECHANISMS=”ldap”

MECH_OPTIONS=”/etc/saslauthd.conf”

THREADS=5

OPTIONS=”-r -c -m /var/run/saslauthd”

/etc/saslauthd.conf

ldap_servers: ldap://127.0.0.1:289

ldap_search_base: DC=proxy,DC=local

ldap_timeout: 10

ldap_filter: sAMAccountName=%U

ldap_bind_dn: cn=admin,dc=proxy,dc=local

ldap_password: ******

ldap_deref: never

ldap_restart: yes

ldap_scope: sub

ldap_use_sasl: no

ldap_start_tls: no

ldap_version: 3

ldap_auth_method: bind

/usr/lib/sasl2/slapd.conf

pwcheck_method: saslauthd

saslauthd_path: /var/run/saslauthd/mux

Ответ или решение

Проблема, с которой вы сталкиваетесь, может быть вызвана несколькими причинами, связанными с конфигурацией как OpenLDAP, так и SASL. Ниже приведены шаги и рекомендации, которые помогут вам решить проблему аутентификации:

Шаг 1: Проверьте параметры LDAP

  1. Проверка URIs и DN:
    Убедитесь, что значения uri в конфигурации OpenLDAP корректны и указывают на правильно настроенные контроллеры домена (DC). Проверьте, что binddn и credentials для обоих LDAP серверов корректны и имеют соответствующие права для выполнения аутентификации.

  2. Фильтр LDAP в /etc/saslauthd.conf:
    Параметр ldap_filter у вас установлен как sAMAccountName=%U. Убедитесь, что предоставляемые пользовательские имена действительно соответствуют значениям sAMAccountName в вашей Active Directory. Возможно, вам потребуется использовать другой атрибут для фильтрации.

Шаг 2: Конфигурация SASL

  1. Параметры saslauthd:
    Убедитесь, что saslauthd запущен и правильно настроен с использованием следующих параметров в /etc/default/saslauthd:

    OPTIONS="-r -c -m /var/run/saslauthd"

    Проверьте, что каталог /var/run/saslauthd существует и доступен.

  2. Файлы логов:
    Проверьте логи SASL и LDAP для выявления возможных ошибок. Файл /var/log/slapd/slapd.log должен содержать записи, которые могут указать на проблему с аутентификацией.

Шаг 3: Тестирование

  1. Тестирование с помощью testsaslauthd:
    Убедитесь, что команда выглядит следующим образом:

    testsaslauthd -u sAMAccountName -p 'ваш_пароль'

    Замените sAMAccountName на имя пользователя с Active Directory. Если аутентификация не проходит, попробуйте изменить значение фильтра в saslauthd.conf, чтобы проверить, что поиск пользователей выполняется корректно.

  2. Аутентификация с Windows:
    Попробуйте аутентифицироваться с разных клиентов (не только с Windows), чтобы проверить, что проблема не вызвана определенной конфигурацией клиента.

Шаг 4: Убедитесь в совместимости

  1. Версии протоколов:
    Убедитесь, что используемые версии LDAP и SASL соответствуют требованиям Microsoft Active Directory. Зачастую протоколы LDAPS и SASL могут приводить к несовместимостям, особенно если используются разные версии OpenLDAP.

Шаг 5: Настройка TLS

Если вы планируете использовать безопасные соединения, убедитесь, что TLS правильно настроен. Ваша конфигурация не имеет параметров для ldap_start_tls. Если вы используете LDAPS, необходимо явно указать это в конфигурационных файлах. Также убедитесь, что сертификаты установлены правильно.

Заключение

Проблема аутентификации может быть вызвана множеством факторов, включая неверные DN, параметры фильтрации LDAP и ошибки в конфигурации SASL. Проведение тестирования с различными параметрами и проверка логов помогут вам диагностировать и решить проблему. Если все вышеперечисленное не поможет, рассмотрите возможность включения повышенного уровня логирования для более подробного анализа.

Оцените материал
Добавить комментарий

Капча загружается...