Fehlerbehebung bei OpenLDAP-Problemen

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

In diesem Abschnitt finden Sie Informationen und Anleitungen zur Fehlerbehebung bei OpenLDAP-Problemen.

SMTP ist deaktiviert und Nutzer müssen das Passwort zurücksetzen

Symptom

Wenn SMTP in der Edge-UI nicht eingerichtet ist, benötigen neue Nutzer, die Edge hinzugefügt werden, eine Möglichkeit, ein Passwort festzulegen.

Fehlermeldungen

Unknown username and password combination.

Mögliche Ursachen

Neue Nutzer können keine E-Mail über den Link „Passwort vergessen?“ erhalten, um ein Passwort festzulegen, da SMTP nicht eingerichtet ist.

Auflösung

Sie können dieses Problem auf eine der folgenden Arten beheben:

Lösung 1: SMTP-Server konfigurieren

Konfigurieren Sie den SMTP-Server, um ein neues Passwort für den Nutzer festzulegen. Folgen Sie dazu der Anleitung in der Dokumentation .

Lösung 2: LDAP verwenden

Wenn Sie den SMTP-Server nicht konfigurieren können, verwenden Sie die folgenden LDAP-Befehle, um das neue Passwort für einen Nutzer festzulegen:

  1. Ein vorhandener Admin der Organisation muss den jeweiligen Nutzer über die Edge-UI hinzufügen, wie unten gezeigt:

  2. Verwenden Sie den Befehl ldapsearch , um den Distinguished Name (DN) des Nutzers zu finden, und leiten Sie die Ausgabe an eine Datei weiter:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    Hier sehen Sie ein Beispiel für einen DN-Eintrag für einen Nutzer sowie die Attribute für den Nutzer:

    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. Öffnen Sie die Datei ldap.txt und suchen Sie den DN des neuen Nutzers, der anhand des E-Mail-Attributs des neuen Nutzers hinzugefügt wurde.
  4. Führen Sie den Befehl ldappassword aus, um ein Passwort für den neuen Nutzer mit seinem DN hinzuzufügen. In diesem Beispiel legen Sie das Passwort des Nutzers auf „Apigee123“ fest:
    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. Melden Sie sich in der Edge-UI als neuer Nutzer mit dem im vorherigen Schritt festgelegten Passwort an. Der Nutzer kann ein neues Passwort festlegen, sobald er in der UI angemeldet ist.

LDAP wird nicht repliziert

Symptom

Viele Edge-Installationen haben mehrere Rechenzentren, z. B. RZ-1 und RZ-2. Wenn Sie sich in RZ-1 als Admin der Organisation in der Edge-UI anmelden, können Sie die Liste der Nutzer sehen. Dieselbe Nutzerliste wird jedoch nicht in der Edge-UI in RZ-2 angezeigt.

Fehlermeldungen

Es werden keine Fehler angezeigt. In der Edge-UI wird einfach nicht die Liste der Nutzer angezeigt, die auf allen OpenLDAP-Servern repliziert werden sollten.

Mögliche Ursachen

Die Ursache für dieses Problem ist in der Regel eine falsch konfigurierte OpenLDAP-Replikationskonfiguration und nicht die Installation selbst. Außerdem kann die Replikation fehlschlagen, wenn das Netzwerk zwischen den OpenLDAP-Servern keinen Traffic auf Port 10389 zulässt.

Diagnose

