Solución de problemas de OpenLDAP

Estás viendo la documentación de Apigee Edge.
Ve a 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 restablecerlo 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 del mensaje "¿Olvidaste la contraseña?" vínculo para configurar una contraseña porque SMTP no está configurado.

Solución

Puedes tratar este problema de una de las siguientes maneras:

Solución 1: Configurar el servidor SMTP

Configura el servidor SMTP para establecer una contraseña nueva para el usuario siguiendo las instrucciones proporcionadas. en la documentación.

Solución 2: Usa LDAP

Si no puedes configurar el servidor SMTP, usa los siguientes comandos LDAP para establecer la contraseña nueva para 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 del usuario. (dn) y redirecciona 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 dn para un usuario, junto con los atributos para el 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 usando su dn. En este ejemplo, se configura la contraseña del usuario en 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 el usuario puede configurar 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, por ejemplo, DC-1 y DC-2. Durante el registro en la IU de Edge en DC-1, como administrador de la organización, puedes ver la lista de usuarios, pero 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 se replican en todos los servidores OpenLDAP.

Causas posibles

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

Diagnóstico

Sigue estos pasos para diagnosticar el problema:

  1. Verifica si el ldapsearch devuelve 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. Comprueba si puedes conectarte a cada nodo 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, úsalo para verificar la conectividad de la siguiente manera:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Verifica la configuración de la 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. También verifica el mismo archivo para el valor del atributo olcMirrorMode. Debe ser establecido en el valor TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Verifica si hay reglas de wrapper de iptables y de TCP. Quita todas las reglas que no lo permitan para que los servidores OpenLDAP de intercambio de tráfico 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. Compruebe si hay caracteres ocultos en los archivos de configuración del ldif que se utilizan para lo siguiente: configurar la replicación de OpenLDAP N-Way mediante la ejecución de dos2unix en los archivos ldif que se creado para actualizar la configuración. Por lo general, un archivo ldif con caracteres incorrectos el comando ldapmodify no se ejecute, por lo que la replicación podría no estar configurada. Quitar todos los problemas y guarda los archivos de configuración.

Si el problema persiste, comunícate con Asistencia de Apigee para obtener ayuda con la configuración de la replicación de OpenLDAP N-Way.

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 atrás en el sistema de archivos y debe eliminar.

Diagnóstico

Sigue estos pasos para diagnosticar el problema:

  1. Busca un archivo pid o bloqueo de proceso slapd de OpenLDAP 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 trata de 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 el proceso de slapd de OpenLDAP no se inicia, intenta ejecutar slapd en el modo de depuración y busca cualquier 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 de Software admitido.
    slapd -V
    
  7. Usar strace para solucionar problemas del proceso slapd y proporcionar resultados de strace a Asistencia de Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Datos dañados en OpenLDAP

Síntoma

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

Mensajes de error

Unknown username and password combination.

Causas posibles

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

Diagnóstico

  1. Usa el siguiente comando para comprobar el espacio en el disco del sistema que tiene OpenLDAP instalado:
    du -m /opt
    
  2. Si ves que el espacio en el disco usado está muy cerca del 100%, eso indicaría la causa. para este problema es que tu sistema se queda sin espacio en el disco.

Solución

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

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

  1. Restablece los datos de OpenLDAP a partir de la copia de seguridad.
  2. Limpia la base de datos de OpenLDAP.

Solución 1: Restablece el Datos LDAP de la copia de seguridad

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

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

Los siguientes pasos pueden usarse para restablecer los datos de OpenLDAP a partir de una copia de seguridad segura.

  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 el directorio al directorio de datos de OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Usa el comando move para crear una copia de seguridad de los datos de OpenLDAP existentes:
    mv ldap ldap_orig
    
  4. Cambia al usuario de Apigee:
    su apigee
    
  5. Desde el directorio /opt/apigee/data/apigee-openldap, crea un nuevo dato 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 openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Para restablecer los datos de la copia de seguridad realizada con slapcat, utiliza 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 el LDAP base de datos

Los siguientes pasos borran la base de datos de OpenLDAP para proporcionar un inicio nuevo. Esta solución puede ayudar Se debe usar si no hay una copia de seguridad de los datos del último estado en el que estuvieron funcionando los datos de OpenLDAP.

  1. Detén el servicio OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Cambia el directorio al directorio de datos de OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Usa el comando move para crear una copia de seguridad de los datos de OpenLDAP existentes:
    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 openldap. directorio:
    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 con 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 la instalación básica. como se describe en esta sección.

Requisitos previos

Para restablecer OpenLDAP, necesitas los siguientes requisitos previos:

  • Capacidad de ejecutar la configuración con credenciales de administrador del sistema y de LDAP raíz
  • Acceso a la utilidad ldapadd.
  • El archivo de configuración silenciosa original guardado 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 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 de 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

    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 recrear.

    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 el orgadmin permisos para esa organización. Repite los pasos para cada organización que deba volver a crearse. En este punto, puedes agregar usuarios de orgadmin a una organización, pero los demás los roles predeterminados aún no existen, por lo que debes agregarlos en el paso siguiente.

  3. Agrega los roles y los permisos predeterminados que faltan 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, deberás hacer lo siguiente de forma manual:

    • Agrega cualquier rol personalizado que existía antes del daño mediante la IU o la API de Management.
    • Agrega cualquier usuario a los roles relevantes.
  5. (Opcional) Restablecer 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 ha cambiado. Dado que no se reinstale la IU, el /opt/apigee/customer/application/ui.properties debe permanecer igual debido a la las credenciales del administrador del sistema se restablecieron con la nueva instalación de administración.

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

    Si Apigee mTLS estaba instalado anteriormente, 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 Apigee Asistencia para obtener más ayuda.