Тестирование подключения и устранение неполадок

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

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

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

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

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

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

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

ldapsearch

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

Как проверить подключение с помощью ldapsearch

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

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

    Ниже приведен пример команды, которая позволяет выполнить запрос об определенном пользователе с помощью инструмента командной строки ldapsearch (подробные сведения приведены в руководстве по OpenLDAP).
     

    LDAPTLS_CERT={файл_сертификата} LDAPTLS_KEY={файл_ключа} ldapsearch -H ldaps://ldap.google.com:636 -b dc={домен},dc={домен} '(mail={адрес_пользователя})'

    Замените следующие теги:

    {файл_сертификата} – название CRT-файла.
    {файл_ключа} – название KEY-файла.
    {домен} – все части доменного имени, например "dc=example,dc=com" для example.com.
    {адрес_пользователя} – основной адрес электронной почты пользователя в домене.

Как использовать инструмент ldapsearch с программой stunnel

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

ldapsearch -H ldap://{хост_stunnel}:{порт_stunnel} -b
dc={домен},dc={домен} '(mail={адрес_пользователя})'

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

Успешное применение команды 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 (Server Name Indication). Если SNI недоступно, может появиться ошибка следующего характера:

    SASL/EXTERNAL authentication started

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

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

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

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

    Рекомендация. Удалите параметр -x и повторите попытку.

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

    Name (Название): введите название подключения, например Google LDAP.
    Connection Point (Точка подключения): нажмите Select or type a Distinguished Name or Naming Context (Выберите или введите уникальное имя или контекст имени).
    Укажите доменное имя в формате DN. Например, example.com следует записать как dc=example,dc=com.

    Computer (Компьютер): нажмите Select or type a domain or server (Выберите или введите домен или сервер).
    ldap.google.com

    Use SSL-based Encryption (Использовать шифрование на базе SSL): установите флажок.
     
  4. Нажмите Advanced... (Расширенные…) и введите следующие данные:

    Specify credentials (Указать учетные данные): установите флажок.
    Username (Имя пользователя): имя пользователя для доступа из консоли администратора.
    Password (Пароль): пароль для доступа из консоли администратора.
    Port Number (Номер порта): 636.
    Protocol (Протокол): LDAP.
    Simple bind authentication (Аутентификация путем простой привязки): установите флажок.
     
  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. Выберите Connection (Подключение) > Connect… (Подключиться…).
  14. Введите следующие параметры подключения:

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

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

Если проверка подключения и выполнение запроса 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).

Статьи по теме

Эта информация оказалась полезной?
Как можно улучшить эту статью?

Требуется помощь?

Войдите в свой аккаунт, чтобы мы могли предоставить вам дополнительные варианты поддержки и быстрее решить вашу проблему.