Testowanie połączeń z usługą Bezpieczny LDAP

Ta funkcja jest dostępna w tych wersjach: Frontline Standard i Frontline Plus, Business Plus, Enterprise Standard i Enterprise Plus, Education Fundamentals, Education Standard i Education Plus oraz Enterprise Essentials Plus. Porównaj wersje

Zanim spróbujesz połączyć klienta LDAP z usługą Bezpieczny LDAP, możesz opcjonalnie przeprowadzić szybki test łączności za pomocą prostych narzędzi, takich jak ldapsearch, ADSI lub ldp.exe. Za pomocą tych narzędzi możesz też rozwiązywać problemy, jeśli podczas próby połączenia klienta LDAP z usługą wystąpią błędy.

Testy opisane w sekcjach poniżej pomogą Ci sprawdzić, czy masz problem z konfiguracją, poznać typowe komunikaty o błędach i uzyskać zalecenia dotyczące rozwiązywania tych problemów.

Ten artykuł zawiera następujące sekcje:

Uwaga: jeśli w trakcie tego procesu musisz skontaktować się z zespołem pomocy Google Workspace lub zespołem pomocy Cloud Identity Premium, zapisz wyniki poleceń. Zanim udostępnisz dane zespołowi pomocy, usuń z nich wszelkie informacje umożliwiające identyfikację.

Sprawdzanie połączenia i uruchamianie zapytania LDAP

Po skonfigurowaniu usługi Bezpieczny LDAP w konsoli administracyjnej Google możesz użyć jednego z tych 3 prostych narzędzi, aby sprawdzić łączność z usługą Bezpieczny LDAP: ldapsearch, ADSI lub ldp.exe. Szczegółowe informacje i instrukcje znajdziesz w sekcjach poniżej.

Narzędzie ldapsearch

Użyj narzędzia ldapsearch z wiersza poleceń, aby utworzyć podstawowe zapytanie LDAP. Pomyślny wynik zapytania LDAP wskazuje, że klient LDAP, sesja TLS i połączenie TCP działają prawidłowo.

Aby sprawdzić połączenie za pomocą narzędzia ldapsearch:

  1. Utwórz konfigurację LDAP i pobierz certyfikat, postępując zgodnie z instrukcjami w artykule Dodawanie klientów LDAP.

    Uwaga: aby uprościć środowisko testowe, upewnij się, że w jednostce organizacyjnej, dla której autoryzujesz dostęp klienta LDAP, jest co najmniej 1 użytkownik.

  2. Wykonaj zapytanie LDAP. W tym przykładzie wysyłane jest zapytanie dotyczące konkretnego użytkownika (więcej informacji znajdziesz w artykule OpenLDAP ldapsearch).

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

    Zastąp obiekty zastępcze w ten sposób:

    • {crt_file} Nazwa pliku .crt
    • {key_file} Nazwa pliku .key
    • {domain} Każda część nazwy domeny, np. example.com, zostanie przekształcona w „dc=example,dc=com”.
    • {user_email} Podstawowy adres e-mail użytkownika w domenie.

Uwagi dotyczące korzystania z narzędzia ldapsearch

  • Jeśli nie podasz wartości BindDN, ldapsearch użyje klucza i certyfikatu do autoryzacji wyszukiwania.
  • Jeśli wartość BindDN to nazwa użytkownika LDAP wygenerowana w konsoli administracyjnej, polecenie ldapsearch będzie używać uprawnień klienta LDAP skonfigurowanych w konsoli administracyjnej.

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

  • Jeśli wartość BindDN jest adresem e-mail lub nazwą wyróżniającą LDAP użytkownika Workspace, polecenie ldapsearch użyje danych logowania tego użytkownika do wyszukiwania na podstawie jego uprawnień.

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

Używanie ldapsearch z stunnel

