Как выполнить тестирование подключения к сервису Secure LDAP

Эта функция доступна в версиях Frontline Standard, Frontline Plus, Business Plus, Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Standard, Education Plus и Enterprise Essentials Plus. Сравнение версий

Прежде чем пытаться подключить клиент LDAP к сервису Secure LDAP, вы можете по желанию быстро проверить подключение с помощью таких инструментов, как ldapsearch, ADSI или ldp.exe. Их также можно использовать для устранения неполадок, если при подключении LDAP-клиента к сервису возникла ошибка.

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

Статья состоит из следующих разделов:

Примечание. Если вам понадобится обратиться в службу поддержки Google Workspace или службу поддержки Cloud Identity Premium, сохраните результаты выполнения команд. Прежде чем отправлять их в службу поддержки, удалите из них всю личную информацию.

Как проверить подключение и отправить запрос LDAP

После того как вы настроите сервис Secure LDAP в консоли администратора Google, вы можете проверить подключение к нему с помощью одного из трех простых инструментов: ldapsearch, ADSI или ldp.exe. Подробную информацию и инструкции вы найдете ниже.

ldapsearch

Используйте утилиту ldapsearch из командной строки, чтобы выполнить базовый запрос LDAP. Успешное выполнение запроса LDAP указывает на то, что LDAP-клиент и соответствующие сеанс TLS и подключение по протоколу TCP работают в нормальном режиме.

Чтобы проверить подключение с помощью ldapsearch:

  1. Создайте конфигурацию LDAP и скачайте сертификат, следуя инструкциям в разделе Добавление LDAP-клиентов.

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

  2. Выполните запрос LDAP. В этом примере выполняется запрос к определенному пользователю (подробнее о ldapsearch в OpenLDAP…).

    LDAPTLS_CERT={crt_file} LDAPTLS_KEY={key_file} ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} '(mail={user_email})'

    Замените плейсхолдеры следующим образом:

    • {crt_file} – название CRT-файла.
    • {key_file} – название файла .key.
    • {domain} – каждая часть доменного имени, например example.com, будет преобразована в "dc=example,dc=com".
    • {user_email} – основной адрес электронной почты пользователя в домене.

Примечания по использованию ldapsearch

  • Если значение BindDN не указано, ldapsearch использует ключ и сертификат для авторизации поиска.
  • Если значение BindDN – это имя пользователя LDAP, созданное в консоли администратора, ldapsearch будет использовать разрешения клиента LDAP, настроенные в консоли администратора.

    ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {ldap_access_credentials_username} -W '(mail={user_email})

  • Если значение BindDN – это адрес электронной почты или уникальное имя пользователя Workspace, ldapsearch будет использовать учетные данные этого пользователя для поиска на основе его разрешений.

    ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {workspace_username@domain} -W '(mail={user_email})'

Как использовать ldapsearch со stunnel

Если для развертывания требуется использовать stunnel, выполните следующие действия:

  1. В консоли администратора создайте учетные данные для доступа, чтобы получить имя пользователя и пароль, необходимые для ldapsearch.
  2. Используйте следующую команду:

    ldapsearch -x -D "{username}" -w {password} -H ldap://{stunnel_host}:{stunnel_port} -b dc={domain},dc={domain} '(mail={user_email})'

    Замените плейсхолдеры следующим образом:

    • {username} – имя пользователя из сгенерированных учетных данных в консоли администратора.
    • {password} – пароль из сгенерированных учетных данных в консоли администратора.
    • {stunnel_host} – IP-адрес или имя хоста машины, на которой в вашей сети запущен stunnel.
    • {порт_stunnel} – порт, на котором запущена программа stunnel (проверьте ее конфигурацию).
    • {user_email} – основной адрес электронной почты пользователя в домене.

Успешный сценарий использования команды ldapsearch

Если команда ldapsearch выполнена успешно, пользователь с адресом электронной почты (указанным при создании клиента LDAP) будет перечислен в выходных данных в формате LDIF.

Пример:

# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# example.com
dn: dc=example,dc=com
objectClass: top
objectClass: domain
objectClass: dcObject
dc: example

# admin-group, Groups, example.com
dn: cn=admin-group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: admin-group
displayName: admin-group
description:
gidNumber: 12345
member: uid=admin,ou=Users,dc=example,dc=com
memberUid: admin
googleAdminCreated: FALSE


# example-user, Users, example.com
dn: uid=example-user,ou=Users,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: example-user
googleUid: example-user
posixUid: example-user
cn: example-user
cn: FirstName LastName
sn: FirstName
displayName: FirstName LastName
givenName: FirstName
mail: example-user@example.com
uidNumber: 12345
gidNumber: 12345
homeDirectory: /home/example-user
loginShell: /bin/bash
gecos:

Возможные ошибки

  • Клиент и/или библиотека OpenLDAP скомпилированы без поддержки SNI

    Клиент LDAP (в данном случае OpenLDAP) должен поддерживать SNI (указание имени сервера). Если SNI недоступен, может появиться ошибка, похожая на следующую:

    SASL/EXTERNAL authentication started

    ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
    additional info: SASL(-4): no mechanism available:

    Рекомендация:
    • При работе с macOS аутентификация SASL по умолчанию включена. Чтобы ее не использовать, укажите параметр -x.
    • Добавьте параметр -d5 в команду ldapsearch и проверьте, есть ли в выходных данных следующая строка:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
  • Команда ldapsearch возвращает статус 0 (успешно), но не выводит список пользователей

    Если указать параметр ldapsearch -x (использовать аутентификацию SASL) с клиентскими сертификатами, аутентификация пройдет успешно, но список пользователей в домене не будет выведен.

    Рекомендация. Удалите параметр -x и попробуйте ещё раз.

