Rozwiązywanie problemów z OpenLDAP

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Ta sekcja zawiera informacje i wskazówki dotyczące rozwiązywania problemów z OpenLDAP.

Protokół SMTP jest wyłączony, a użytkownicy muszą zresetować hasło

Krótki opis problemu

Gdy protokół SMTP nie jest skonfigurowany w interfejsie użytkownika Edge, nowi użytkownicy dodani do Edge muszą ustawić hasło.

Komunikaty o błędach

Unknown username and password combination.

Możliwe przyczyny

Nowi użytkownicy nie mogą otrzymywać e-maili z linku „Nie pamiętasz hasła?”, ponieważ nie skonfigurowano SMTP.

Rozdzielczość

Możesz rozwiązać ten problem na jeden z tych sposobów:

Rozwiązanie 1. Skonfiguruj serwer SMTP

Skonfiguruj serwer SMTP, aby ustawić nowe hasło dla użytkownika, korzystając z instrukcji dostępnych w dokumentacji.

Rozwiązanie 2. Używanie LDAP

Jeśli nie możesz skonfigurować serwera SMTP, użyj poniższych poleceń LDAP, aby ustawić nowe hasło użytkownika:

  1. Istniejący administrator organizacji musi dodać konkretnego użytkownika w interfejsie Edge, jak pokazano poniżej:

  2. Za pomocą polecenia ldapsearch znajdź nazwę wyróżniającą użytkownika (dn) i przekieruj dane wyjściowe do pliku:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    Oto przykład wpisu dn użytkownika wraz z atrybutami tego użytkownika:

    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. Otwórz plik ldap.txt i znajdź nazwę nn nowego użytkownika dodanego na podstawie atrybutu adresu e-mail nowego użytkownika.
  4. Wykonaj polecenie ldappassword, aby dodać hasło nowego użytkownika przy użyciu jego identyfikatora dn. W tym przykładzie ustawiasz hasło użytkownika na 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. Zaloguj się w interfejsie Edge jako nowy użytkownik z hasłem zdefiniowanym w poprzednim kroku. Użytkownik może ustawić nowe hasło po zalogowaniu się w interfejsie.

LDAP nie replikuje

Krótki opis problemu

Wiele instalacji Edge ma wiele centrów danych, na przykład DC-1 i DC-2. Gdy jako administrator organizacji logujesz się w interfejsie Edge w DC-1, możesz wyświetlić listę użytkowników, ale ta sama lista nie jest widoczna w interfejsie Edge w DC-2.

Komunikaty o błędach

Nie pojawiają się żadne błędy, a interfejs Edge po prostu nie wyświetla listy użytkowników, którzy powinni zostać zreplikowani na wszystkich serwerach OpenLDAP.

Możliwe przyczyny

Zwykle przyczyną tego problemu jest nieprawidłowo skonfigurowana konfiguracja replikacji OpenLDAP, a nie sama instalacja. Ponadto replikacja może zostać przerwana, jeśli sieć między serwerami OpenLDAP nie zezwala na ruch na porcie 10389.

Diagnostyka

Aby zdiagnozować problem, wykonaj te czynności:

  1. Sprawdź, czy narzędzie ldapsearch zwraca dane z każdego serwera OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. Sprawdź, czy możesz połączyć się z każdym węzłem OpenLDAP z innych węzłów OpenLDAP na porcie 10389. Jeśli masz zainstalowany telnet, użyj tego polecenia:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Jeśli protokół telnet jest niedostępny, użyj narzędzia netcat, aby sprawdzić połączenie w następujący sposób:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Sprawdź konfigurację replikacji w tym pliku:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    Plik powinien zawierać następującą konfigurację:

    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. Znajdź też w tym samym pliku wartość atrybutu olcMirrorMode. Powinien mieć wartość PRAWDA:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Sprawdź, czy nie ma reguł iptables i opakowania tcp. Usuń wszystkie reguły, które nie zezwalają na komunikację równorzędną serwerów OpenLDAP. Skontaktuj się z administratorem sieci, by odpowiednio ustawić reguły.
  7. Upewnij się, że hasło systemowe OpenLDAP jest takie samo w każdym węźle OpenLDAP.
  8. Sprawdź, czy w plikach konfiguracji ldif nie ma ukrytych znaków, które są używane do konfigurowania replikacji OpenLDAP w N-Way, uruchamiając dos2unix względem plików ldif, które zostały utworzone w celu zaktualizowania konfiguracji. Zwykle plik ldif zawierający nieprawidłowe znaki powoduje nieuruchomienie polecenia ldapmodify, więc replikacja może nie zostać skonfigurowana. Usuń wszystkie nieprawidłowe znaki i zapisz pliki konfiguracji.

