Risoluzione dei problemi di OpenLDAP

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Questa sezione fornisce informazioni e indicazioni per la risoluzione dei problemi di OpenLDAP.

SMTP è disattivato e gli utenti devono reimpostare la password

Sintomo

Se SMTP non è configurato nella UI di Edge, i nuovi utenti aggiunti a Edge hanno bisogno di un modo per impostare una password.

Messaggi di errore

Unknown username and password combination.

Possibili cause

I nuovi utenti non riescono a ricevere un'email dal link "Non ricordi la password?" per impostare una password perché SMTP non è configurato.

Risoluzione

Puoi risolvere questo problema in uno dei seguenti modi:

Soluzione 1: configura il server SMTP

Configura il server SMTP in modo da impostare una nuova password per l'utente utilizzando le istruzioni fornite nella documentazione.

Soluzione 2: utilizzo di LDAP

Se non riesci a configurare il server SMTP, utilizza i comandi LDAP riportati di seguito per impostare la nuova password per un utente:

  1. Un amministratore dell'organizzazione esistente deve aggiungere l'utente specifico tramite la UI Edge, come mostrato di seguito:

  2. Utilizza il comando ldapsearch per trovare il nome distinto dell'utente (dn) e reindirizzare l'output a un file:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    Di seguito è riportato un esempio di voce dn per un utente, insieme agli attributi per l'utente:

    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. Apri il file ldap.txt e trova il DN del nuovo utente che è stato aggiunto in base all'attributo email del nuovo utente.
  4. Esegui il comando ldappassword per aggiungere una password per il nuovo utente utilizzando il relativo DN. In questo esempio, stai impostando la password dell'utente su 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. Accedi alla UI di Edge come nuovo utente con la password definita nel passaggio precedente. L'utente può impostare una nuova password dopo aver eseguito l'accesso all'interfaccia utente.

LDAP non è in fase di replica

Sintomo

Molte installazioni Edge hanno più data center, ad esempio DC-1 e DC-2. Quando accedi alla UI Edge in DC-1 come amministratore dell'organizzazione, puoi visualizzare l'elenco degli utenti, ma lo stesso elenco di utenti non viene visualizzato nella UI perimetrale in DC-2.

Messaggi di errore

Non vengono visualizzati errori. La UI perimetrale semplicemente non mostra l'elenco degli utenti che avrebbero dovuto essere replicati su tutti i server OpenLDAP.

Possibili cause

In genere questo problema è dovuto a una configurazione della replica OpenLDAP non configurata correttamente, non all'installazione stessa. Inoltre, la replica potrebbe interrompersi se la rete tra i server OpenLDAP non consente il traffico sulla porta 10389.

Diagnostica

Per diagnosticare il problema, procedi nel seguente modo:

  1. Controlla se ldapsearch restituisce i dati da ciascun server OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. Verifica se puoi connetterti a ciascun nodo OpenLDAP dagli altri nodi OpenLDAP sulla porta 10389. Se telnet è installato, utilizza il seguente comando:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Se Telnet non è disponibile, utilizza netcat per verificare la connettività come segue:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Controlla la configurazione della replica nel seguente file:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    Il file deve contenere una configurazione simile alla seguente:

    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 anche il valore dell'attributo olcMirrorMode nello stesso file. Deve essere impostato sul valore TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Verifica la presenza di regole wrapper iptables e tcp. Rimuovi tutte le regole che non consentono ai server OpenLDAP di comunicare tra loro. Collabora con l'amministratore di rete per impostare le regole in modo appropriato.
  7. Assicurati che la password di sistema di OpenLDAP sia la stessa su ogni nodo OpenLDAP.
  8. Verifica la presenza di caratteri nascosti nei file di configurazione ldif utilizzati per configurare la replica OpenLDAP N-Way eseguendo dos2unix sui file ldif creati per aggiornare la configurazione. In genere, un file ldif con caratteri non validi potrebbe impedire l'esecuzione del comando ldapmodify, pertanto la replica potrebbe non essere configurata. Rimuovi i caratteri non validi e salva i file di configurazione.

