Не удается подключиться к серверу LDAP с помощью Google WorkspaceLDAP

Я пытаюсь проверить подключение к серверу LDAP Google Workspace. Я следую этой странице справки :https://support.google.com/a/answer/9190869?hl=en#ldap-query&zippy=%2Cldapsearch

. Но когда я запускаю предложенные команды, я получаю эту ошибку:

root@debian:/etc/freeradius/3.0# LDAPTLS_CERT=/etc/freeradius/3.0/certs/ldap-client.crt LDAPTLS_KEY=/etc/freeradius/3.0/certs/ldap-client.key ldapsearch -v -H ldaps://ldap.google.com:636 -b dc=MYDOMAIN,dc=cz '(mail=MYUSERNAME@MYDOMAIN.cz)'
ldap_initialize( ldaps://ldap.google.com:636/??base )
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
    additional info: (unknown error code)

Есть идеи, что не так?

0
задан 6 October 2021 в 15:24
1 ответ

В Ubuntu 20.04 я обнаружил, что мне пришлось отключить TLS1.3, установив LDAPTLS_CIPHER_SUITE='NORMAL:!VERS-TLS1.3', чтобы заставить ldapsearch работать с Google LDAP.

Как я сюда попал:

Команда ldapsearch поддерживает печать расширенной отладки на консоль с помощью флага -d debuglevel. Уровень отладки 1(-d1)был для меня достаточным, более высокие уровни отладки становятся очень многословными и трудными для чтения.

Простая команда отладки могла бы выглядеть так:

vagrant@focal:~$ ldapsearch -H ldaps://ldap.google.com:636 -d1

Отсюда я мог видеть, что сертификат не является доверенным:

...
attempting to connect:
connect success
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
...

Это не имело никакого смысла. Сертификат, возвращенный ldap.google.com, был действительным и мог быть проверен на соответствие моему /etc/ssl/certs/ca-certificates.crtс помощью openssl s_client -connect ldap.google.com:636 -CAfile /etc/ssl/certs/ca-certificates.crt, но ldapsearch не доверял ему.

В конце концов я наткнулся на это сообщение в списке рассылки OpenLDAP, в котором объяснялась проблема с отсутствием поддержки SNI, из-за чего Google возвращал недействительный-подписанный сертификат. Мне не удалось найти подходящее решение, но приведенный ниже обходной путь для отключения TLS1.3 путем установки переменной среды LDAPTLS_CIPHER_SUITEсработал для меня, потому что мой OpenLDAP использовал GnuTLS. Если вы используете OpenSSL, вам, вероятно, потребуется найти другой обходной путь, но основная причина, вероятно, все та же.

0
ответ дан 12 October 2021 в 19:45

Теги

Похожие вопросы