Fehlerbehebung bei OpenLDAP-Problemen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Dieser Abschnitt enthält 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-Benutzeroberfläche nicht eingerichtet ist, benötigen neue in Edge hinzugefügte Nutzer 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 haben folgende Möglichkeiten, dieses Problem zu beheben:

Lösung 1: SMTP-Server konfigurieren

Konfigurieren Sie den SMTP-Server so, dass er ein neues Passwort für den Nutzer festlegt. 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 bestehender Organisationsadministrator muss den bestimmten Nutzer über die Edge-Benutzeroberfläche hinzufügen, wie unten gezeigt:

  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 sehen Sie ein Beispiel für einen dn-Eintrag für einen Nutzer zusammen mit den Attributen für diesen 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 mit seinem 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 bei der Edge-Benutzeroberfläche als neuer Benutzer mit dem im vorherigen Schritt definierten Passwort an. Der Nutzer kann ein neues Passwort festlegen, sobald er bei der Benutzeroberfläche angemeldet ist.

LDAP repliziert nicht

Symptom

Viele Edge-Installationen haben mehrere Rechenzentren, z. B. DC-1 und DC-2. Wenn Sie sich als Organisationsadministrator bei der Edge-Benutzeroberfläche in DC-1 anmelden, können Sie die Liste der Nutzer ansehen, aber dieselbe Nutzerliste wird 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 dies auf eine falsch konfigurierte OpenLDAP-Replikationskonfiguration zurückzuführen, nicht auf 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

Gehen Sie wie folgt vor, 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. Überprüfen Sie, ob Sie von den anderen OpenLDAP-Knoten über Port 10389 aus eine Verbindung zu jedem 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, prüfen Sie die Konnektivität mit netcat wie folgt:

    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. Überprüfen Sie dieselbe Datei auch auf den Wert des Attributs olcMirrorMode. Er sollte auf den Wert TRUE festgelegt werden:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Suchen Sie nach iptables- und tcp-Wrapper-Regeln. Entfernen Sie alle Regeln, die eine Kommunikation zwischen den Peer-OpenLDAP-Servern verhindern. Wenden Sie sich an Ihren Netzwerkadministrator, um die Regeln entsprechend festzulegen.
  7. Das OpenLDAP-Systempasswort muss auf jedem OpenLDAP-Knoten identisch sein.
  8. Suchen Sie in den ldif-Konfigurationsdateien, die zum Konfigurieren der n-Wege-OpenLDAP-Replikation verwendet werden, nach versteckten Zeichen. Führen Sie dazu dos2unix für die ldif-Dateien aus, die zum Aktualisieren der Konfiguration erstellt wurden. In der Regel führt eine ldif-Datei mit fehlerhaften Zeichen dazu, dass der Befehl „ldapmodify“ nicht ausgeführt werden kann und die Replikation möglicherweise nicht eingerichtet wird. Entfernen Sie alle unzulässigen Zeichen und speichern Sie die Konfigurationsdateien.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee-Support, um Unterstützung beim Einrichten 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

Gehen Sie so vor, um das Problem zu diagnostizieren:

  1. Suchen Sie am folgenden Speicherort nach einer Slapd-Prozesssperre oder einer PID-Datei für OpenLDAP:
    /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 sie gefunden wird, 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 startet, überspringen Sie die folgenden Schritte.
  4. Wenn der OpenLDAP-Slapd-Prozess nicht gestartet wird, führen Sie Slapd im Debug-Modus aus und suchen Sie nach Fehlern:
    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, falls sie veraltet ist. Die unterstützten Versionen von OpenLDAP finden Sie im Dokument Unterstützte Software.
    slapd -V
    
  7. Verwenden Sie strace, um Fehler in Slaped-Prozessen zu beheben und eine Strace-Ausgabe für den Apigee-Support bereitzustellen:
    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

