Test di connettività di LDAP sicuro

Versioni supportate per questa funzionalità: Frontline Standard e Frontline Plus; Business Plus; Enterprise Standard ed Enterprise Plus; Education Fundamentals, Education Standard ed Education Plus; Enterprise Essentials Plus. Confronta la tua versione

Prima di provare a connettere il client LDAP al servizio LDAP sicuro, facoltativamente puoi eseguire un rapido test di connettività utilizzando strumenti semplici come ldapsearch, ADSI o ldp.exe. Puoi utilizzare questi strumenti anche per la risoluzione di problemi qualora riscontrassi errori durante il tentativo di connessione del tuo client LDAP al servizio.

I test descritti nelle sezioni seguenti ti consentono di capire se hai un problema di configurazione, i messaggi di errore comuni e i consigli su come risolvere questi problemi.

Questo articolo contiene le seguenti sezioni:

Nota:se devi contattare l'assistenza Google Workspace o l'assistenza Cloud Identity Premium durante questa procedura, assicurati di salvare l'output dei comandi. Assicurati di rimuovere eventuali informazioni che consentono l'identificazione personale dall'output prima di condividerle con il team di assistenza.

Verificare la connettività ed eseguire una query LDAP

Dopo aver configurato il servizio LDAP sicuro nella Console di amministrazione Google, puoi utilizzare uno di questi tre semplici strumenti per verificare la connettività con LDAP sicuro: ldapsearch, ADSI o ldp.exe. Per i dettagli e le istruzioni, vedi le sezioni seguenti.

ldapsearch

Utilizza l'utilità ldapsearch da una riga di comando per eseguire una query LDAP di base. Una query LDAP con esito positivo indica che il client LDAP, la sessione TLS sottostante e la connessione TCP funzionano come previsto.

Per testare la connettività con ldapsearch:

  1. Crea una configurazione LDAP e scarica il certificato seguendo le istruzioni riportate in Aggiungere client LDAP.

    Nota:per semplificare l'ambiente di test, assicurati che ci sia almeno un utente nell'unità organizzativa per cui autorizzi l'accesso client LDAP.

  2. Esegui una query LDAP. Questo esempio esegue una query su un utente specifico (per maggiori dettagli, vedi 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})'

    Sostituisci i segnaposto nel seguente modo:

    • {crt_file} Il nome del file .crt
    • {key_file} Il nome del file .key
    • {domain} Ogni parte del nome di dominio, ad esempio example.com, diventa "dc=example,dc=com"
    • {user_email}: l'indirizzo email principale di un utente nel dominio.

Note sull'utilizzo di ldapsearch

  • Se non viene fornito alcun valore BindDN, ldapsearch utilizza la chiave e il certificato per autorizzare la ricerca.
  • Se il valore BindDN è un nome utente LDAP che hai generato nella Console di amministrazione, ldapsearch utilizzerà le autorizzazioni del client LDAP configurate nella Console di amministrazione.

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

  • Se il valore BindDN è un indirizzo email o un nome distinto LDAP di un utente Workspace, ldapsearch utilizzerà le credenziali di quell'utente per eseguire la ricerca in base alle sue autorizzazioni.

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

Utilizzare ldapsearch con stunnel

Se il deployment richiede l'utilizzo di stunnel, segui questi passaggi:

  1. Nella Console di amministrazione, genera le credenziali di accesso per produrre il nome utente e la password necessari per ldapsearch.
  2. Utilizza il seguente comando:

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

    Sostituisci i segnaposto nel seguente modo:

    • {username}: nome utente dalle credenziali generate nella Console di amministrazione
    • {password} Password dalle credenziali generate nella Console di amministrazione
    • {stunnel_host}: indirizzo IP o nome host della macchina che esegue stunnel nella tua rete.
    • {stunnel_port}: la porta su cui è in esecuzione stunnel; verifica nella tua configurazione di stunnel.
    • {user_email} Indirizzo email principale di un utente nel dominio

Scenario riuscito del comando ldapsearch

Un output riuscito del comando ldapsearch elencherà l'utente con l'email (come specificato durante la creazione del client LDAP) in formato LDIF.

Ad esempio:

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

Possibili errori

  • Il client e/o la libreria OpenLDAP sono compilati senza supporto SNI

    SNI (Server Name Indication) deve essere supportato dal client LDAP (OpenLDAP in questo caso). Se SNI non è disponibile, potresti visualizzare un errore simile al seguente:

    SASL/EXTERNAL authentication started

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

    Consiglio:
    • Se utilizzi MacOS, SASL è abilitato per impostazione predefinita e può essere bypassato con l'opzione "-x".
    • Aggiungi l'opzione -d5 a ldapsearch e controlla l'output per la seguente riga:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
  • ldapsearch restituisce lo stato 0 (operazione riuscita), ma non vengono visualizzati utenti

    La specifica dell'opzione ldapsearch -x (utilizza l'autenticazione SASL) con i certificati client verrà autenticata correttamente, ma non elencherà gli utenti nel dominio.

    Consiglio: rimuovi l'opzione -x e riprova.

