Risoluzione dei problemi di OpenLDAP

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

Questa sezione fornisce informazioni e indicazioni sulla risoluzione dei problemi relativi a OpenLDAP.

SMTP è disattivato e gli utenti devono reimpostare password

Sintomo

Se SMTP non è configurato nella UI di Edge, i nuovi utenti aggiunti a Edge devono poter impostare password.

Messaggi di errore

Unknown username and password combination.

Possibili cause

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

Risoluzione

Puoi risolvere il problema in uno dei seguenti modi:

Soluzione 1: Configura server SMTP

Configura il server SMTP in modo che imposti una nuova password per l'utente seguendo le istruzioni fornite nella documentazione.

Soluzione 2: utilizzo LDAP

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

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

  2. Utilizza il comando ldapsearch per trovare il nome distinto dell'utente (dn) e reindirizza 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 proprio 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 Edge come nuovo utente con la password definita nel passaggio precedente. La l'utente può impostare una nuova password dopo aver eseguito l'accesso alla UI.

Il protocollo LDAP non si sta replicando

Sintomo

Molte installazioni Edge dispongono di più data center, ad esempio DC-1 e DC-2. Durante il logging nella UI Edge di DC-1, in qualità di amministratore dell'organizzazione, puoi visualizzare l'elenco degli utenti, ma non viene visualizzato nella UI di Edge in DC-2.

Messaggi di errore

Non viene visualizzato alcun errore, l'UI Edge semplicemente non mostra l'elenco di utenti che avrebbero dovuto essere replicate in tutti i server OpenLDAP.

Possibili cause

In genere la causa di questo problema è una configurazione di replica OpenLDAP configurata in modo errato, non l'installazione stessa. Inoltre, la replica può interrompersi se la rete tra i server OpenLDAP non consente il traffico sulla porta 10389.

Diagnosi

Per diagnosticare il problema:

  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 controllare la connettività come segue:

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

    Il file deve contenere una configurazione come la 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. Inoltre, verifica nello stesso file il valore dell'attributo olcMirrorMode. Dovrebbe 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 peer per comunicare tra loro. Collaborare con l'amministratore di rete per impostare le regole in modo appropriato.
  7. Assicurati che la password di sistema OpenLDAP sia la stessa su tutti i nodi 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 che sono stati per aggiornare la configurazione. Generalmente, un file ldif che contiene caratteri non validi può non sia possibile eseguire il comando ldapmodify, pertanto la replica potrebbe non essere configurata. Rimuovi eventuali problemi e salvare i file di configurazione.

Se il problema persiste, contatta Supporto Apigee per l'assistenza nella 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 è causato in genere da un file di blocco che viene lasciato nel file system e che richiede da rimuovere.

Diagnosi

Per diagnosticare il problema:

  1. Verifica la presenza di un file pid o di blocco del processo slapd OpenLDAP 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 and 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 OpenLDAP, salta i passaggi seguenti.
  4. Se il processo slapd OpenLDAP non viene avviato, prova a eseguire 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 delle risorse. Controlla l'utilizzo di memoria e CPU sul sistema.
  6. Controlla la versione di OpenLDAP ed esegui l'upgrade se è obsoleta. Verifica la presenza delle versioni supportate di OpenLDAP nel documento supported Software (Software supportato).
    slapd -V
    
  7. Utilizza lo strace per risolvere i problemi del processo slapd e per fornire l'output dello strace a Assistenza Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Danneggiamento dei dati OpenLDAP

Sintomo

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

Messaggi di errore

Unknown username and password combination.

Possibili cause

In genere, questo problema può essere osservato a causa del danneggiamento dei dati OpenLDAP. Di solito, OpenLDAP i dati non si danneggiano. Ma nei rari casi in cui lo sia, la corruzione potrebbe essere dovuta guasti al disco di sistema o problemi di spazio su disco.

Diagnosi

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

Risoluzione

Se lo spazio su disco nel sistema è esaurito o è quasi esaurito, aggiungi per assicurarti di avere spazio sufficiente.

Quando disponi di spazio sufficiente su disco, utilizza una delle seguenti soluzioni per gestire i dati LDAP problema di corruzione:

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

Soluzione 1 - Ripristinare Dati LDAP dal backup

Su un nodo OpenLDAP funzionante, esegui un backup. Il backup deve essere eseguito regolarmente. Consulta Guida operativa di Apigee Private Cloud per le best practice sui backup:

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

Puoi seguire questi passaggi per ripristinare i dati OpenLDAP da un backup valido.

  1. Arresta il nodo OpenLDAP per cui è necessario ripristinare i dati:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Passa alla 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 nuovi dati OpenLDAP con il nome originale:
    mkdir ldap
    
  6. Esegui il backup della sottodirectory ldap_orig/DB_CONFIG del passaggio 3 e copialo nel la directory openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Per ripristinare i dati dal backup effettuato con slapcat, utilizza slapadd per importare il file 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: pulire il LDAP database

I seguenti passaggi cancellano il database OpenLDAP per eseguire un nuovo avvio. Questa soluzione può da utilizzare se non è disponibile un backup dei dati dell'ultimo stato in cui i dati OpenLDAP stavano lavorando.

  1. Interrompi il servizio OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Passa alla 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. Prendi la sottodirectory ldap_orig/DB_CONFIG di backup dal passaggio 3 e copiala in openldap directory:
    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 - Reimposta OpenLDAP a un'installazione di base

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 gestione/LDAP.
di Gemini Advanced.

Per reimpostare OpenLDAP, segui questi passaggi:

  1. Reinstalla OpenLDAP e Management Server.
    1. Arresta il server openldap:
      apigee-service apigee-openldap stop
    2. Elimina la cartella di 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 usando lo stesso file di configurazione usato 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 tentando 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 creeranno le voci mancanti per un'organizzazione esistente e il orgadmin autorizzazioni per quell'organizzazione. Ripeti i passaggi per ogni organizzazione da ricreare. A questo punto puoi aggiungere orgadmin utenti a un'organizzazione, ma i ruoli predefiniti non esistono ancora, quindi dovrai aggiungerli nel prossimo passaggio.

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

    Usando lo stesso file di configurazione usato inizialmente per impostare una delle organizzazioni esistenti, esegui questo comando:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Dopo aver seguito questa procedura, dovrai procedere manualmente:

    • Aggiungere eventuali ruoli personalizzati esistenti prima del danneggiamento utilizzando l'interfaccia utente o l'API di gestione.
    • Aggiungi gli utenti ai ruoli utente pertinenti.
  5. (Facoltativo) Ristabilisci la configurazione dell'autenticazione esternalizzata nella 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 invariato dato il le credenziali per sysadmin sono state ripristinate con la nuova installazione di management.

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

    Se Apigee mTLS è già 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 Apigee assistenza per ulteriore assistenza.