Memecahkan Masalah OpenLDAP

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Bagian ini memberikan informasi dan panduan untuk memecahkan masalah OpenLDAP.

SMTP dinonaktifkan dan pengguna perlu mereset sandi

Gejala

Jika SMTP tidak disiapkan di UI Edge, pengguna baru yang ditambahkan ke Edge memerlukan cara untuk menetapkan sandi.

Pesan Error

Unknown username and password combination.

Kemungkinan Penyebab

Pengguna baru tidak bisa mendapatkan email dari link “Lupa sandi?” untuk menetapkan sandi karena SMTP tidak disiapkan.

Resolusi

Anda dapat mengatasi masalah ini dengan salah satu cara berikut:

Solusi #1: Konfigurasikan Server SMTP

Konfigurasikan Server SMTP untuk menetapkan sandi baru bagi pengguna menggunakan petunjuk yang diberikan dalam dokumentasi.

Solusi #2: Menggunakan LDAP

Jika Anda tidak dapat mengonfigurasi server SMTP, gunakan perintah LDAP di bawah ini untuk menetapkan sandi baru bagi pengguna:

  1. Admin org yang ada perlu menambahkan pengguna tertentu melalui UI Edge seperti yang ditunjukkan di bawah ini:

  2. Gunakan perintah ldapsearch untuk menemukan nama yang dibedakan (dn) pengguna dan mengalihkan output ke file:
    ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
    

    Berikut adalah contoh entri dn untuk pengguna, bersama dengan atribut untuk pengguna:

    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. Buka file ldap.txt dan temukan dn pengguna baru yang telah ditambahkan berdasarkan atribut email pengguna baru.
  4. Jalankan perintah ldappassword untuk menambahkan sandi bagi pengguna baru menggunakan dn-nya. Dalam contoh ini, Anda menyetel sandi pengguna ke 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. Login ke UI Edge sebagai pengguna baru dengan sandi yang telah ditentukan di langkah sebelumnya. Pengguna dapat menetapkan sandi baru setelah login ke UI.

LDAP tidak Mereplikasi

Gejala

Banyak penginstalan Edge memiliki beberapa pusat data, misalnya DC-1 dan DC-2. Saat login ke UI Edge di DC-1 sebagai admin org, Anda dapat melihat daftar pengguna, tetapi daftar pengguna yang sama tidak muncul di UI Edge di DC-2.

Pesan Error

Tidak ada error yang muncul, UI Edge hanya tidak menampilkan daftar pengguna yang seharusnya direplikasi di semua server OpenLDAP.

Kemungkinan Penyebab

Biasanya penyebab masalah ini adalah konfigurasi replikasi OpenLDAP yang salah dikonfigurasi, bukan penginstalan itu sendiri. Selain itu, replikasi dapat rusak jika jaringan antara server OpenLDAP tidak mengizinkan traffic di port 10389.

Diagnosis

Gunakan langkah-langkah berikut untuk mendiagnosis masalah:

  1. Periksa apakah ldapsearch menampilkan data dari setiap server OpenLDAP:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
    
  2. Periksa apakah Anda dapat tersambung ke setiap node OpenLDAP dari node OpenLDAP lainnya di port 10389. Jika telnet terinstal, gunakan perintah berikut:
    telnet <OpenLDAP_Peer_IP> 10389
    
  3. Jika telnet tidak tersedia, gunakan netcat untuk memeriksa konektivitas sebagai berikut:

    nc -vz <OpenLDAP_Peer_IP> 10389
    
  4. Periksa konfigurasi replikasi dalam file berikut:
    /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    

    File tersebut harus berisi konfigurasi seperti ini:

    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. Periksa juga file yang sama untuk nilai atribut olcMirrorMode. Ini harus ditetapkan ke nilai TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Periksa aturan wrapper iptables dan tcp. Hapus aturan apa pun yang tidak memungkinkan server OpenLDAP peer untuk berkomunikasi satu sama lain. Bekerja samalah dengan administrator jaringan Anda untuk menetapkan aturan dengan tepat.
  7. Pastikan sandi sistem OpenLDAP sama di setiap node OpenLDAP.
  8. Periksa karakter tersembunyi dalam file konfigurasi ldif yang digunakan untuk mengonfigurasi replikasi OpenLDAP N-Way dengan menjalankan dos2unix pada file ldif yang telah dibuat untuk memperbarui konfigurasi. Biasanya, file ldif yang memiliki karakter buruk akan menyebabkan perintah ldapmodify gagal dijalankan, sehingga replikasi mungkin tidak disiapkan. Hapus semua karakter yang buruk dan simpan file konfigurasi.