Jeśli problem będzie się powtarzać, skontaktuj się z zespołem pomocy Apigee, aby uzyskać pomoc w konfigurowaniu replikacji N-Way OpenLDAP.

Nie udało się uruchomić OpenLDAP

Krótki opis problemu

OpenLDAP nie uruchamia się.

Komunikaty o błędach

SLAPD Dead But Pid File Exists

Możliwe przyczyny

Przyczyną tego problemu jest zwykle plik blokady, który pozostaje w systemie plików i należy go usunąć.

Diagnostyka

Aby zdiagnozować ten problem:

  1. Sprawdź, czy w tej lokalizacji nie ma blokady procesu lub pliku pid OpenLDAP:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. Jeśli masz plik blokady i pid, usuń go i spróbuj ponownie uruchomić plik openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. Jeśli rozpocznie się proces zatwierdzania OpenLDAP, pomiń poniższe kroki.
  4. Jeśli proces notowania OpenLDAP się nie uruchomi, spróbuj uruchomić slapd w trybie debugowania i poszukaj błędów:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Błędy mogą wskazywać na problemy z zasobami. Sprawdź wykorzystanie pamięci i procesora w systemie.
  6. Sprawdź wersję OpenLDAP i uaktualnij, jeśli jest stara. Sprawdź obsługiwane wersje OpenLDAP w dokumencie Obsługiwane oprogramowanie.
    slapd -V
    
  7. Użyj Strace do rozwiązywania problemów z procesem slapania i przekazania danych wyjściowych Strace do działu pomocy Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Uszkodzenie danych OpenLDAP

Krótki opis problemu

Użytkownicy nie będą już mogli uruchamiać wywołań zarządzania ani logować się w interfejsie Edge. Korzystanie z narzędzia ldapsearch do odpytywania użytkowników może sprawdzić, czy użytkownik istnieje w magazynie danych LDAP, albo zidentyfikować ewentualne brakujące konta użytkowników czy role.

Komunikaty o błędach

Unknown username and password combination.

Możliwe przyczyny

Ten problem może być zwykle spowodowany uszkodzeniem danych OpenLDAP. Zwykle dane OpenLDAP nie zostają uszkodzone. W rzadkich przypadkach uszkodzenie może być jednak spowodowane awariami dysku systemu lub problemami z miejscem na dysku.

Diagnostyka

  1. Sprawdź ilość miejsca na dysku w systemie, w którym zainstalowano OpenLDAP za pomocą tego polecenia:
    du -m /opt
    
  2. Jeśli zauważysz, że wykorzystywane miejsce na dysku jest bliskie 100%, oznacza to, że przyczyną problemu jest zbyt mało miejsca na dysku.

Rozdzielczość

Jeśli w systemie skończyło się miejsce na dysku lub jest już bliskie wyczerpania, dodaj go więcej, aby mieć pewność, że jest już wystarczająco dużo miejsca.

Gdy masz wystarczającą ilość miejsca na dysku, spróbuj rozwiązać problem z uszkodzeniem danych LDAP, korzystając z jednego z tych rozwiązań:

  1. Przywróć dane OpenLDAP z kopii zapasowej.
  2. Wyczyść bazę danych OpenLDAP.

Rozwiązanie nr 1: przywróć dane LDAP z kopii zapasowej

Utwórz kopię zapasową w działającym węźle OpenLDAP. Kopię zapasową należy wykonywać regularnie. Sprawdzone metody dotyczące kopii zapasowych znajdziesz w przewodniku po operacji w chmurze Apigee:

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

Aby przywrócić dane OpenLDAP z prawidłowej kopii zapasowej, wykonaj czynności opisane poniżej.

  1. Zatrzymaj węzeł OpenLDAP, którego dane mają zostać przywrócone:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Zmień katalog na katalog danych OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Utwórz kopię zapasową istniejących danych OpenLDAP przy użyciu polecenia przenoszenia:
    mv ldap ldap_orig
    
  4. Przełącz na użytkownika Apigee:
    su apigee
    
  5. W katalogu /opt/apigee/data/apigee-openldap utwórz nowy katalog danych OpenLDAP o oryginalnej nazwie:
    mkdir ldap
    
  6. Skopiuj kopię zapasową podkatalogu ldap_orig/DB_CONFIG z kroku 3 i skopiuj ją do katalogu openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Aby przywrócić dane z kopii zapasowej wykonanej przy użyciu slapcat, za pomocą narzędzia slapadd zaimportuj element ldif, który zawiera prawidłowe dane:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Uruchom proces OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Rozwiązanie nr 2 Wyczyść bazę danych LDAP

