Fehlerbehebung bei OpenLDAP-Problemen

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Dieser Abschnitt enthält Informationen und Anleitungen zur Fehlerbehebung bei OpenLDAP-Problemen.

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

Symptom

Wenn SMTP nicht in der Edge-Benutzeroberfläche eingerichtet ist, müssen neue Nutzer, die Edge hinzugefügt werden, eine Möglichkeit haben, ein Passwort festzulegen.

Fehlermeldungen

Unknown username and password combination.

Mögliche Ursachen

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

Auflösung

Sie haben folgende Möglichkeiten, dieses Problem zu beheben:

Lösung 1: SMTP-Server konfigurieren

Konfigurieren Sie den SMTP-Server so, dass ein neues Passwort für den Nutzer festgelegt wird. 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 ein neues Passwort für einen Nutzer festzulegen:

  1. Ein vorhandener Organisationsadministrator muss den entsprechenden Nutzer wie unten gezeigt über die Edge-Benutzeroberfläche hinzufügen:

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

    Hier ist ein Beispiel für einen DN-Eintrag für einen Nutzer mit den zugehörigen Attributen:

    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 anhand des E-Mail-Attributs des neuen Nutzers nach dem DN des hinzugefügten Nutzers.
  4. Führen Sie den Befehl ldappassword aus, um mithilfe der DN ein Passwort für den neuen Nutzer 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 als neuer Nutzer mit dem im vorherigen Schritt definierten Passwort in der Edge-Benutzeroberfläche an. Der Nutzer kann nach der Anmeldung in der Benutzeroberfläche ein neues Passwort festlegen.

LDAP wird nicht repliziert

Symptom

Viele Edge-Installationen haben mehrere Rechenzentren, z. B. DC-1 und DC-2. Wenn Sie sich in DC-1 als Nutzer mit der Rolle „Organization Administrator“ in der Edge-Benutzeroberfläche anmelden, können Sie die Liste der Nutzer aufrufen. Diese Liste wird jedoch nicht in der Edge-Benutzeroberfläche in DC-2 angezeigt.

Fehlermeldungen

Es werden keine Fehler angezeigt. Die Edge-Benutzeroberfläche zeigt einfach nicht die Liste der Nutzer an, die auf allen OpenLDAP-Servern repliziert werden sollten.

Mögliche Ursachen

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

Diagnose

So diagnostizieren Sie das Problem:

  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 über Port 10389 eine Verbindung zu jedem OpenLDAP-Knoten von den anderen OpenLDAP-Knoten herstellen können. Wenn Telnet installiert ist, verwenden Sie den folgenden Befehl:
    telnet <OpenLDAP_Peer_IP> 10389
  3. Wenn telnet nicht verfügbar ist, können Sie die Verbindung mit netcat so prüfen:

    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 folgende Konfiguration 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“. Sie sollte auf „TRUE“ festgelegt 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 der Peer-OpenLDAP-Server miteinander verhindern. Wenden Sie sich an Ihren Netzwerkadministrator, um die Regeln entsprechend festzulegen.
  7. Achten Sie darauf, dass das OpenLDAP-Systempasswort auf jedem OpenLDAP-Knoten identisch ist.
  8. Prüfen Sie die ldif-Konfigurationsdateien, die für die N‑Wege-OpenLDAP-Replikation verwendet werden, auf versteckte Zeichen. Führen Sie dazu dos2unix auf den ldif-Dateien aus, die zum Aktualisieren der Konfiguration erstellt wurden. Normalerweise führt eine ldif-Datei mit fehlerhaften Zeichen dazu, dass der Befehl „ldapmodify“ nicht ausgeführt wird und die Replikation möglicherweise nicht eingerichtet wird. Entfernen Sie alle fehlerhaften Zeichen und speichern Sie die Konfigurationsdateien.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee-Support, um Hilfe bei der Einrichtung der N-Wege-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 verbleibt und entfernt werden muss.

Diagnose

So diagnostizieren Sie dieses Problem:

  1. Prüfen Sie am folgenden Speicherort, ob eine OpenLDAP-Slapd-Prozesssperre oder eine PID-Datei 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 gefunden, 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-slapd-Prozess gestartet wird, überspringen Sie die folgenden Schritte.
  4. Wenn der OpenLDAP-Slapd-Prozess 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 Version von OpenLDAP und führen Sie ein Upgrade durch, falls sie veraltet ist. Informationen zu den unterstützten OpenLDAP-Versionen finden Sie im Dokument Unterstützte Software.
    slapd -V
  7. Verwenden Sie strace, um den slapd-Prozess zu beheben und die strace-Ausgabe 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>

Beschädigung von OpenLDAP-Daten

Symptom