Führen Sie die folgenden Schritte aus, um das Problem zu diagnostizieren:

  1. Prüfen Sie, ob ldapsearch Daten von jedem OpenLDAP-Server zurückgibt:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. Prüfen Sie, ob Sie von den anderen OpenLDAP-Knoten aus eine Verbindung zu jedem OpenLDAP-Knoten auf Port 10389 herstellen können. Wenn Telnet installiert ist, verwenden Sie den folgenden Befehl:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Wenn Telnet nicht verfügbar ist, prüfen Sie die Verbindung mit Netcat so:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Prüfen Sie die Replikationskonfiguration in der folgenden Datei:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif

    Die Datei sollte eine Konfiguration wie diese enthalten:

      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. Prüfen Sie in derselben Datei auch den Wert des Attributs olcMirrorMode. Er sollte auf TRUE gesetzt sein:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Prüfen Sie, ob iptables- und TCP-Wrapper-Regeln vorhanden sind. Entfernen Sie alle Regeln, die die Kommunikation zwischen den OpenLDAP-Peer-Servern nicht zulassen. Legen Sie die Regeln in Zusammenarbeit mit Ihrem Netzwerkadministrator fest.
  7. Achten Sie darauf, dass das OpenLDAP-Systempasswort auf allen OpenLDAP-Knoten identisch ist.
  8. Prüfen Sie, ob in den LDIF-Konfigurationsdateien, die zum Konfigurieren der N-Way-OpenLDAP-Replikation verwendet werden, verborgene Zeichen vorhanden sind. Führen Sie dazu den Befehl „dos2unix“ für die LDIF-Dateien aus, die zum Aktualisieren der Konfiguration erstellt wurden. In der Regel führt eine LDIF-Datei mit ungültigen Zeichen dazu, dass der Befehl „ldapmodify“ nicht ausgeführt werden kann und die Replikation möglicherweise nicht eingerichtet wird. Entfernen Sie alle ungültigen Zeichen und speichern Sie die Konfigurationsdateien.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee-Support, um Unterstützung bei der Einrichtung der N-Way-OpenLDAP-Replikation zu erhalten.

OpenLDAP kann nicht gestartet werden

Symptom

OpenLDAP wird nicht gestartet.

Fehlermeldungen

SLAPD Dead But Pid File Exists

Mögliche Ursachen

Dieses Problem wird in der Regel durch eine Sperrdatei verursacht, die im Dateisystem verblieben ist und entfernt werden muss.

Diagnose

Führen Sie die folgenden Schritte aus, um dieses Problem zu diagnostizieren:

  1. Prüfen Sie, ob am folgenden Speicherort eine Sperr- oder PID-Datei für den OpenLDAP-Prozess „slapd“ vorhanden ist:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  2. Löschen Sie die Sperr- und PID-Datei, falls vorhanden, und versuchen Sie, OpenLDAP neu zu starten.
     rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
     rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
  3. Wenn der OpenLDAP-Prozess „slapd“ gestartet wird, überspringen Sie die folgenden Schritte.
  4. Wenn der OpenLDAP-Prozess „slapd“ nicht gestartet wird, versuchen Sie, „slapd“ im Debug-Modus auszuführen und nach Fehlern zu suchen:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Fehler können auf Ressourcenprobleme hinweisen. Prüfen Sie die Arbeitsspeicher- und CPU-Auslastung des Systems.
  6. Prüfen Sie die OpenLDAP-Version und führen Sie ein Upgrade durch, wenn sie alt ist. Informationen zu den unterstützten OpenLDAP-Versionen finden Sie in unserem Dokument Unterstützte Software.
    slapd -V
    
  7. Verwenden Sie „strace“, um Probleme mit dem Prozess „slapd“ zu beheben und die Ausgabe von „strace“ an den Apigee Support zu senden:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

OpenLDAP-Datenbeschädigung

Symptom

Nutzer können keine Verwaltungsaufrufe mehr ausführen oder sich in der Edge-UI anmelden. Wenn Sie mit dem Dienstprogramm „ldapsearch“ Nutzer abfragen, kann dies darauf hindeuten, dass der Nutzer im LDAP-Datenspeicher vorhanden ist, oder mögliche fehlende Nutzer oder Rollen identifizieren.

Fehlermeldungen

Unknown username and password combination.

Mögliche Ursachen

In der Regel wird dieses Problem durch eine Beschädigung der OpenLDAP-Daten verursacht. Normalerweise werden OpenLDAP Daten nicht beschädigt. In seltenen Fällen kann dies jedoch vorkommen. Die Beschädigung kann auf einen Ausfall der Systemfestplatte oder auf Probleme mit dem Speicherplatz zurückzuführen sein.