Jeśli wdrożenie wymaga użycia stunnel, wykonaj te czynności:

  1. W konsoli administracyjnej wygeneruj dane logowania, aby uzyskać nazwę użytkownika i hasło potrzebne do ldapsearch.
  2. Użyj tego polecenia:

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

    Zastąp obiekty zastępcze w ten sposób:

    • {username} Nazwa użytkownika z wygenerowanych danych logowania w konsoli administracyjnej
    • {password} hasło z wygenerowanych danych logowania w konsoli administracyjnej
    • {stunnel_host}: adres IP lub nazwa hosta maszyny z stunnel w Twojej sieci.
    • {port_bezpiecznego_tunelu}: port, na którym działa bezpieczny tunel – sprawdź konfigurację bezpiecznego tunelu.
    • {user_email}: podstawowy adres e-mail użytkownika w domenie.

Scenariusz udanego wykonania polecenia ldapsearch

Prawidłowy wynik polecenia ldapsearch będzie zawierać użytkownika z adresem e-mail (określonym podczas tworzenia klienta LDAP) w formacie LDIF.

Przykład:

# 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:

Możliwe błędy

  • Klient lub biblioteka OpenLDAP są kompilowane bez obsługi SNI

    Klient LDAP (w tym przypadku OpenLDAP) musi obsługiwać SNI (Server Name Indication). Jeśli SNI nie jest dostępny, może pojawić się błąd podobny do tego:

    SASL/EXTERNAL authentication started

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

    Rekomendacja:
    • Jeśli używasz systemu macOS, mechanizm SASL jest domyślnie włączony i można go ominąć za pomocą opcji „-x”.
    • Dodaj opcję -d5 do polecenia ldapsearch i sprawdź, czy w danych wyjściowych znajduje się ten wiersz:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
  • ldapsearch zwraca stan 0 (powodzenie), ale nie ma danych wyjściowych użytkowników

    Określenie opcji ldapsearch -x (użyj uwierzytelniania SASL) z certyfikatami klienta spowoduje pomyślne uwierzytelnienie, ale nie spowoduje wyświetlenia listy użytkowników w domenie.

    Zalecenie: usuń opcję -x i spróbuj ponownie.

Narzędzie Edycja ADSI (Windows)

  1. Aby zainstalować certyfikaty klienta, wykonaj kroki 1–11 w sekcji ldp.exe (Windows).
  2. Otwórz Akcja > Połącz z…
  3. Wpisz te ustawienia połączenia:

    Nazwa: wpisz nazwę połączenia, np. Google LDAP.
    Punkt połączenia: „Wybierz lub wpisz nazwę wyróżniającą lub kontekst nazewnictwa”.
    Wpisz nazwę domeny w formacie DN (np. dc=example,dc=com dla example.com).

    Komputer: „Wybierz lub wpisz domenę lub serwer”.
    ldap.google.com

    Użyj szyfrowania opartego na SSL: zaznaczono
  4. Kliknij Zaawansowane... i wpisz te dane:

    Określ dane logowania: zaznaczone
    Nazwa użytkownika: nazwa użytkownika danych logowania z konsoli administracyjnej
    Hasło: hasło danych logowania z konsoli administracyjnej
    Numer portu: 636
    Protokół: LDAP
    Uwierzytelnianie za pomocą prostego powiązania: zaznaczone
  5. Kliknij OK, a następnie ponownie kliknij OK.
  6. Jeśli uda się nawiązać łączność, w prawym okienku zostanie wyświetlona zawartość katalogu w obszarze podstawowej nazwy wyróżniającej.