Benutzer können keine Verwaltungsaufrufe mehr ausführen oder sich bei der Edge-Benutzeroberfläche anmelden. Wenn Sie Nutzer mit dem Dienstprogramm ldapsearch abfragen, kann dies darauf hinweisen, 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

Dieses Problem tritt normalerweise auf, wenn OpenLDAP-Daten beschädigt wurden. In der Regel werden OpenLDAP-Daten nicht beschädigt. In dem seltenen Fall, dass dies der Fall ist, könnte die Beschädigung durch einen Fehler des Systemlaufwerks oder durch Speicherplatzprobleme verursacht werden.

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 Speicherplatz fast 100 % beträgt, weist dies darauf hin, dass der Speicherplatz auf Ihrem System knapp wird.

Auflösung

Wenn auf Ihrem System der Speicherplatz knapp wird oder fast aufgebraucht ist, sollten Sie mehr Speicherplatz hinzufügen, damit genügend Speicherplatz vorhanden ist.

Sobald genügend Speicherplatz vorhanden ist, versuchen Sie, das Problem mit der Beschädigung von LDAP-Daten mithilfe einer der folgenden Lösungen zu beheben:

  1. Stellen Sie die OpenLDAP-Daten aus der Sicherung wieder her.
  2. Bereinigen Sie die OpenLDAP-Datenbank.

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

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

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. Ändern Sie das Verzeichnis in das OpenLDAP-Datenverzeichnis:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sichern Sie die vorhandenen OpenLDAP-Daten mit dem Befehl zum Verschieben:
    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 die Sicherung des Unterverzeichnisses ldap_orig/DB_CONFIG aus Schritt 3 und kopieren Sie diese 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 mit „slapadd“ die ldif-Datei, die die korrekten Daten enthält:
    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 Neuanfang zu ermöglichen. Diese Lösung kann verwendet werden, wenn keine Datensicherung des letzten Status, in dem die OpenLDAP-Daten funktioniert haben, vorhanden ist.

  1. Beenden Sie den OpenLDAP-Dienst:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Ändern Sie das Verzeichnis in das OpenLDAP-Datenverzeichnis:
    cd /opt/apigee/data/apigee-openldap
    
  3. Sichern Sie die vorhandenen OpenLDAP-Daten mit dem Befehl zum Verschieben:
    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 Sicherungsverzeichnis „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 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 Basisinstallation zurücksetzen

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

Voraussetzungen

Zum Zurücksetzen von OpenLDAP müssen die folgenden Voraussetzungen erfüllt sein:

  • Die Einrichtung kann mit Systemadministrator- und Root-LDAP-Anmeldedaten ausgeführt werden.
  • Zugriff auf Dienstprogramm ldapadd.
  • Die gespeicherte ursprüngliche stille Konfigurationsdatei für den Verwaltungs-/LDAP-Knoten.

So setzen Sie OpenLDAP zurück:

  1. Installieren Sie OpenLDAP und den Verwaltungsserver 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 Komponente openldap noch einmal mit derselben Konfigurationsdatei, die für die Erstinstallation verwendet wurde:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      , wobei configfile der Name der Konfigurationsdatei ist.
    5. Installieren Sie 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 den folgenden Befehl aus. Verwenden Sie dabei dieselbe Konfigurationsdatei, die ursprünglich zum Einrichten einer der vorhandenen Organisationen verwendet wurde:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Anschließend müssen Sie Folgendes manuell tun:

    • Fügen Sie mithilfe der UI oder Management API alle benutzerdefinierten Rollen hinzu, die vor der Beschädigung vorhanden waren.
    • Fügen Sie den entsprechenden Nutzerrollen die gewünschten Nutzer hinzu.
  5. (Optional) Externe Authentifizierungskonfiguration für die Verwaltung 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 unverändert bleiben, da die Anmeldedaten für den Systemadministrator bei der Installation der Verwaltung wiederhergestellt wurden.

  6. (Optional) Installieren Sie Apigee mTLS neu auf dem Verwaltungsknoten.

    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 an den Apigee-Support, um weitere Unterstützung zu erhalten.