Diagnose

  1. Prüfen Sie den Speicherplatz auf dem System, auf dem OpenLDAP installiert ist, mit dem folgenden Befehl:
    du -m /opt
    
  2. Wenn der verwendete Speicherplatz sehr nahe an 100 % liegt, ist die Ursache für dieses Problem, dass auf Ihrem System der Speicherplatz ausgeht.
  3. Prüfen Sie die Datenkonsistenz auf allen LDAP-Knoten:
    1. Vergleichen Sie auf jedem LDAP-Knoten die Anzahl der Nutzer und Rollen. Führen Sie die folgenden Befehle aus und vergleichen Sie die Ergebnisse.
      ldapsearch -o ldif-wrap=no -b "ou=users,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l
      ldapsearch -o ldif-wrap=no -b "ou=resources,ou=global,dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w PASSWORD|wc -l 
      Eine Abweichung in der Anzahl zwischen den Knoten deutet auf eine mögliche Datenbeschädigung hin.
    2. Prüfen Sie den LDAP-Replikationsstatus. Führen Sie den folgenden Befehl auf jedem LDAP-Knoten aus.
        ldapsearch -x -LLL -H ldap://ldap_ip:10389 -s base -b 'dc=apigee,dc=com' contextCSN dn: dc=apigee,dc=com -D "cn=manager,dc=apigee,dc=com" -w PASSWORD dn: dc=apigee,dc=com 
      Wenn der Wert contextCSN auf allen Knoten identisch ist, funktioniert die LDAP-Replikation korrekt.

Auflösung

Wenn auf Ihrem System der Speicherplatz ausgeht oder fast aufgebraucht ist, fügen Sie mehr Speicherplatz hinzu, um eine ausreichende Verfügbarkeit zu gewährleisten.

Sobald Sie genügend Speicherplatz haben, verwenden Sie eine der folgenden Lösungen, um das Problem der LDAP-Daten Beschädigung zu beheben:

  1. Stellen Sie die OpenLDAP-Daten aus der Sicherung wieder her.
  2. Bereinigen Sie die OpenLDAP-Datenbank so:
    1. Fahren Sie Management Server 2 und LDAP2 herunter.
    2. Stellen Sie LDAP1 aus einer VM-Sicherung (oder Apigee-Sicherung) wieder her.
    3. Prüfen Sie, ob Management Server 1 gestartet und wiederhergestellt werden kann.
    4. Sobald Management Server 1 und LDAP1 korrekt funktionieren, installieren Sie LDAP2 von Grund auf neu (vollständig leer).
    5. Richten Sie LDAP2 im schreibgeschützten Modus ein, damit LDAP1 auf LDAP2 repliziert werden kann.
    6. Prüfen Sie mit ldapsearch, ob die Anzahl der Zeilen in LDAP1 und LDAP2 übereinstimmt.
    7. Starten Sie Management Server 2 und UI2 neu und prüfen Sie, ob sie erfolgreich gestartet wurden.

Eine detaillierte Anleitung finden Sie im öffentlichen Issue Tracker.

Lösung 1: LDAP-Daten aus der Sicherung wiederherstellen

Erstellen Sie auf einem funktionierenden OpenLDAP-Knoten eine Sicherung. Die Sicherung sollte regelmäßig durchgeführt werden. Best Practices für Sicherungen finden Sie im Apigee Private Cloud Operations Guide:

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

Mit den folgenden Schritten können Sie die OpenLDAP-Daten aus einer guten Sicherung wiederherstellen.

  1. Beenden Sie den OpenLDAP-Knoten, für den die Daten wiederhergestellt werden müssen:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Wechseln Sie in das OpenLDAP-Datenverzeichnis:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sichern Sie die vorhandenen OpenLDAP-Daten mit dem Befehl „move“:
    mv ldap ldap_orig
    
  4. Wechseln Sie zum Apigee-Nutzer:
    su apigee
    
  5. Erstellen Sie im Verzeichnis /opt/apigee/data/apigee-openldap ein neues OpenLDAP-Daten Verzeichnis mit dem ursprünglichen Namen:
    mkdir ldap
    
  6. Erstellen Sie eine Sicherung des Unterverzeichnisses „ldap_orig/DB_CONFIG“ aus Schritt 3 und kopieren Sie sie in das Verzeichnis „openldap“.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Wenn Sie Daten aus einer mit „slapcat“ erstellten Sicherung wiederherstellen möchten, importieren Sie die LDIF-Datei mit den korrekten Daten mit „slapadd“:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Starten Sie den OpenLDAP-Prozess:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Lösung 2: LDAP Datenbank bereinigen

