Solución de problemas de OpenLDAP

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

En esta sección, se proporciona información y orientación para solucionar problemas de OpenLDAP.

SMTP está inhabilitado y los usuarios deben restablecer la contraseña

Síntoma

Cuando SMTP no está configurado en la IU de New Edge, los usuarios nuevos que se agregan a Edge necesitan una forma de establecer una contraseña.

Mensajes de error

Unknown username and password combination.

Causas posibles

Los usuarios nuevos no pueden recibir un correo electrónico del vínculo “¿Olvidaste tu contraseña?” para establecer una contraseña porque SMTP no está configurado.

Solución

Puedes abordar este problema de una de las siguientes maneras:

Solución 1: Configura el servidor SMTP

Configura el servidor SMTP para establecer una contraseña nueva para el usuario. Para obtener detalles sobre la configuración de SMTP, consulta Cómo configurar el servidor SMTP de Edge.

Solución 2: Usa LDAP

Si no puedes configurar el servidor SMTP, usa los siguientes comandos de LDAP para establecer la contraseña nueva de un usuario:

  1. Un administrador de la organización existente debe agregar el usuario específico en la IU de New Edge (o en la IU de Classic Edge en versiones anteriores, como se muestra en la siguiente imagen):

  2. Usa el comando ldapsearch para encontrar el nombre distintivo (dn) del usuario y redireccionar el resultado a un archivo:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -x -H ldap://localhost:10389 > ldap.txt
    

    Este es un ejemplo de una entrada dn para un usuario, junto con los atributos del usuario:

    dn:uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com
    mail: apigee_validator@apigee.com
    userPassword:: e1NTSEF9b0FrMFFXVmFjbWRxM1BVaFZzMnllWGZMdkNvNjMwNTJlUDZYN3c9PQ=
     =
    uid: f7a4a4a5-7c43-4168-a47e-6e9a1417cc29
    objectClass: inetOrgPerson
    sn: Validator
    cn: apigee
  3. Abre el archivo ldap.txt y busca el dn del usuario nuevo que se agregó según el atributo de correo electrónico del usuario nuevo.
  4. Ejecuta el comando ldappassword para agregar una contraseña para el usuario nuevo con su dn. En este ejemplo, se establece la contraseña del usuario en Apigee123:
    ldappasswd -x -H ldap://localhost:10389 -D "cn=manager,dc=apigee,dc=com" -W -s Apigee123
    "uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com"
    
  5. Accede a la IU de New Edge como el usuario nuevo con la contraseña definida en el paso anterior. El usuario puede establecer una contraseña nueva después de acceder a la IU.

LDAP no se replica

Síntoma

Muchas instalaciones de Edge tienen varios centros de datos, por ejemplo, DC-1 y DC-2. Cuando accedes a la IU de New Edge en DC-1 como administrador de la organización, puedes ver la lista de usuarios, pero la misma lista de usuarios no aparece en la IU de New Edge en DC-2.

Mensajes de error

No aparecen errores; la IU de New Edge no muestra la lista de usuarios que deberían haberse replicado en todos los servidores de OpenLDAP.

Causas posibles

Por lo general, la causa de este problema es una configuración de replicación de OpenLDAP mal configurada, no la instalación en sí. Además, la replicación puede interrumpirse si la red entre los servidores de OpenLDAP no permite el tráfico en el puerto 10389.

Diagnóstico