Se il problema persiste, contatta l' assistenza Apigee per ricevere aiuto per la configurazione della replica OpenLDAP N-Way.

Impossibile avviare OpenLDAP

Sintomo

OpenLDAP non si avvia.

Messaggi di errore

SLAPD Dead But Pid File Exists

Possibili cause

Questo problema è in genere causato da un file di blocco rimasto nel file system e deve essere rimosso.

Diagnostica

Per diagnosticare il problema, procedi nel seguente modo:

  1. Verifica la presenza di un blocco del processo slapd di OpenLDAP o di un file pid nella seguente posizione:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. Elimina il file lock e pid, se trovato, e prova a riavviare openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. Se viene avviato il processo slapd di OpenLDAP, ignora i passaggi riportati di seguito.
  4. Se il processo slapd di OpenLDAP non si avvia, prova a eseguire lo slapd in modalità di debug e cerca eventuali errori:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Gli errori possono rimandare a problemi relativi alle risorse. Controlla l'utilizzo della memoria e della CPU nel sistema.
  6. Controlla la versione di OpenLDAP ed esegui l'upgrade, se è precedente. Verifica le versioni supportate di OpenLDAP nel nostro documento Software supportato.
    slapd -V
    
  7. Utilizza Strace per risolvere i problemi del processo slapd e per fornire output all' Assistenza Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Corruzione dei dati OpenLDAP

Sintomo

Gli utenti non possono più eseguire chiamate di gestione o accedere alla UI Edge. L'utilizzo dell'utilità ldapsearch per eseguire query sugli utenti potrebbe indicare che l'utente esiste nel datastore LDAP o identificare possibili utenti o ruoli mancanti.

Messaggi di errore

Unknown username and password combination.

Possibili cause

In genere, questo problema potrebbe essere osservato a causa del danneggiamento dei dati di OpenLDAP. In genere, i dati di OpenLDAP non vengono danneggiati. Tuttavia, nei rari casi in cui si verificasse, il danneggiamento potrebbe essere dovuto a un guasto del disco di sistema o a problemi di spazio su disco.

Diagnostica

  1. Controlla lo spazio su disco nel sistema su cui è installato OpenLDAP utilizzando il comando seguente:
    du -m /opt
    
  2. Se lo spazio su disco utilizzato è molto vicino al 100%, la causa del problema è l'esaurimento dello spazio su disco del sistema.

Risoluzione

Se il tuo sistema ha esaurito lo spazio su disco o sta per esaurirsi, aggiungi altro spazio su disco per assicurarti di averne sufficiente.

Quando disponi di spazio su disco sufficiente, utilizza una delle seguenti soluzioni per risolvere il problema di danneggiamento dei dati LDAP:

  1. Ripristina i dati OpenLDAP dal backup.
  2. Pulisci il database OpenLDAP.

Soluzione 1: ripristina i dati LDAP dal backup

Esegui un backup su un nodo OpenLDAP funzionante. Il backup deve essere eseguito regolarmente. Consulta la guida alle operazioni di Apigee Private Cloud per le best practice sui backup:

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

I passaggi seguenti possono essere utilizzati per ripristinare i dati OpenLDAP da un backup valido.

  1. Arresta il nodo OpenLDAP per il quale è necessario ripristinare i dati:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Cambia la directory nella directory dei dati OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Esegui il backup dei dati OpenLDAP esistenti utilizzando il comando di spostamento:
    mv ldap ldap_orig
    
  4. Passa all'utente Apigee:
    su apigee
    
  5. Dalla directory /opt/apigee/data/apigee-openldap, crea una nuova directory di dati OpenLDAP con il nome originale:
    mkdir ldap
    
  6. Esegui il backup della sottodirectory ldap_orig/DB_CONFIG del passaggio 3 e copiala nella directory openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Per ripristinare i dati dal backup eseguito con slapcat, utilizza slapadd per importare l'ldif che contiene i dati validi:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Avvia il processo OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Soluzione 2: ripulisci il database LDAP