Narzędzie ldp.exe (Windows)

  1. Zainstaluj OpenSSL.
  2. Przekonwertuj plik certyfikatu i plik klucza na jeden plik w formacie PKCS12. W wierszu poleceń wpisz:

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

    Wpisz hasło, aby zaszyfrować plik wyjściowy.
  3. Otwórz Panel sterowania.
  4. W polu wyszukiwania wpisz „certyfikat” i kliknij Zarządzaj certyfikatami użytkowników.
  5. Otwórz Akcja > Wszystkie zadania > Importuj…
  6. Wybierz Bieżący użytkownik i kliknij Dalej.
  7. Kliknij Przeglądaj…
  8. Z listy typów plików w prawym dolnym rogu okna wybierz Wymiana informacji osobistych (*.pfx;*.p12).
  9. Wybierz plik ldap-client.p12 z kroku 2, kliknij Otwórz, a następnie Dalej.
  10. Wpisz hasło z kroku 2 i kliknij Dalej.
  11. Wybierz magazyn certyfikatów Osobisty, kliknij Dalej, a następnie Zakończ.
  12. Uruchom Ldp.exe.
  13. Kliknij Połączenie > Połącz...
  14. Wpisz te szczegóły połączenia:

    Serwer: ldap.google.com
    Port: 636
    Bez połączenia: odznaczony
    SSL: zaznaczony
  15. Kliknij OK.
  16. Otwórz Widok > Drzewo.
  17. Wpisz podstawową nazwę wyróżniającą. Jest to nazwa domeny w formacie nazwy wyróżniającej, na przykład dc=example,dc=com w przypadku domeny example.com.
  18. Kliknij OK.
  19. Jeśli uda się nawiązać łączność, w prawym okienku zostanie wyświetlona zawartość katalogu w obszarze podstawowej nazwy wyróżniającej.

W razie potrzeby przeprowadź podstawowe testy połączenia.

Jeśli nie możesz uzyskać pozytywnego wyniku w sekcji Sprawdź połączenie i uruchom zapytanie LDAP, postępuj zgodnie z instrukcjami w tej sekcji, aby przetestować połączenie. Jeśli polecenie ldapsearch nie zwróci oczekiwanego użytkownika i nie wskaże wyraźnie, że podstawowa sesja TLS działa prawidłowo, użyj klienta OpenSSL, aby sprawdzić, czy warstwy sieciowe, na których opiera się OpenLDAP, działają zgodnie z oczekiwaniami.

Aby przeprowadzić podstawowy test połączenia:

  1. Zainstaluj narzędzie klienckie openssl odpowiednie do używanego systemu operacyjnego.

    W większości dystrybucji GNU/Linuksa używa się pakietu „openssl”. Zobacz szczegóły dotyczące innych systemów operacyjnych.

  2. Utwórz połączenie ręczne z usługą Bezpieczny LDAP za pomocą klienta openssl:

    openssl s_client -connect ldap.google.com:636
    

    Upewnij się, że negocjacje SSL powiodły się – będzie to potwierdzone przez obecność następującego wiersza na końcu danych wyjściowych openssl s_client:

    Verify return code: 0 (ok)
    

Możliwe błędy

Klient/biblioteka OpenSSL nie obsługuje SNI (Server Name Indication)

W trakcie testu łączności mogą zostać zwrócone następujące dane wyjściowe:

Verify return code: 18 (self signed certificate)

Usługa Bezpieczny LDAP wymaga klienta TLS obsługującego i inicjującego sesję TLS za pomocą SNI (Server Name Indication). Jeśli klient TLS nie obsługuje SNI, serwer TLS (ldap.google.com) zwraca certyfikat podpisany samodzielnie, który nie przejdzie weryfikacji urzędu certyfikacji, aby wskazać, że SNI jest wymagane.

Takie działanie można potwierdzić przez odszukanie w początkowej części danych wyjściowych klienta OpenSSL następującego wiersza:

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

Przyczyną tego błędu może być na przykład wersja OpenSSL bez obsługi usługi SNI lub aplikacja korzystająca z biblioteki OpenSSL z jawnie wyłączoną usługą SNI.

Połączenie zostało odrzucone

Jeśli zostanie zwrócony ten wynik, gdzie {timestamp} to sygnatura czasowa systemu UNIX w mikrosekundach, połączenie TCP jest aktywnie odrzucane, zanim rozpocznie się negocjacja 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

Problem ten może powodować:

  • zapora sieciowa na poziomie aplikacji lub na poziomie systemu na komputerze lokalnym,
  • zapora sieciowa w tej samej sieci fizycznej lub sieci nadrzędnej.

Aby to zbadać, ustal za pomocą polecenia tcptraceroute, który host odrzuca połączenie, na przykład: tcptraceroute ldap.google.com 636.