Sigue estos pasos para diagnosticar el problema:

  1. Verifica si ldapsearch devuelve datos de cada servidor de OpenLDAP:
    ldapsearch -x -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -H ldap://HOST_IP:10389
  2. Verifica si puedes conectarte a cada nodo de OpenLDAP desde los otros nodos de OpenLDAP en el puerto 10389. Si telnet está instalado, usa el siguiente comando:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Si telnet no está disponible, usa netcat para verificar la conectividad de la siguiente manera:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Verifica la configuración de replicación del entorno de ejecución con el ldapsearch comando:
    ldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcSyncrepl=*)" olcSyncrepl
    

    El resultado debe contener una configuración similar a la siguiente:

    dn: olcDatabase={2}mdb,cn=config
    olcSyncrepl: {0}rid=001 provider=ldap://OTHER_LDAP_SERVER:10389/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials=LDAP_PASSWORD searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
  5. Verifica la configuración del entorno de ejecución para el olcMultiProvider (anteriormente olcMirrorMode) atributo con el ldapsearch comando para verificar que esté configurado como TRUE:
    ldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcMultiProvider=*)" olcMultiProvider olcMirrorMode
    

    El resultado debe verse de la siguiente manera:

    dn: olcDatabase={2}mdb,cn=config
    olcMultiProvider: TRUE
  6. Verifica las reglas de iptables y tcp wrapper. Quita las reglas que no permitan que los servidores OpenLDAP pares se comuniquen entre sí. Trabaja con tu administrador de red para establecer las reglas de forma adecuada.
  7. Asegúrate de que la contraseña del sistema OpenLDAP sea la misma en cada nodo de OpenLDAP.
  8. Verifica si hay caracteres ocultos en los archivos de configuración ldif que se usan para configurar la replicación N-Way OpenLDAP ejecutando dos2unix en los archivos ldif que se crearon para actualizar la configuración. Por lo general, un archivo ldif que tiene caracteres incorrectos haría que el comando ldapmodify no se ejecute, por lo que es posible que no se configure la replicación. Quita los caracteres incorrectos y guarda los archivos de configuración.

Si el problema continúa, comunícate con el equipo de asistencia de Apigee para obtener ayuda con la configuración de la replicación N-Way OpenLDAP.

No se puede iniciar OpenLDAP

Síntoma

OpenLDAP no se inicia.

Mensajes de error

SLAPD Dead But Pid File Exists

Causas posibles

Por lo general, este problema se debe a un archivo de bloqueo que se deja en el sistema de archivos y que debe quitarse.

Diagnóstico

Sigue estos pasos para diagnosticar este problema:

  1. Verifica si hay un bloqueo de proceso slapd de OpenLDAP o un archivo pid en la siguiente ubicación:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  2. Borra el archivo de bloqueo y pid, si lo encuentras, y vuelve a iniciar openldap.
     rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
     rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  3. Si se inicia el proceso slapd de OpenLDAP, omite los siguientes pasos.
  4. Si el proceso slapd de OpenLDAP no se inicia, intenta ejecutar slapd en modo de depuración y busca errores:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Los errores pueden indicar problemas de recursos. Verifica el uso de la memoria y la CPU en el sistema.
  6. Verifica la versión de OpenLDAP y actualízala si es antigua. Consulta las versiones compatibles de OpenLDAP en Software compatible.
    slapd -V
    
  7. Usa strace para solucionar problemas del proceso slapd y proporcionar el resultado de strace a Apigee Support:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Corrupción de datos de OpenLDAP

Síntoma

Los usuarios ya no pueden ejecutar llamadas de administración ni acceder a la IU de New Edge. El uso de la utilidad ldapsearch para consultar a los usuarios puede indicar que el usuario existe en el almacén de datos LDAP o identificar posibles usuarios o roles faltantes.

Mensajes de error

Unknown username and password combination.

Causas posibles

Por lo general, este problema puede observarse debido a la corrupción de los datos de OpenLDAP. Por lo general, los datos de OpenLDAP no se dañan. Sin embargo, en el caso poco frecuente de que lo hagan, la corrupción podría deberse a una falla del disco del sistema o a problemas de espacio en el disco.

Diagnóstico

  1. Verifica el espacio en el disco del sistema en el que se instaló OpenLDAP con el siguiente comando:
    du -m /opt
    
  2. Si ves que el espacio en el disco usado está muy cerca del 100%, eso indicaría que la causa de este problema es que tu sistema se está quedando sin espacio en el disco.
  3. Verifica la coherencia de los datos en los nodos LDAP:
    1. En cada nodo LDAP, compara el recuento de usuarios y roles. Ejecuta los siguientes comandos y compara los resultados.
      ldapsearch -o ldif-wrap=no -b "ou=users,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l
      ldapsearch -o ldif-wrap=no -b "ou=resources,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l 
      Una discrepancia en el recuento entre los nodos sugiere una posible corrupción de datos.
    2. Verifica el estado de la replicación de LDAP. Ejecuta el siguiente comando en cada nodo LDAP.
        ldapsearch -x -LLL -H ldap://ldap_ip:10389 -s base -b 'dc=apigee,dc=com' contextCSN dn: dc=apigee,dc=com -D "cn=manager,dc=apigee,dc=com" -w PASSWORD dn: dc=apigee,dc=com 
      Si el valor contextCSN es idéntico en todos los nodos, la replicación de LDAP funciona correctamente.

