Solución de problemas de OpenLDAP

Estás viendo la documentación de Apigee Edge.
Ve 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 el SMTP no está configurado en la IU de 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 configurar una contraseña porque no se configuró SMTP.

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 con las instrucciones que se proporcionan en la documentación.

Solución 2: Usar LDAP

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

  1. Un administrador de la organización existente debe agregar al usuario específico a través de la IU de Edge, como se muestra a continuación:

  2. Usa el comando ldapsearch para encontrar el nombre distinguido (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 -h localhost -p 10389 > ldap.txt

    Este es un ejemplo de una entrada de 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, configuras la contraseña del usuario como Apigee123:
    ldappasswd -h localhost -p 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 Edge como el usuario nuevo con la contraseña definida en el paso anterior. El usuario puede establecer una contraseña nueva una vez que haya accedido a la IU.

El 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 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 Edge en DC-2.

Mensajes de error

No aparecen errores, la IU de Edge simplemente 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 fallar 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 muestra datos de cada servidor OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 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 en el siguiente archivo:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

    El archivo debe contener la siguiente configuración:

    olcSyncRepl: rid=001
      provider=ldap://__OTHER_LDAP_SERVER__/
      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. También verifica el mismo archivo para ver el valor del atributo olcMirrorMode. Se debe establecer en el valor VERDADERO:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  6. Verifica si hay reglas de iptables y tcp wrapper. Quita las reglas que no permitan que los servidores OpenLDAP de pares se comuniquen entre sí. Trabaja con el administrador de red para configurar las reglas de forma adecuada.
  7. Asegúrate de que la contraseña del sistema OpenLDAP sea la misma en cada nodo OpenLDAP.
  8. Ejecuta dos2unix en los archivos ldif que se crearon para actualizar la configuración y verifica si hay caracteres ocultos en los archivos de configuración ldif que se usan para configurar la replicación de OpenLDAP de N vías. Por lo general, un archivo ldif que tiene caracteres incorrectos hace 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 persiste, comunícate con el equipo de asistencia de Apigee para obtener ayuda con la configuración de la replicación de OpenLDAP de N vías.

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 queda en el sistema de archivos y que se debe quitar.

Diagnóstico

Sigue estos pasos para diagnosticar este problema:

  1. Busca 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. Si se encuentra, borra el archivo de bloqueo y pid, y prueba reiniciar 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 pasos que se indican a continuación.
  4. Si no se inicia el proceso slapd de OpenLDAP, 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 con los recursos. Verifica el uso de memoria y CPU en el sistema.
  6. Verifica la versión de OpenLDAP y actualízala si es antigua. Consulta las versiones compatibles de OpenLDAP en nuestro documento Software compatible.
    slapd -V
  7. Usa strace para solucionar problemas relacionados con el proceso de slapd y para proporcionar el resultado de strace a la asistencia de Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>

Daños en los datos de OpenLDAP

Síntoma

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

Mensajes de error

Unknown username and password combination.

Causas posibles

Por lo general, este problema se observa debido a daños en 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 haga, la corrupción podría deberse a fallas en el disco del sistema o a problemas de espacio en el disco.

Diagnóstico

  1. Verifica el espacio en disco del sistema que tiene instalado OpenLDAP con el siguiente comando:
    du -m /opt
  2. Si ves que el espacio en disco usado está muy cerca del 100%, eso indicaría que el motivo de este problema es que el sistema se está quedando sin espacio en el disco.

Solución

Si el sistema se quedó sin espacio en el disco o está a punto de quedarse sin él, 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. Detén el servidor de administración 2 y LDAP2.
    2. Restablece LDAP1 a partir de una copia de seguridad de VM (o 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, reinstala 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 coincida.
    7. Reinicia el servidor de administración 2 y UI2, 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

Crea una copia de seguridad en un nodo OpenLDAP en funcionamiento. La copia de seguridad se debe realizar con regularidad. Consulta la Guía de operaciones de la nube privada de Apigee 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

Los siguientes pasos se pueden usar para restablecer los datos de OpenLDAP desde una copia de seguridad válida.

  1. Detén el nodo 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. Crea una copia de seguridad de los datos existentes de OpenLDAP con el comando move:
    mv ldap ldap_orig
  4. Cambia al usuario apigee:
    su apigee
  5. Desde el directorio /opt/apigee/data/apigee-openldap, crea un nuevo directorio de datos de OpenLDAP con el nombre original:
    mkdir ldap
  6. Crea una 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 creada 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 inicio. 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 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. Crea una copia de seguridad de los datos existentes de OpenLDAP con el comando move:
    mv ldap ldap_orig
  4. Cambia al usuario apigee:
    su apigee
  5. Crea un nuevo directorio de datos de OpenLDAP con el nombre original:
    mkdir ldap
  6. Toma el subdirectorio de copia de seguridad ldap_orig/DB_CONFIG del paso 3 y cópialo 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 credenciales de administrador del sistema y raíz de LDAP
  • Acceso a la utilidad ldapadd
  • El archivo de configuración silencioso original guardado para el nodo de administración/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
      En el que 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

    After doing these steps, Management API calls should work again using the sysadmin account only. However, it will not be possible to log into the Edge UI, and Management API calls with any other users will not work.

  2. Add missing openldap entries for orgs that existed prior to the corruption.

    After the above step is completed, openldap will be missing entries for orgs that existed when the corruption occurred. The majority of the actual org data such as proxy bundles is stored in Cassandra or Zookeeper is not lost. However, running the setup-org script will not automatically add the openldap data for the orgs that already exist in Cassandra, and Zookeeper. This data has to be added manually for every org that existed prior to the corruption using the following steps:

    1. Create an ldif file called missingLDAP.ldif with the following content:
      # 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: @@@

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

    2. Agrega las entidades de LDAP que faltan con el siguiente comando:
      ldapadd -x -w  -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 permisos orgadmin para esa organización. Repite los pasos para cada organización que debas volver a crear. En este punto, puedes agregar usuarios orgadmin a una organización, pero los otros roles predeterminada aún no existen, por lo que debes agregarlos con el siguiente paso.

  3. Agrega los 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 org 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 o la API de administración.
    • Agrega a los usuarios a los roles relevantes.
  5. (Opcional) Restablece la configuración de autenticación externalizada en la administración.

    Restablece el /opt/apigee/customer/application/management-server.properties si la configuración no cambió. Dado que no se volvió a instalar la IU, el /opt/apigee/customer/application/ui.properties debería permanecer igual, ya que las credenciales del administrador del sistema se restablecieron con la nueva instalación de administración.

  6. (Opcional) Reinstala la mTLS de Apigee en el nodo de administración.

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

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