Nutzer können keine Verwaltungsanrufe mehr ausführen oder sich in der Edge-Benutzeroberfläche anmelden. Wenn Sie das Dienstprogramm „ldapsearch“ verwenden, um die Nutzer abzufragen, kann das darauf hinweisen, dass der Nutzer im LDAP-Datenspeicher vorhanden ist, oder es können möglicherweise fehlende Nutzer oder Rollen identifiziert werden.

Fehlermeldungen

Unknown username and password combination.

Mögliche Ursachen

Normalerweise tritt dieses Problem aufgrund von Beschädigungen von OpenLDAP-Daten auf. Normalerweise werden OpenLDAP-Daten nicht beschädigt. In seltenen Fällen kann es jedoch zu einer Beschädigung kommen. Dies kann an einem Ausfall der Systemfestplatte oder an Problemen mit dem Speicherplatz liegen.

Diagnose

  1. Prüfen Sie mit dem folgenden Befehl den Speicherplatz auf dem System, auf dem OpenLDAP installiert ist:
    du -m /opt
  2. Wenn der belegte Festplattenspeicher fast 100 % beträgt, ist der Grund für das Problem, dass Ihr System keinen freien Speicherplatz mehr hat.

Auflösung

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

Sobald genügend Speicherplatz vorhanden ist, können Sie eine der folgenden Lösungen verwenden, um das Problem mit beschädigten LDAP-Daten zu beheben:

  1. Stellen Sie die OpenLDAP-Daten aus der Sicherung wieder her.
  2. Bereinigen Sie die OpenLDAP-Datenbank mit den folgenden Schritten:
    1. Beenden Sie Management Server 2 und LDAP2.
    2. Stellen Sie LDAP1 aus einer VM-Sicherung (oder einer Apigee-Sicherung) wieder her.
    3. Prüfen Sie Management Server 1 auf Start und Wiederherstellung.
    4. Sobald Verwaltungsserver 1 und LDAP1 ordnungsgemäß funktionieren, installieren Sie LDAP2 neu.
    5. Richten Sie LDAP2 im Lesemodus ein, damit LDAP1 in 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 ausführliche 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 Betriebshandbuch für Apigee Private Cloud:

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 fehlerfreien 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-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. 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 es keine Datensicherung des letzten Status gibt, in dem die OpenLDAP-Daten funktioniert haben.

  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. Kopieren Sie das Sicherungsunterverzeichnis „ldap_orig/DB_CONFIG“ aus Schritt 3 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 Verwaltungsserver neu, um die Verbindungen zu OpenLDAP zu aktualisieren:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Lösung 3: OpenLDAP auf die Standardinstallation zurücksetzen

Wenn das Problem durch Lösung 2 nicht behoben wird, können Sie OpenLDAP auf die Standardinstallation zurücksetzen, wie in diesem Abschnitt beschrieben.

Vorbereitung

Für das Zurücksetzen von OpenLDAP sind die folgenden Voraussetzungen erforderlich:

  • Möglichkeit, die Einrichtung mit den Anmeldedaten des Systemadministrators und des LDAP-Roots auszuführen
  • Zugriff auf das Dienstprogramm ldapadd
  • Die gespeicherte ursprüngliche Silent-Konfigurationsdatei für den Verwaltungs-/LDAP-Knoten.

So setzen Sie OpenLDAP zurück:

  1. Installieren Sie OpenLDAP und den Verwaltungsserver neu.
    1. Halten Sie den openldap-Server an:
      apigee-service apigee-openldap stop
    2. Löschen Sie den beschädigten openldap-Datenordner:
      rm -rf /opt/apigee/data/apigee-openldap
    3. So deinstallieren Sie die Komponente openldap:
      apigee-service apigee-openldap uninstall
    4. Installieren Sie die openldap-Komponente mit derselben Konfigurationsdatei wie bei der Erstinstallation neu:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      Dabei ist configfile der Name der Konfigurationsdatei.
    5. Installieren Sie den Verwaltungsserver 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

    Durch die oben genannten Schritte 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. Sie können einer Organisation zwar orgadmin-Nutzer hinzufügen, die anderen Standardrollen existieren aber noch nicht. 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. Führen Sie nach diesem Verfahren die folgenden Schritte manuell aus:

    • Fügen Sie alle benutzerdefinierten Rollen, die vor der Beschädigung vorhanden waren, über die Benutzeroberfläche oder die Verwaltungs-API hinzu.
    • Fügen Sie den entsprechenden Nutzerrollen Nutzer hinzu.
  5. Optional: Stellen Sie die externe Authentifizierungskonfiguration auf der Seite „Verwaltung“ wieder her.

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

  6. Optional: Installieren Sie Apigee mTLS auf dem Verwaltungsknoten neu.

    Wenn Apigee mTLS bereits installiert war, folgen Sie der Installationsanleitung für Apigee mTLS, um es auf dem Verwaltungsserverknoten neu zu installieren.

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