Solución

Si tu sistema se quedó sin espacio en el disco o está muy cerca de quedarse sin espacio en el disco, agrega más espacio en el disco para garantizar la disponibilidad suficiente.

Una vez que tengas suficiente espacio en el disco, usa una de las siguientes soluciones para abordar el problema de corrupción de datos de LDAP:

  1. Restablece los datos de OpenLDAP desde la copia de seguridad.
  2. Limpia la base de datos de OpenLDAP con los siguientes pasos:
    1. Desactiva el servidor de administración 2 y LDAP2.
    2. Restablece LDAP1 desde una copia de seguridad de VM (o una copia de seguridad de Apigee).
    3. Verifica el servidor de administración 1 para el inicio y la recuperación.
    4. Una vez que el servidor de administración 1 y LDAP1 funcionen correctamente, vuelve a instalar LDAP2 desde cero (crea una pizarra completamente en blanco).
    5. Configura LDAP2 en modo de solo lectura, lo que permite que LDAP1 se replique en LDAP2.
    6. Usa ldapsearch para verificar que la cantidad de líneas en LDAP1 y LDAP2 coincidan.
    7. Reinicia el servidor de administración 2 y la IU de New Edge en el nodo 2, y confirma que se inicien correctamente.

Para obtener instrucciones detalladas, consulta la Herramienta de seguimiento de errores pública.

Solución 1: Restablece los datos de LDAP desde la copia de seguridad

En un nodo de OpenLDAP en funcionamiento, crea una copia de seguridad. La copia de seguridad debe realizarse con regularidad. Consulta la Guía de operaciones de Apigee para la nube privada para conocer las prácticas recomendadas sobre las copias de seguridad:

slapcat -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif

Se pueden usar los siguientes pasos para restablecer los datos de OpenLDAP desde una copia de seguridad correcta.

  1. Detén el nodo de OpenLDAP para el que se deben restablecer los datos:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Cambia al directorio de datos de OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Haz una copia de seguridad de los datos de OpenLDAP existentes con el comando move:
    mv ldap ldap_orig
    
  4. Cambia al usuario de apigee:
    su apigee
    
  5. Desde el directorio /opt/apigee/data/apigee-openldap, crea un directorio de datos de OpenLDAP con el nombre original:
    mkdir ldap
    
  6. Toma la copia de seguridad del subdirectorio ldap_orig/DB_CONFIG del paso 3 y cópiala en el directorio openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Para restablecer los datos de la copia de seguridad tomada con slapcat, usa slapadd para importar el ldif que contiene los datos correctos:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Inicia el proceso de OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Solución 2: Limpia la base de datos de LDAP

Los siguientes pasos borran la base de datos de OpenLDAP para proporcionar un nuevo comienzo. Esta solución se puede usar si no hay una copia de seguridad de datos del último estado en el que funcionaban los datos de OpenLDAP.

  1. Detén el servicio de OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Cambia al directorio de datos de OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Haz una copia de seguridad de los datos de OpenLDAP existentes con el comando move:
    mv ldap ldap_orig
    
  4. Cambia al usuario de apigee:
    su apigee
    
  5. Crea un directorio de datos de OpenLDAP nuevo con el nombre original:
    mkdir ldap
    
  6. Toma la copia de seguridad del subdirectorio ldap_orig/DB_CONFIG del paso 3 y cópiala en el directorio openldap:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Reinicia el proceso de OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Reinicia el servidor de administración para forzar una actualización de las conexiones a OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Solución 3: Restablece OpenLDAP a una instalación básica

Si la solución 2 no resuelve el problema, puedes restablecer OpenLDAP a una instalación básica, como se describe en esta sección.

Requisitos previos

Para restablecer OpenLDAP, necesitas los siguientes requisitos previos:

  • La capacidad de ejecutar la configuración con el administrador del sistema y las credenciales LDAP raíz
  • Acceso a la utilidad ldapadd
  • El archivo de configuración silenciosa original guardado para el nodo de administración o LDAP