ADSI Edit (Windows)

  1. Выполните шаги 1–11 в разделе ldp.exe (Windows), чтобы установить сертификаты клиента.
  2. Выберите Action (Действия) > Connect to (Подключиться к).
  3. Укажите следующие настройки подключения:

    Имя. Введите название подключения, например Google LDAP.
    Точка подключения. Выберите или введите различающееся имя или контекст именования.
    Введите доменное имя в формате DN (например, dc=example,dc=com для example.com).

    Компьютер. Выберите или введите домен или сервер.
    ldap.google.com

    Использовать шифрование на основе SSL. Установите флажок.
  4. Нажмите Дополнительно… и укажите следующие данные:

    Указать учетные данные: выбрано
    Имя пользователя: имя пользователя для доступа из консоли администратора
    Пароль: пароль для доступа из консоли администратора
    Номер порта: 636
    Протокол: LDAP
    Простая аутентификация привязки: выбрано
  5. Нажмите кнопку ОК, а затем снова ОК.
  6. Если подключение установлено, на правой панели появятся данные каталога, указанные в базовом уникальном имени.

ldp.exe (Windows)

  1. Установите OpenSSL.
  2. Преобразуйте сертификат и ключи в один файл формата PKCS12. В командной строке введите следующее:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    Введите пароль, чтобы зашифровать файл выходных данных.
  3. Откройте панель управления.
  4. В окне поиска выполните поиск по запросу "сертификат" и нажмите Управление сертификатами пользователей.
  5. Выберите Действие > Все задачи > Импорт
  6. Нажмите Текущий пользователь, а затем Далее.
  7. Нажмите Обзор
  8. В раскрывающемся списке File type (Тип файла) в правом нижнем углу диалогового окна выберите Personal Information Exchange (Файлы обмена личной информацией) (*.pfx;*.p12).
  9. Выберите файл ldap-client.p12, созданный на шаге 2, нажмите Открыть, а затем Далее.
  10. Введите пароль из шага 2 и нажмите Далее.
  11. Выберите хранилище сертификатов Личное, нажмите Далее, а затем Готово.
  12. Запустите файл Ldp.exe.
  13. Выберите Подключение > Подключиться….
  14. Укажите следующие данные для подключения:

    Сервер: ldap.google.com
    Порт: 636
    Без подключения: снимите флажок
    SSL: установите флажок
  15. Нажмите ОК.
  16. Откройте View (Представление) > Tree (Дерево).
  17. Введите базовое уникальное имя. Это доменное имя в формате DN. Пример для example.com: dc=example,dc=com.
  18. Нажмите ОК.
  19. Если подключение установлено, на правой панели появятся данные каталога, указанные в базовом уникальном имени.

При необходимости выполните базовую проверку подключения

Если при выполнении команды Verify connectivity and run an LDAP query (Проверить подключение и выполнить запрос LDAP) не удалось получить положительный результат, следуйте инструкциям в этом разделе, чтобы проверить подключение. Если ldapsearch не возвращает ожидаемого пользователя и не указывает на то, что сеанс TLS прошел успешно, используйте клиент OpenSSL, чтобы проверить, правильно ли работают сетевые уровни, на которые опирается OpenLDAP.

Чтобы выполнить базовую проверку подключения:

  1. Установите утилиту openssl для своей операционной системы.

    В большинстве пакетов GNU/Linux используется название "openssl". Подробнее о других операционных системах…

  2. Подключитесь к сервису Secure LDAP вручную с помощью клиента openssl:

    openssl s_client -connect ldap.google.com:636
    

    Если соединение SSL успешно установлено, в конце файла с выходными данными openssl s_client будет следующая строка:

    Verify return code: 0 (ok)
    

Возможные ошибки

Клиент/библиотека OpenSSL не поддерживает SNI (указание имени сервера)

Во время тестирования подключения может быть возвращен следующий результат:

Verify return code: 18 (self signed certificate)

Сервису Secure LDAP требуется клиент TLS, который поддерживает и инициирует сеансы TLS с помощью SNI. Если клиент TLS не поддерживает SNI, сервер TLS (ldap.google.com) возвращает самозаверяющий сертификат, который не пройдет проверку центра сертификации, чтобы указать, что SNI требуется.

Чтобы убедиться в этом, проверьте выходные данные клиента OpenSSL на наличие следующей строки в начале файла:

depth=0 OU = "No SNI provided; please fix your client.", CN = invalid2.invalid

Эта ошибка может возникать из-за того, что версия OpenSSL не поддерживает SNI или приложение использует библиотеку OpenSSL с отключенной SNI.

Подключение отклонено

Если вы видите приведенный ниже результат, где {timestamp} – это временная метка UNIX в микросекундах, значит TCP-подключение активно отклоняется до того, как может начаться согласование TLS:

{timestamp}:error:0200206F:system library:connect:Connection refused:crypto/bio/b_sock2.c:110:
{timestamp}:error:2008A067:BIO routines:BIO_connect:connect error:crypto/bio/b_sock2.c:111:connect:errno=111

Возможные причины:

  • брандмауэр на уровне приложения или системы на локальном компьютере;
  • брандмауэр в той же физической сети или последующей сети в восходящей линии связи.

С помощью утилиты tcptraceroute можно определить, какой из хостов отказывает в соединении (например, tcptraceroute ldap.google.com 636).