Wykonując poniższe czynności, wyczyścisz bazę danych OpenLDAP, aby rozpocząć od nowa. Tego rozwiązania można użyć, jeśli nie ma kopii zapasowej danych w ostatnim stanie, w którym działały dane OpenLDAP.

  1. Zatrzymaj usługę OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Zmień katalog na katalog danych OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Utwórz kopię zapasową istniejących danych OpenLDAP przy użyciu polecenia przenoszenia:
    mv ldap ldap_orig
    
  4. Przełącz na użytkownika Apigee:
    su apigee
    
  5. Utwórz nowy katalog danych OpenLDAP o oryginalnej nazwie:
    mkdir ldap
    
  6. Pobierz podkatalog ldap_orig/DB_CONFIG z kroku 3 i skopiuj go do katalogu openldap:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Ponownie uruchom proces OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Uruchom ponownie serwer zarządzania, aby wymusić odświeżenie połączeń z OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Rozwiązanie nr 3 : zresetuj OpenLDAP do instalacji podstawowej

Jeśli rozwiązanie 2 nie rozwiąże problemu, możesz zresetować OpenLDAP do instalacji podstawowej, zgodnie z opisem w tej sekcji.

Wymagania wstępne

Aby zresetować OpenLDAP, musisz spełnić następujące wymagania wstępne:

  • możliwość uruchamiania konfiguracji za pomocą danych logowania administratora systemu i danych logowania głównego LDAP,
  • Dostęp do narzędzia ldapadd.
  • Zapisany oryginalny plik cichej konfiguracji dla węzła zarządzania/LDAP.

Aby zresetować OpenLDAP, wykonaj te czynności:

  1. Ponownie zainstaluj OpenLDAP i serwer zarządzania.
    1. Zatrzymaj serwer openldap:
      apigee-service apigee-openldap stop
    2. Usuń uszkodzony folder danych openldap:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Odinstaluj komponent openldap:
      apigee-service apigee-openldap uninstall
    4. Zainstaluj ponownie komponent openldap przy użyciu tego samego pliku konfiguracji, który został użyty podczas pierwszej instalacji:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      , gdzie configfile to nazwa pliku konfiguracji.
    5. Ponownie zainstaluj serwer zarządzania przy użyciu oryginalnego pliku konfiguracji:
      /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: @@@

      gdzie orgname to organizacja, którą próbujesz odtworzyć.

    2. Dodaj brakujące encje LDAP za pomocą tego polecenia:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Wykonując powyższe czynności, utworzysz brakujące wpisy dla istniejącej organizacji i uprawnienia orgadmin dla tej organizacji. Powtórz te czynności w przypadku każdej organizacji, którą chcesz odtworzyć. W tym momencie możesz dodać do organizacji użytkowników (orgadmin), ale inne domyślne role jeszcze nie istnieją, więc musisz ich dodać w następnym kroku.

  3. Dodaj do istniejącej organizacji brakujące domyślne role i uprawnienia.

    Przy użyciu tego samego pliku konfiguracji, który został użyty do skonfigurowania dowolnej z istniejących organizacji, uruchom to polecenie:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Po wykonaniu tej procedury musisz ręcznie:

    • Za pomocą interfejsu użytkownika lub interfejsu API zarządzania dodaj wszelkie role niestandardowe, które istniały przed uszkodzeniem.
    • Dodaj wszystkich użytkowników do odpowiednich ról.
  5. (Opcjonalnie) Ponownie zdefiniuj konfigurację uwierzytelniania zewnętrznego w funkcjach zarządzania.

    Jeśli konfiguracja się nie zmieniła, przywróć /opt/apigee/customer/application/management-server.properties. Ponieważ interfejs użytkownika nie został ponownie zainstalowany, /opt/apigee/customer/application/ui.properties powinien pozostać taki sam, ponieważ dane logowania administratora sysadmin zostały przywrócone z nową instalacją zarządzania.

  6. (Opcjonalnie) Ponownie zainstaluj Apigee mTLS w węźle zarządzania.

    Jeśli Apigee mTLS zostało wcześniej zainstalowane, postępuj zgodnie z instrukcjami instalacji Apigee mTLS, aby ponownie zainstalować go w węźle serwera zarządzania.

Jeśli problem będzie nadal występował, skontaktuj się z zespołem pomocy Apigee.