Para restablecer OpenLDAP, sigue estos pasos:

  1. Vuelve a instalar OpenLDAP y el servidor de administración.
    1. Detén el servidor openldap:
      apigee-service apigee-openldap stop
    2. Borra la carpeta de datos openldap dañada:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Desinstala el componente openldap:
      apigee-service apigee-openldap uninstall
    4. Vuelve a instalar el componente openldap con el mismo archivo de configuración que se usó para la instalación inicial:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      donde configfile es el nombre del archivo de configuración.
    5. Vuelve a instalar el servidor de administración con el archivo de configuración original:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile

    Después de realizar estos pasos, las llamadas a la API de Management deberían volver a funcionar solo con la sysadmin cuenta. Sin embargo, no es posible acceder a la IU de New Edge, y las llamadas a la API de Management con cualquier otro usuario no funcionarán.

  2. Agrega las entradas openldap faltantes para las organizaciones que existían antes de la corrupción.

    Una vez que se complete el paso anterior, openldap no tendrá entradas para las organizaciones que existían cuando ocurrió la corrupción. No se pierde la mayoría de los datos reales de la organización, como los paquetes de proxy, que se almacenan en Cassandra o Zookeeper. Sin embargo, ejecutar la secuencia de comandos setup-org no agregará automáticamente los datos de openldap para las organizaciones que ya existen en Cassandra y Zookeeper. Estos datos se deben agregar de forma manual para cada organización que existía antes de la corrupción con los siguientes pasos:

    1. Crea un archivo ldif llamado missingLDAP.ldif con el siguiente contenido:
      # orgname, organizations, apigee.com
      dn: o=orgname,ou=organizations,dc=apigee,dc=com
      objectClass: organization
      O: orgname
      
      # userroles, orgname, organizations, apigee.com
      dn: ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      ou: userroles
      objectClass: organizationalUnit
      
      # orgadmin, userroles, orgname, organizations, apigee.com
      dn: cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      objectClass: organizationalRole
      cn: orgadmin
      roleOccupant: uid=admin,ou=users,ou=global,dc=apigee,dc=com
      
      # resources, orgadmin, userroles, orgname, organizations, apigee.com
      dn: ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      ou: resources
      objectClass: organizationalUnit
      
      # @@@, resources, orgadmin, userroles, orgname, organizations, apigee.com
      dn: cn=@@@,ou=resources,cn=orgadmin,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com
      roleOccupant: ou=delete,ou=permissions,dc=apigee,dc=com
      roleOccupant: ou=get,ou=permissions,dc=apigee,dc=com
      roleOccupant: ou=put,ou=permissions,dc=apigee,dc=com
      labeledURI: /
      objectClass: organizationalRole
      objectClass: labeledURIObject
      cn: @@@

      donde orgname es la organización que intentas volver a crear.

    2. Agrega las entidades LDAP faltantes con el siguiente comando:
      ldapadd -x -w "OPENLDAP_ROOT_PASSWORD" -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Los pasos anteriores crearán las entradas faltantes para una organización existente y los orgadmin permisos para esa organización. Repite los pasos para cada organización que deba volver a crearse. En este punto, puedes agregar usuarios orgadmin a una organización, pero los otros roles predeterminados aún no existen, por lo que debes agregarlos con el siguiente paso.

  3. Agrega roles y permisos predeterminados faltantes a una organización existente.

    Con el mismo archivo de configuración que se usó inicialmente para configurar cualquiera de las organizaciones existentes, ejecuta el siguiente comando:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Después de seguir este procedimiento, debes hacer lo siguiente de forma manual:

    • Agrega los roles personalizados que existían antes de la corrupción con la IU de New Edge o la API de Management.
    • Agrega usuarios a los roles de usuario pertinentes.
  5. (Opcional) Restablece la configuración de autenticación externa en Management.

    Restablece /opt/apigee/customer/application/management-server.properties si la configuración no cambió. Como no se volvió a instalar la IU de New Edge, /opt/apigee/customer/application/management-ui.properties sigue siendo el mismo después de que se restablecen las credenciales de la sysadmin cuenta con la nueva instalación del servidor de administración.

  6. (Opcional) Vuelve a instalar Apigee mTLS en el nodo de administración.

    Si Apigee mTLS se instaló anteriormente, sigue la Guía de instalación de Apigee mTLS para volver a instalar lo en el nodo del servidor de administración.

Si el problema continúa, comunícate con el equipo de asistencia de Apigee para obtener más ayuda.