Jika masalah berlanjut, hubungi Dukungan Apigee untuk mendapatkan bantuan terkait penyiapan replikasi OpenLDAP N-Way.

Tidak dapat memulai OpenLDAP

Gejala

OpenLDAP tidak dimulai.

Pesan Error

SLAPD Dead But Pid File Exists

Kemungkinan Penyebab

Masalah ini biasanya disebabkan oleh file kunci yang tertinggal di sistem file dan harus dihapus.

Diagnosis

Gunakan langkah-langkah berikut untuk mendiagnosis masalah ini:

  1. Periksa apakah ada file pid atau kunci proses slapd OpenLDAP di lokasi berikut:
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  2. Hapus file kunci dan pid, jika ditemukan, lalu coba mulai ulang openldap.
    rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
    Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
    
  3. Jika proses slapd OpenLDAP dimulai, lewati langkah di bawah.
  4. Jika proses slapd OpenLDAP tidak dimulai, coba jalankan slapd dalam mode debug dan cari error:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Error mungkin mengarah ke masalah resource. Memeriksa pemakaian memori dan CPU pada sistem.
  6. Periksa versi OpenLDAP dan tingkatkan versi jika sudah lama. Periksa versi OpenLDAP yang didukung di dokumen Software yang Didukung.
    slapd -V
    
  7. Gunakan strace untuk memecahkan masalah proses slapd, dan untuk memberikan output strace ke Dukungan Apigee:
    strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
    

Kerusakan Data OpenLDAP

Gejala

Pengguna tidak lagi dapat menjalankan panggilan pengelolaan atau login ke UI Edge. Menggunakan utilitas ldapsearch untuk mengkueri pengguna dapat menunjukkan bahwa pengguna ada di datastore LDAP, atau dapat mengidentifikasi kemungkinan pengguna atau peran yang tidak ada.

Pesan Error

Unknown username and password combination.

Kemungkinan Penyebab

Biasanya, masalah ini muncul karena kerusakan data OpenLDAP. Biasanya, data OpenLDAP tidak rusak. Namun, dalam kasus yang jarang terjadi, kerusakan dapat disebabkan oleh kegagalan disk sistem atau masalah ruang disk.

Diagnosis

  1. Periksa kapasitas disk pada sistem tempat OpenLDAP terinstal menggunakan perintah di bawah:
    du -m /opt
    
  2. Jika Anda melihat kapasitas disk yang digunakan hampir 100%, berarti bahwa penyebab masalah ini adalah sistem Anda kehabisan kapasitas disk.

Resolusi

Jika sistem Anda kehabisan ruang disk atau hampir kehabisan ruang disk, tambahkan kapasitas disk yang lebih besar untuk memastikan Anda memiliki ruang disk yang cukup.

Setelah Anda memiliki kapasitas disk yang cukup, gunakan salah satu solusi di bawah ini untuk mengatasi masalah kerusakan data LDAP:

  1. Pulihkan data OpenLDAP dari cadangan.
  2. Bersihkan {i>database<i} OpenLDAP.

Solusi #1 Memulihkan data LDAP dari cadangan

Pada {i>node<i} OpenLDAP yang berfungsi, buatlah cadangan. Pencadangan harus dilakukan secara teratur. Lihat Panduan Operasi Private Cloud Apigee untuk mengetahui praktik terbaik terkait pencadangan:

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

Langkah-langkah berikut dapat digunakan untuk memulihkan data OpenLDAP dari cadangan yang baik.

  1. Hentikan node OpenLDAP yang datanya perlu dipulihkan:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Ubah direktori ke direktori data OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Cadangkan data OpenLDAP yang ada menggunakan perintah pemindahan:
    mv ldap ldap_orig
    
  4. Beralih ke pengguna apigee:
    su apigee
    
  5. Dari direktori /opt/apigee/data/apigee-openldap, buat direktori data OpenLDAP baru dengan nama aslinya:
    mkdir ldap
    
  6. Ambil cadangan subdirektori ldap_orig/DB_CONFIG dari langkah 3, lalu salin ke direktori openldap.
    cp ldap_orig/DB_CONFIG ldap
    
  7. Untuk memulihkan data dari cadangan yang diambil dengan slapcat, gunakan slapadd untuk mengimpor ldif yang berisi data baik:
    slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
    
  8. Mulai proses OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    

