Solución de problemas de OpenLDAP

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Esta sección 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 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 desde el vínculo “¿Olvidaste la contraseña?” para configurar una contraseña porque SMTP no está configurado.

Resolución

Puedes abordar este problema de una de las siguientes maneras:

Solución 1: Configura el servidor SMTP

Configura el servidor SMTP a fin de establecer una contraseña nueva para el usuario según 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 nueva contraseña de un usuario:

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

  2. Usa el comando ldapsearch para encontrar el nombre distinguido del usuario (dn) 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
    
    .

    A continuación, verás un ejemplo de una entrada dn para un usuario, junto con sus atributos:

    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 la 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 la función dn. En este ejemplo, se configura 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 accede a la IU.

LDAP no se está replicando

Síntoma

Muchas instalaciones de Edge tienen varios centros de datos, como 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 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 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 demás 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 una configuración como la siguiente:

    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. Verifica también el valor del atributo olcMirrorMode en el mismo archivo. Se debe configurar en el valor TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Verifica si hay iptables y reglas de wrapper de tcp. Quita las reglas que no permitan que los servidores de OpenLDAP de intercambio de tráfico se comuniquen entre sí. Trabaja con tu administrador de red para configurar las reglas de manera adecuada.
  7. Asegúrate de que la contraseña del sistema de OpenLDAP sea la misma en cada nodo de OpenLDAP.
  8. Comprueba si hay caracteres ocultos en los archivos de configuración de LDAP que se usan para configurar la replicación de OpenLDAP N-Way mediante la ejecución de dos2unix en los archivos LDAP que se crearon para actualizar la configuración. Por lo general, un archivo ldif con caracteres incorrectos provocaría que no se ejecute el comando ldapmodify y, por lo tanto, 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 N-Way.

No se puede iniciar el 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 dejó en el sistema de archivos y se debe quitar.

Diagnóstico

Sigue estos pasos para diagnosticar este problema:

  1. Busca un bloqueo del 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 los hay, borra los archivos de bloqueo y PID, e intenta 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 de OpenLDAP slapd, omite los siguientes pasos.
  4. Si no se inicia el proceso de slapd de OpenLDAP, intenta ejecutar slapd en el modo de depuración y busca algún error:
    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 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 a fin de 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>
    

Corrupción de datos de OpenLDAP

Síntoma

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

Mensajes de error

Unknown username and password combination.

Causas posibles

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

Diagnóstico

  1. Comprueba el espacio en el disco en el sistema que tiene instalado OpenLDAP con el siguiente comando:
    du -m /opt
    
  2. Si ves que el espacio en el disco utilizado es muy cercano al 100%, eso indicaría que la causa de este problema es que tu sistema se está quedando sin espacio en el disco.

Resolución

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

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 del OpenLDAP de la copia de seguridad.
  2. Limpia la base de datos de OpenLDAP.

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

Hacer una copia de seguridad en un nodo OpenLDAP que funcione 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 del OpenLDAP de una buena copia de seguridad.

  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 de directorio 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 de 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. 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 datos de una 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 los datos del último estado en el que los datos de OpenLDAP estuvieron funcionando.

  1. Detén el servicio de OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Cambia de directorio 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 de 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 la actualización de las conexiones al OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Solución 3: Restablece el 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 el OpenLDAP, necesitas los siguientes requisitos previos:

  • La capacidad de ejecutar la configuración con credenciales de administrador del sistema y LDAP raíz.
  • Acceso a la utilidad ldapadd.
  • El archivo de configuración silencioso original que se guardó para el nodo de administración/LDAP.

Para restablecer el OpenLDAP, sigue estos pasos:

  1. Vuelve a instalar OpenLDAP y el servidor de administración.
    1. Detén el servidor de 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. Reinstala 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 Management Server 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 ejemplo anterior, orgname es la organización que intentas volver a crear.

    2. Agrega las entidades LDAP faltantes 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 se deba volver a crear. En este punto, puedes agregar usuarios de orgadmin a una organización, pero los demás roles predeterminados aún no existen, por lo que debes agregarlos con el siguiente paso.

  3. Agregar las funciones y los permisos predeterminados que faltan a una organización existente

    Con el mismo archivo de configuración que se usó en un principio 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 realizar estas acciones de forma manual:

    • Agrega los roles personalizados que existían antes de la corrupción con la IU o la API de Management.
    • Agrega cualquier usuario a los roles de usuario relevantes.
  5. Restablece la configuración de autenticación externalizada en la administración (opcional).

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

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

    Si Apigee mTLS se instaló previamente, sigue la guía de instalación de Apigee mTLS para reinstalarlo 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.