ADSI Edit (Windows)

  1. Segui i passaggi da 1 a 11 in ldp.exe (Windows) per installare i certificati client.
  2. Vai ad Action > Connect to… (Azione > Connetti a).
  3. Inserisci le seguenti impostazioni di connessione:

    Nome:digita un nome per la connessione, ad esempio Google LDAP.
    Punto di connessione: "Seleziona o digita un nome distinto o un contesto di denominazione"
    Inserisci il nome di dominio in formato DN (ad esempio, dc=example,dc=com per example.com).

    Computer: "Seleziona o digita un dominio o un server"
    ldap.google.com

    Utilizza la crittografia basata su SSL:selezionata
  4. Fai clic su Avanzate… e inserisci i seguenti dettagli:

    Specifica credenziali: selezionato
    Nome utente: il nome utente delle credenziali di accesso dalla Console di amministrazione
    Password: la password delle credenziali di accesso dalla Console di amministrazione
    Numero di porta: 636
    Protocollo: LDAP
    Autenticazione con binding semplice: selezionato
  5. Fai clic su OK, quindi di nuovo su OK.
  6. Se la connettività ha esito positivo, i contenuti della directory nel DN di base sono visualizzati nel riquadro a destra.

ldp.exe (Windows)

  1. Installa OpenSSL.
  2. Converti i file della chiave e del certificato client in un file in formato PKCS12. Al prompt dei comandi, inserisci quanto segue:

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

    Inserisci una password per criptare il file di output.
  3. Vai al Pannello di controllo.
  4. Nella casella di ricerca, cerca "certificato" e fai clic su Gestisci certificati utente.
  5. Vai ad Action > All Tasks > Import… (Azione > Tutte le attività > Importa).
  6. Seleziona Current User (Utente corrente) e fai clic su Next (Avanti).
  7. Fai clic su Browse… (Sfoglia)
  8. Nell'elenco a discesa File type (Tipo di file) nell'angolo inferiore destro della finestra di dialogo, seleziona Personal Information Exchange (*.pfx;*.p12) (Scambio di informazioni personali).
  9. Seleziona il file ldap-client.p12 del passaggio 2, fai clic su Apri e poi su Avanti.
  10. Inserisci la password utilizzata al passaggio 2 e fai clic su Next (Avanti).
  11. Seleziona l'archivio certificati Personale, fai clic su Avanti e poi su Fine.
  12. Esegui Ldp.exe.
  13. Vai a Connessione > Connetti…
  14. Inserisci i seguenti dettagli di connessione:

    Server: ldap.google.com
    Porta: 636
    Senza connessione: deselezionato
    SSL: selezionato
  15. Fai clic su OK.
  16. Vai a View > Tree (Visualizza > Struttura).
  17. Inserisci il DN di base, ovvero il tuo nome dominio in formato DN, ad esempio dc=example,dc=com per example.com.
  18. Fai clic su OK.
  19. Se la connettività ha esito positivo, i contenuti della directory nel DN di base sono visualizzati nel riquadro a destra.

Se necessario, esegui test di connettività di base.

Se non riesci a ottenere un risultato positivo in Verifica la connettività ed esegui una query LDAP, segui le istruzioni riportate in questa sezione per il test di connettività. Se ldapsearch non restituisce l'utente previsto e non indica chiaramente che la sessione TLS sottostante è riuscita, utilizza il client OpenSSL per verificare che i livelli di rete su cui si basa OpenLDAP funzionino come previsto.

Per eseguire test di connettività di base:

  1. Installa l'utilità client openssl per il tuo sistema operativo.

    La maggior parte delle distribuzioni GNU/Linux utilizza il nome di pacchetto "openssl". Visualizza i dettagli relativi ad altri sistemi operativi.

  2. Crea manualmente una connessione al servizio Secure LDAP utilizzando il client openssl:

    openssl s_client -connect ldap.google.com:636
    

    Verifica che la negoziazione SSL abbia avuto esito positivo controllando che in fondo all'output di openssl s_client sia presente questa riga:

    Verify return code: 0 (ok)
    

Possibili errori

Il client/la libreria OpenSSL non supporta SNI (Server Name Indication)

Durante il test di connettività, potrebbe essere restituito il seguente output:

Verify return code: 18 (self signed certificate)

Il servizio Secure LDAP richiede un client TLS che supporti e avvii una sessione TLS utilizzando SNI (Server Name Indication). Se il client TLS non supporta SNI, il server TLS (ldap.google.com) restituisce un certificato autofirmato che non supera i controlli di convalida CA, per indicare che SNI è obbligatorio.

Per confermare questo comportamento, controlla che nella parte iniziale dell'output del client OpenSSL sia presente questa riga:

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

Alcune possibili cause di questo errore sono: una versione OpenSSL che non supporta SNI oppure un'applicazione che utilizza la libreria OpenSSL in cui SNI è esplicitamente disattivato.

Connessione rifiutata

Se viene restituito il seguente output, dove {timestamp} è un timestamp UNIX in microsecondi, la connessione TCP viene rifiutata attivamente prima che possa iniziare la negoziazione 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

Le cause potrebbero essere le seguenti:

  • Un firewall a livello di applicazione o a livello di sistema sulla macchina locale
  • Un firewall sulla stessa rete fisica o rete di upstream

Per approfondire, utilizza tcptraceroute per determinare quale host rifiuta la connessione, ad esempio tcptraceroute ldap.google.com 636.