Эта функция доступна в версиях 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-клиента к сервису возникла ошибка.
Тесты, описанные в разделах ниже, помогут вам понять, есть ли проблемы с конфигурацией на вашей стороне, а также узнать о распространенных сообщениях об ошибках и способах их устранения.
Статья состоит из следующих разделов:
- Проверьте подключение и выполните запрос LDAP
Выполнение запроса LDAP позволяет убедиться, что вы можете подключиться к Secure LDAP и выполнять запросы. - При необходимости выполните базовую проверку подключения
Если запрос LDAP не выполняется, запустите базовую проверку подключения, чтобы проверить доступ к сети и аутентификацию.
Примечание. Если вам понадобится обратиться в службу поддержки Google Workspace или службу поддержки Cloud Identity Premium, сохраните результаты выполнения команд. Прежде чем отправлять их в службу поддержки, удалите из них всю личную информацию.
Как проверить подключение и отправить запрос LDAP
После того как вы настроите сервис Secure LDAP в консоли администратора Google, вы можете проверить подключение к нему с помощью одного из трех простых инструментов: ldapsearch, ADSI или ldp.exe. Подробную информацию и инструкции вы найдете ниже.
ldapsearch
Используйте утилиту ldapsearch из командной строки, чтобы выполнить базовый запрос LDAP. Успешное выполнение запроса LDAP указывает на то, что LDAP-клиент и соответствующие сеанс TLS и подключение по протоколу TCP работают в нормальном режиме.
Чтобы проверить подключение с помощью ldapsearch:
- Создайте конфигурацию LDAP и скачайте сертификат, следуя инструкциям в разделе Добавление LDAP-клиентов.
Примечание. Чтобы упростить тестовую среду, убедитесь, что в организационном подразделении, для которого вы разрешаете доступ клиента LDAP, есть хотя бы один пользователь.
- Выполните запрос 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, выполните следующие действия:
- В консоли администратора создайте учетные данные для доступа, чтобы получить имя пользователя и пароль, необходимые для ldapsearch.
- Используйте следующую команду:
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 startedldap_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–11 в разделе ldp.exe (Windows), чтобы установить сертификаты клиента.
- Выберите Action (Действия) > Connect to (Подключиться к).
- Укажите следующие настройки подключения:
Имя. Введите название подключения, например Google LDAP.
Точка подключения. Выберите или введите различающееся имя или контекст именования.
Введите доменное имя в формате DN (например, dc=example,dc=com для example.com).
Компьютер. Выберите или введите домен или сервер.
ldap.google.com
Использовать шифрование на основе SSL. Установите флажок. - Нажмите Дополнительно… и укажите следующие данные:
Указать учетные данные: выбрано
Имя пользователя: имя пользователя для доступа из консоли администратора
Пароль: пароль для доступа из консоли администратора
Номер порта: 636
Протокол: LDAP
Простая аутентификация привязки: выбрано - Нажмите кнопку ОК, а затем снова ОК.
- Если подключение установлено, на правой панели появятся данные каталога, указанные в базовом уникальном имени.
ldp.exe (Windows)
- Установите OpenSSL.
- Преобразуйте сертификат и ключи в один файл формата PKCS12. В командной строке введите следующее:
openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12
Введите пароль, чтобы зашифровать файл выходных данных. - Откройте панель управления.
- В окне поиска выполните поиск по запросу "сертификат" и нажмите Управление сертификатами пользователей.
- Выберите Действие > Все задачи > Импорт
- Нажмите Текущий пользователь, а затем Далее.
- Нажмите Обзор
- В раскрывающемся списке File type (Тип файла) в правом нижнем углу диалогового окна выберите Personal Information Exchange (Файлы обмена личной информацией) (*.pfx;*.p12).
- Выберите файл ldap-client.p12, созданный на шаге 2, нажмите Открыть, а затем Далее.
- Введите пароль из шага 2 и нажмите Далее.
- Выберите хранилище сертификатов Личное, нажмите Далее, а затем Готово.
- Запустите файл Ldp.exe.
- Выберите Подключение > Подключиться….
- Укажите следующие данные для подключения:
Сервер: ldap.google.com
Порт: 636
Без подключения: снимите флажок
SSL: установите флажок - Нажмите ОК.
- Откройте View (Представление) > Tree (Дерево).
- Введите базовое уникальное имя. Это доменное имя в формате DN. Пример для example.com: dc=example,dc=com.
- Нажмите ОК.
- Если подключение установлено, на правой панели появятся данные каталога, указанные в базовом уникальном имени.
При необходимости выполните базовую проверку подключения
Если при выполнении команды Verify connectivity and run an LDAP query (Проверить подключение и выполнить запрос LDAP) не удалось получить положительный результат, следуйте инструкциям в этом разделе, чтобы проверить подключение. Если ldapsearch не возвращает ожидаемого пользователя и не указывает на то, что сеанс TLS прошел успешно, используйте клиент OpenSSL, чтобы проверить, правильно ли работают сетевые уровни, на которые опирается OpenLDAP.
Чтобы выполнить базовую проверку подключения:
Установите утилиту openssl для своей операционной системы.
В большинстве пакетов GNU/Linux используется название "openssl". Подробнее о других операционных системах…
Подключитесь к сервису 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).