Prueba de conectividad de LDAP seguro

Ediciones admitidas para esta función: Frontline Standard y Frontline Plus, Business Plus, Enterprise Standard y Enterprise Plus, Education Fundamentals, Education Standard y Education Plus, Enterprise Essentials Plus. Compara tu edición

Antes de intentar conectar tu cliente LDAP al servicio de LDAP seguro, opcionalmente, puedes realizar una prueba de conectividad rápida con herramientas simples como ldapsearch, ADSI o ldp.exe. Estas herramientas también se pueden usar para solucionar problemas si encuentras errores cuando intentas conectar tu cliente LDAP al servicio.

Las pruebas que se describen en las siguientes secciones te permiten comprender si tienes un problema de configuración, los mensajes de error comunes y las recomendaciones para solucionar esos problemas.

Este artículo contiene las siguientes secciones:

Nota: Si necesitas comunicarte con el equipo de asistencia de Google Workspace o de Cloud Identity Premium durante este proceso, asegúrate de guardar el resultado de los comandos. Quita cualquier información de identificación personal del resultado antes de compartirla con el equipo de asistencia.

Verifica la conectividad y ejecuta una consulta LDAP

Una vez que hayas configurado el servicio de LDAP seguro en la Consola del administrador de Google, puedes usar una de estas tres herramientas simples para verificar la conectividad con LDAP seguro: ldapsearch, ADSI o ldp.exe. Para obtener detalles e instrucciones, consulta las siguientes secciones.

ldapsearch

Usa la utilidad ldapsearch desde una línea de comandos para realizar una consulta LDAP básica. Un resultado exitoso de la consulta LDAP indica que el cliente LDAP y la sesión TLS subyacente, y la conexión TCP funcionan según lo previsto.

Para probar la conectividad con ldapsearch, haz lo siguiente:

  1. Crea una configuración de LDAP y descarga el certificado siguiendo las instrucciones que se indican en Agrega clientes LDAP.

    Nota: Para simplificar el entorno de pruebas, asegúrate de que haya al menos un usuario en la unidad organizacional para la que autorizas el acceso del cliente LDAP.

  2. Ejecuta una consulta LDAP. En este ejemplo, se consulta a un usuario en particular (para obtener más detalles, consulta 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})'

    Reemplaza los marcadores de posición de la siguiente manera:

    • {crt_file} : El nombre del archivo .crt
    • {key_file} : El nombre del archivo .key
    • {domain}: Cada parte del nombre de dominio; por ejemplo, example.com se convertiría en "dc=example,dc=com"
    • {user_email} : La dirección de correo electrónico principal de un usuario en el dominio

Notas sobre el uso de ldapsearch

  • Si no se proporciona ningún valor de BindDN, ldapsearch usa la clave y el certificado para autorizar la búsqueda.
  • Si el valor de BindDN es un nombre de usuario LDAP que generaste en la Consola del administrador, ldapsearch usará los permisos del cliente LDAP tal como se configuraron en la Consola del administrador.

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

  • Si el valor de BindDN es una dirección de correo electrónico o un nombre distintivo LDAP de un usuario de Workspace, ldapsearch usará las credenciales de ese usuario para buscar según sus permisos.

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

Usa ldapsearch con stunnel

Si tu implementación requiere que uses stunnel, sigue estos pasos:

  1. En la Consola del administrador, genera credenciales de acceso para producir el nombre de usuario y la contraseña que necesita ldapsearch.
  2. Usa el siguiente comando:

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

    Reemplaza los marcadores de posición de la siguiente manera:

    • {username} : El nombre de usuario de las credenciales generadas en la Consola del administrador
    • {password} : La contraseña de las credenciales generadas en la Consola del administrador
    • {stunnel_host} : La dirección IP o el nombre de host de la máquina que ejecuta stunnel en tu red
    • {stunnel_port} : El puerto en el que se ejecuta stunnel; verifica la configuración de stunnel
    • {user_email} : La dirección de correo electrónico principal de un usuario en el dominio

Situación exitosa del comando ldapsearch

Un resultado exitoso del comando ldapsearch mostrará al usuario con el correo electrónico (como se especificó cuando se creó el cliente LDAP) en formato LDIF.

Por ejemplo:

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

Errores posibles

  • El cliente o la biblioteca de OpenLDAP se compilan sin compatibilidad con SNI

    El cliente LDAP (OpenLDAP en este caso) debe admitir SNI (indicación de nombre del servidor). Si SNI no está disponible, es posible que veas un error similar al siguiente:

    SASL/EXTERNAL authentication started

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

    Recomendación:
    • Si usas macOS, SASL está habilitado de forma predeterminada y se puede omitir con la opción "-x".
    • Agrega la opción -d5 a ldapsearch y verifica la siguiente línea en el resultado:

      TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
  • ldapsearch muestra el estado 0 (correcto), pero no hay usuarios en los resultados

    Si especificas la opción -x de ldapsearch (usar la autenticación SASL) con certificados de cliente, la autenticación se realizará correctamente, pero no se mostrarán los usuarios del dominio.

    Recomendación: Quita la opción -x y vuelve a intentarlo.