Mit den folgenden Schritten wird die OpenLDAP-Datenbank gelöscht, um einen Neustart zu ermöglichen. Diese Lösung kann verwendet werden, wenn keine Datensicherung des letzten Zustands vorhanden ist, in dem die OpenLDAP-Daten funktionierten.

  1. Beenden Sie den OpenLDAP-Dienst:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Wechseln Sie in das OpenLDAP-Datenverzeichnis:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sichern Sie die vorhandenen OpenLDAP-Daten mit dem Befehl „move“:
    mv ldap ldap_orig
    
  4. Wechseln Sie zum Apigee-Nutzer:
    su apigee
    
  5. Erstellen Sie ein neues OpenLDAP-Datenverzeichnis mit dem ursprünglichen Namen:
    mkdir ldap
    
  6. Erstellen Sie eine Sicherung des Unterverzeichnisses „ldap_orig/DB_CONFIG“ aus Schritt 3 und kopieren Sie sie in das Verzeichnis „openldap“:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Starten Sie den OpenLDAP-Prozess neu:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Starten Sie den Management Server neu, um eine Aktualisierung der Verbindungen zu OpenLDAP zu erzwingen:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Lösung 3: OpenLDAP auf eine grundlegende Installation zurücksetzen

Wenn das Problem mit Lösung 2 nicht behoben wird, können Sie OpenLDAP auf eine grundlegende Installation zurücksetzen, wie in diesem Abschnitt beschrieben.

Vorbereitung

Für das Zurücksetzen von OpenLDAP müssen die folgenden Voraussetzungen erfüllt sein:

  • Sie müssen die Einrichtung mit Systemadministrator- und LDAP-Root-Anmeldedaten ausführen können.
  • Sie benötigen Zugriff auf das Dienstprogramm ldapadd.
  • Sie benötigen die gespeicherte ursprüngliche Konfigurationsdatei für den Management-/LDAP-Knoten.

So setzen Sie OpenLDAP zurück:

  1. Installieren Sie OpenLDAP und den Management Server neu.
    1. Beenden Sie den openldap-Server:
      apigee-service apigee-openldap stop
    2. Löschen Sie den beschädigten openldap-Datenordner:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Deinstallieren Sie die Komponente openldap:
      apigee-service apigee-openldap uninstall
    4. Installieren Sie die openldap Komponente mit derselben Konfigurationsdatei neu, die für die Erstinstallation verwendet wurde:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      Dabei ist configfile der Name der Konfigurationsdatei.
    5. Installieren Sie den Management Server mit der ursprünglichen Konfigurationsdatei neu:
      /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: @@@

      Dabei ist „orgname“ die Organisation, die Sie neu erstellen möchten.

    2. Fügen Sie die fehlenden LDAP-Entitäten mit dem folgenden Befehl hinzu:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Mit den obigen Schritten werden die fehlenden Einträge für eine vorhandene Organisation und die orgadmin Berechtigungen für diese Organisation erstellt. Wiederholen Sie die Schritte für jede Organisation, die neu erstellt werden muss. An diesem Punkt können Sie einer Organisation orgadmin-Nutzer hinzufügen. Die anderen Standardrollen sind jedoch noch nicht vorhanden. Sie müssen sie im nächsten Schritt hinzufügen.

  3. Fügen Sie einer vorhandenen Organisation fehlende Standardrollen und ‑berechtigungen hinzu.

    Führen Sie mit derselben Konfigurationsdatei, die ursprünglich zum Einrichten einer der vorhandenen Organisationen verwendet wurde, den folgenden Befehl aus:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Nach dieser Anleitung müssen Sie Folgendes manuell ausführen:

    • Fügen Sie alle benutzerdefinierten Rollen hinzu, die vor der Beschädigung vorhanden waren, indem Sie die UI oder die Management API verwenden.
    • Fügen Sie alle Nutzer den entsprechenden Nutzerrollen hinzu.
  5. (Optional) Konfiguration der externalisierten Authentifizierung auf dem Management Server wiederherstellen

    Stellen Sie /opt/apigee/customer/application/management-server.properties wieder her, wenn sich die Konfiguration nicht geändert hat. Da die UI nicht neu installiert wurde, sollte /opt/apigee/customer/application/ui.properties gleich bleiben, da die Anmeldedaten für den Systemadministrator mit der neuen Installation des Management Servers wiederhergestellt wurden.

  6. (Optional) Apigee mTLS auf dem Management-Knoten neu installieren

    Wenn Apigee mTLS zuvor installiert war, folgen Sie der Installationsanleitung für Apigee mTLS, um es auf dem Management Server-Knoten neu zu installieren.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Support.