I passaggi seguenti cancellano il database OpenLDAP per fornire un nuovo inizio. Questa soluzione può essere utilizzata se non esiste un backup dei dati nell'ultimo stato in cui funzionavano i dati OpenLDAP.

  1. Interrompi il servizio OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Cambia la directory nella directory dei dati OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Esegui il backup dei dati OpenLDAP esistenti utilizzando il comando di spostamento:
    mv ldap ldap_orig
    
  4. Passa all'utente Apigee:
    su apigee
    
  5. Crea una nuova directory di dati OpenLDAP con il nome originale:
    mkdir ldap
    
  6. Esegui il backup della sottodirectory ldap_orig/DB_CONFIG del passaggio 3 e copiala nella directory openldap:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Riavvia il processo OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Riavvia il server di gestione per forzare l'aggiornamento delle connessioni a OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Soluzione 3: ripristina un'installazione di base di OpenLDAP

Se la soluzione 2 non risolve il problema, puoi reimpostare OpenLDAP a un'installazione di base, come descritto in questa sezione.

Prerequisiti

Per reimpostare OpenLDAP sono necessari i seguenti prerequisiti:

  • La possibilità di eseguire la configurazione con l'amministratore di sistema e le credenziali LDAP radice.
  • Accesso all'utilità ldapadd.
  • Il file di configurazione invisibile originale salvato per il nodo di gestione/LDAP.

Per reimpostare OpenLDAP, svolgi i seguenti passaggi:

  1. Reinstalla OpenLDAP e il server di gestione.
    1. Arresta il server openldap:
      apigee-service apigee-openldap stop
    2. Elimina la cartella dati openldap danneggiata:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Disinstalla il componente openldap:
      apigee-service apigee-openldap uninstall
    4. Reinstalla il componente openldap utilizzando lo stesso file di configurazione utilizzato per l'installazione iniziale:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      dove configfile è il nome del file di configurazione.
    5. Reinstalla il server di gestione utilizzando il file di configurazione originale:
      /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: @@@

      dove orgname è l'organizzazione che stai cercando di ricreare.

    2. Aggiungi le entità LDAP mancanti utilizzando il seguente comando:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    I passaggi precedenti creano le voci mancanti per un'organizzazione esistente e le autorizzazioni orgadmin per tale organizzazione. Ripeti i passaggi per ogni organizzazione che deve essere ricreata. A questo punto, puoi aggiungere utenti orgadmin a un'organizzazione, ma gli altri ruoli predefiniti non esistono ancora, quindi dovrai aggiungerli utilizzando il passaggio successivo.

  3. Aggiungi autorizzazioni e ruoli predefiniti mancanti a un'organizzazione esistente.

    Utilizzando lo stesso file di configurazione utilizzato inizialmente per configurare una delle organizzazioni esistenti, esegui questo comando:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Al termine di questa procedura, dovrai procedere manualmente:

    • Aggiungi eventuali ruoli personalizzati esistenti prima del danneggiamento utilizzando l'interfaccia utente o l'API di gestione.
    • Aggiungi eventuali utenti ai ruoli utente pertinenti.
  5. (Facoltativo) Ristabilisci la configurazione dell'autenticazione esterna alla gestione.

    Ripristina /opt/apigee/customer/application/management-server.properties se la configurazione non è cambiata. Poiché la UI non è stata reinstallata, /opt/apigee/customer/application/ui.properties dovrebbe rimanere invariata dato che le credenziali per l'amministratore di sistema sono state ripristinate con la nuova installazione di Management.

  6. (Facoltativo) Reinstalla Apigee mTLS sul nodo di gestione.

    Se Apigee mTLS è stato installato in precedenza, segui la guida all'installazione di Apigee mTLS per reinstallarlo sul nodo del server di gestione.

Se il problema persiste, contatta l'assistenza Apigee per ulteriore supporto.