Edición de ADSI (Windows)

  1. Sigue los pasos del 1 al 11 en ldp.exe (Windows) para instalar los certificados de cliente.
  2. Ve a Acción > Conectar a…
  3. Ingresa la siguiente configuración de conexión:

    Nombre: Escribe un nombre para tu conexión, como Google LDAP.
    Punto de conexión: "Selecciona o escribe un nombre distintivo o un contexto de nombres"
    Ingresa el nombre de tu dominio en formato DN (por ejemplo, dc=example,dc=com para example.com).

    Computadora: "Selecciona o escribe un dominio o un servidor"
    ldap.google.com

    Usar encriptación basada en SSL: Marcado
  4. Haz clic en Avanzado… y, luego, ingresa los siguientes detalles:

    Especificar credenciales: Marcado
    Nombre de usuario: El nombre de usuario de las credenciales de acceso de la Consola del administrador
    Contraseña: La contraseña de las credenciales de acceso de la Consola del administrador
    Número de puerto: 636
    Protocolo: LDAP
    Autenticación de vinculación simple: Marcado
  5. Haz clic en Aceptar y, luego, vuelve a hacer clic en Aceptar.
  6. Si la conexión se realiza correctamente, el contenido del directorio en el DN base se muestra en el panel derecho.

ldp.exe (Windows)

  1. Instala OpenSSL.
  2. Convierte el certificado y los archivos de claves en un archivo con formato PKCS12. En el símbolo del sistema, ingresa lo siguiente:

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

    Ingresa una contraseña para encriptar el archivo de salida.
  3. Ve al Panel de control.
  4. En el cuadro de búsqueda, busca "certificado" y haz clic en Administrar certificados de usuario.
  5. Ve a Acción > Todas las tareas > Importar…
  6. Selecciona Usuario actual y haz clic en Siguiente.
  7. Haz clic en Explorar…
  8. En el menú desplegable Tipo de archivo, en la esquina inferior derecha del cuadro de diálogo, selecciona Intercambio de información personal (&ast;.pfx;&ast;.p12).
  9. Selecciona el archivo ldap-client.p12 del paso 2, haz clic en Abrir y, luego, en Siguiente.
  10. Ingresa la contraseña del paso 2 y haz clic en Siguiente.
  11. Selecciona el almacén de certificados Personal, haz clic en Siguiente y, luego, en Finalizar.
  12. Ejecuta Ldp.exe.
  13. Ve a Conexión > Conectar…
  14. Ingresa los siguientes detalles de conexión:

    Servidor: ldap.google.com
    Puerto: 636
    Sin conexión: Desmarcado
    SSL: Marcado
  15. Haz clic en Aceptar.
  16. Ve a Ver > Árbol.
  17. Ingresa el DN base. Este es el nombre de tu dominio en formato DN (por ejemplo, dc=example,dc=com para example.com).
  18. Haz clic en Aceptar.
  19. Si la conexión se realiza correctamente, el contenido del directorio en el DN base se muestra en el panel derecho.

Si es necesario, ejecuta pruebas de conectividad básicas

Si no puedes obtener un resultado exitoso en Verifica la conectividad y ejecuta una consulta LDAP, sigue las instrucciones de esta sección para realizar pruebas de conectividad. Si ldapsearch no muestra el usuario esperado y no indica claramente que la sesión TLS subyacente es exitosa, usa el cliente OpenSSL para verificar que las capas de red en las que se basa OpenLDAP funcionen según lo previsto.

Para realizar pruebas de conectividad básicas, haz lo siguiente:

  1. Instala la utilidad de cliente openssl para tu sistema operativo.

    La mayoría de las distribuciones de GNU/Linux usan el nombre de paquete "openssl". Consulta los detalles sobre otros sistemas operativos.

  2. Realiza una conexión manual al servicio de LDAP seguro con el cliente openssl:

    openssl s_client -connect ldap.google.com:636
    

    Para confirmar que la negociación de SSL se realizó correctamente, verifica la presencia de la siguiente línea al final del resultado de openssl s_client:

    Verify return code: 0 (ok)
    

Errores posibles

El cliente o la biblioteca de OpenSSL no admiten SNI (indicación de nombre del servidor)

Durante la prueba de conectividad, es posible que se muestre el siguiente resultado:

Verify return code: 18 (self signed certificate)

El servicio de LDAP seguro requiere un cliente TLS que admita e inicie una sesión TLS con SNI (indicación de nombre del servidor). Si el cliente TLS no admite SNI, el servidor TLS (ldap.google.com) muestra un certificado autofirmado que no pasará las verificaciones de validación de la CA para indicar que se requiere SNI.

Para confirmar este comportamiento, verifica la siguiente línea en el resultado del cliente OpenSSL cerca del comienzo del resultado:

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

Las causas de este error pueden incluir una versión de OpenSSL que no admita SNI o una aplicación que use la biblioteca de OpenSSL con SNI inhabilitado de forma explícita.

Se rechazó la conexión

Si se muestra el siguiente resultado, en el que {timestamp} es una marca de tiempo UNIX en microsegundos, la conexión TCP se rechaza de forma activa antes de que pueda comenzar la negociación de 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

Esto puede deberse a lo siguiente:

  • Un firewall a nivel de la aplicación o del sistema en la máquina local
  • Un firewall en la misma red física o en la red superior

Para investigar, usa tcptraceroute para determinar qué host rechaza la conexión; por ejemplo, tcptraceroute ldap.google.com 636.