Solusi #2 Membersihkan database LDAP

Langkah-langkah berikut ini akan menghapus total {i>database<i} OpenLDAP untuk memberikan awal yang baru. Solusi ini dapat digunakan jika tidak ada cadangan data di status terakhir tempat data OpenLDAP berfungsi.

  1. Hentikan layanan OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
    
  2. Ubah direktori ke direktori data OpenLDAP:
    cd /opt/apigee/data/apigee-openldap
    
  3. Cadangkan data OpenLDAP yang ada menggunakan perintah pemindahan:
    mv ldap ldap_orig
    
  4. Beralih ke pengguna apigee:
    su apigee
    
  5. Buat direktori data OpenLDAP baru dengan nama aslinya:
    mkdir ldap
    
  6. Ambil subdirektori ldap_orig/DB_CONFIG cadangan dari langkah 3, lalu salin ke direktori openldap:
    cp ldap_orig/DB_CONFIG ldap
    
  7. Mulai ulang proses OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
    
  8. Mulai ulang Server Pengelolaan untuk memaksa pemuatan ulang koneksi ke OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    

Solusi #3 Atur ulang OpenLDAP ke instalasi dasar

Jika Solusi #2 tidak menyelesaikan masalah, Anda dapat mereset OpenLDAP ke penginstalan dasar, seperti yang dijelaskan di bagian ini.

Prasyarat

Untuk mereset OpenLDAP, Anda memerlukan prasyarat berikut:

  • Kemampuan untuk menjalankan penyiapan dengan admin sistem dan kredensial LDAP root.
  • Akses ke utilitas ldapadd.
  • File konfigurasi senyap asli yang disimpan untuk node manajemen/LDAP.

Untuk mereset OpenLDAP, lakukan langkah-langkah berikut:

  1. Instal ulang OpenLDAP dan Server Pengelolaan.
    1. Hentikan server openldap:
      apigee-service apigee-openldap stop
    2. Hapus folder data openldap yang rusak:
      rm -rf /opt/apigee/data/apigee-openldap
    3. Uninstal komponen openldap:
      apigee-service apigee-openldap uninstall
    4. Instal ulang komponen openldap menggunakan file konfigurasi yang sama dengan yang digunakan untuk penginstalan awal:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f configfile
      dengan configfile adalah nama file konfigurasi.
    5. Instal ulang Management Server menggunakan file konfigurasi asli:
      /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: @@@

      dengan orgname adalah organisasi yang Anda coba buat ulang.

    2. Tambahkan entitas LDAP yang hilang menggunakan perintah berikut:
      ldapadd -x -w  -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -f missingLDAP.ldif

    Langkah-langkah di atas akan membuat entri yang tidak ada untuk organisasi yang sudah ada, dan izin orgadmin untuk organisasi tersebut. Ulangi langkah-langkah tersebut untuk setiap organisasi yang perlu dibuat ulang. Pada tahap ini, Anda dapat menambahkan orgadmin pengguna ke organisasi, tetapi peran default lainnya belum ada, jadi Anda perlu menambahkannya di langkah berikutnya.

  3. Tambahkan peran dan izin default yang tidak ada ke organisasi yang sudah ada.

    Dengan menggunakan file konfigurasi yang sama yang awalnya digunakan untuk menyiapkan salah satu organisasi yang ada, jalankan perintah berikut:

    /opt/apigee/apigee-service/bin/apigee-service apigee-provision create-roles -f configfile
  4. Setelah mengikuti prosedur ini, Anda harus secara manual:

    • Tambahkan peran khusus yang ada sebelum kerusakan menggunakan UI atau Management API,
    • Tambahkan pengguna ke peran pengguna yang relevan.
  5. (Opsional) Membuat Kembali Konfigurasi Autentikasi Eksternal di Pengelolaan.

    Pulihkan /opt/apigee/customer/application/management-server.properties jika konfigurasi belum berubah. Karena UI belum diinstal ulang, /opt/apigee/customer/application/ui.properties akan tetap sama mengingat kredensial untuk sysadmin telah dipulihkan dengan penginstalan pengelolaan yang baru.

  6. (Opsional) Instal ulang Apigee mTLS pada node Pengelolaan.

    Jika Apigee mTLS telah diinstal sebelumnya, ikuti Panduan Penginstalan Apigee mTLS untuk menginstal ulang pada node server pengelolaan.

Jika masalah berlanjut, hubungi Dukungan Apigee untuk mendapatkan bantuan lebih lanjut.