Memecahkan Masalah OpenLDAP

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

Bagian ini memberikan informasi dan panduan tentang cara memecahkan masalah OpenLDAP.

SMTP dinonaktifkan dan pengguna perlu mereset sandi

Gejala

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

Pesan Error

Unknown username and password combination.

Kemungkinan Penyebab

Pengguna baru tidak dapat menerima email dari link “Lupa sandi Anda?” untuk menyetel sandi karena SMTP belum disiapkan.

Resolusi

Anda dapat mengatasi masalah ini dengan salah satu cara berikut:

Solusi #1: Mengonfigurasi Server SMTP

Konfigurasi Server SMTP untuk menyetel sandi baru bagi pengguna. Untuk mengetahui detail tentang cara mengonfigurasi SMTP, lihat Mengonfigurasi server SMTP Edge.

Solusi #2: Menggunakan LDAP

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

  1. Administrator organisasi yang ada harus menambahkan pengguna tertentu di UI Edge Baru (atau di UI Edge Klasik pada versi sebelumnya, seperti yang ditunjukkan pada gambar berikut):

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

    Berikut adalah contoh entri dn untuk pengguna, beserta 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 menjadi Apigee123:
    ldappasswd -x -H ldap://localhost: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 New Edge UI sebagai pengguna baru dengan sandi yang 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 Baru di DC-1 sebagai administrator organisasi, Anda dapat melihat daftar pengguna, tetapi daftar pengguna yang sama tidak muncul di UI Edge Baru di DC-2.

Pesan Error

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

Kemungkinan Penyebab

Biasanya, penyebab masalah ini adalah konfigurasi replikasi OpenLDAP yang salah, bukan penginstalan itu sendiri. Selain itu, replikasi dapat terganggu 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 -x -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -H ldap://HOST_IP:10389
  2. Periksa apakah Anda dapat terhubung ke setiap node OpenLDAP dari node OpenLDAP lainnya di port 10389. Jika telnet sudah diinstal, 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 runtime menggunakan perintah ldapsearch:
    ldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcSyncrepl=*)" olcSyncrepl
    

    Output harus berisi konfigurasi yang mirip dengan berikut ini:

    dn: olcDatabase={2}mdb,cn=config
    olcSyncrepl: {0}rid=001 provider=ldap://OTHER_LDAP_SERVER:10389/ 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 konfigurasi runtime untuk atribut olcMultiProvider (sebelumnya olcMirrorMode) menggunakan perintah ldapsearch untuk memverifikasi bahwa atribut tersebut ditetapkan ke TRUE:
    ldapsearch -o ldif-wrap=no -D cn=admin,cn=config -H ldap://:10389 -LLL -x -w LDAP_ADMIN_PASSWORD -b "cn=config" "(olcMultiProvider=*)" olcMultiProvider olcMirrorMode
    

    Outputnya akan terlihat seperti berikut ini:

    dn: olcDatabase={2}mdb,cn=config
    olcMultiProvider: TRUE
  6. Periksa aturan iptables dan wrapper tcp. Hapus aturan apa pun yang tidak mengizinkan server OpenLDAP peer 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 terhadap 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 karakter yang tidak valid dan simpan file konfigurasi.

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

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 perlu dihapus.

Diagnosis

Gunakan langkah-langkah berikut untuk mendiagnosis masalah ini:

  1. Periksa 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-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 dapat mengindikasikan masalah resource. Periksa penggunaan memori dan CPU pada sistem.
  6. Periksa versi OpenLDAP dan upgrade jika sudah lama. Periksa versi OpenLDAP yang didukung di 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 Baru. Menggunakan utilitas ldapsearch untuk mengkueri pengguna dapat menunjukkan bahwa pengguna ada di datastore LDAP, atau dapat mengidentifikasi kemungkinan pengguna atau peran yang hilang.

Pesan Error

Unknown username and password combination.

Kemungkinan Penyebab

Biasanya, masalah ini dapat diamati karena kerusakan data OpenLDAP. Biasanya, data OpenLDAP tidak rusak. Namun, jika hal ini terjadi, kerusakan dapat disebabkan oleh kegagalan disk sistem atau masalah kapasitas disk.

Diagnosis

  1. Periksa kapasitas disk pada sistem yang telah menginstal OpenLDAP menggunakan perintah di bawah:
    du -m /opt
    
  2. Jika Anda melihat kapasitas disk yang digunakan sangat mendekati 100%, hal itu menunjukkan bahwa penyebab masalah ini adalah sistem Anda kehabisan kapasitas disk.
  3. Periksa konsistensi data di seluruh node LDAP:
    1. Di setiap node LDAP, bandingkan jumlah pengguna dan peran. Jalankan perintah berikut dan bandingkan hasilnya.
      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 
      Perbedaan jumlah antara node menunjukkan kemungkinan kerusakan data.
    2. Verifikasi status replikasi LDAP. Jalankan perintah berikut di setiap node LDAP.
        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 
      Jika nilai contextCSN sama di semua node, berarti replikasi LDAP berfungsi dengan benar.

Resolusi

Jika sistem Anda kehabisan kapasitas disk atau hampir kehabisan kapasitas disk, tambahkan lebih banyak kapasitas disk untuk memastikan ketersediaan yang memadai.

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

  1. Pulihkan data OpenLDAP dari cadangan.
  2. Bersihkan database OpenLDAP menggunakan langkah-langkah berikut:
    1. Nonaktifkan Management Server 2 dan LDAP2.
    2. Pulihkan LDAP1 dari cadangan VM (atau cadangan Apigee).
    3. Periksa Management Server 1 untuk memulai dan memulihkan.
    4. Setelah Management Server 1 dan LDAP1 berfungsi dengan benar, instal ulang LDAP2 dari awal (membuat status yang benar-benar kosong).
    5. Siapkan LDAP2 dalam mode hanya baca, sehingga LDAP1 dapat mereplikasi ke LDAP2.
    6. Gunakan ldapsearch untuk memverifikasi bahwa jumlah baris di LDAP1 dan LDAP2 cocok.
    7. Mulai ulang Management Server 2 dan New Edge UI di node 2, dan pastikan keduanya berhasil dimulai.

Untuk petunjuk mendetail, lihat Issue Tracker Publik.

Solusi #1 Memulihkan data LDAP dari cadangan

Buat cadangan di node OpenLDAP yang berfungsi. Pencadangan harus dilakukan secara rutin. Lihat Panduan Operasi Apigee Private Cloud 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 move:
    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 asli:
    mkdir ldap
    
  6. Buat 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 yang valid:
    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 Bersihkan database LDAP

Langkah-langkah berikut akan menghapus database OpenLDAP untuk memulai dari awal. Solusi ini dapat digunakan jika tidak ada pencadangan data dari status terakhir saat 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 move:
    mv ldap ldap_orig
    
  4. Beralih ke pengguna apigee:
    su apigee
    
  5. Buat direktori data OpenLDAP baru dengan nama asli:
    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 Reset OpenLDAP ke penginstalan 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 kredensial LDAP root dan admin sistem.
  • Akses ke utilitas ldapadd.
  • File konfigurasi senyap asli yang disimpan untuk node LDAP/pengelolaan.

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 sebagai nama file konfigurasi.
    5. Instal ulang Server Pengelolaan menggunakan file konfigurasi asli:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configfile

    Setelah melakukan langkah-langkah ini, panggilan Management API akan berfungsi kembali menggunakan akun sysadmin saja. Namun, Anda tidak dapat login ke UI Edge Baru, dan panggilan Management API dengan pengguna lain tidak akan berfungsi.

  2. Tambahkan entri openldap yang tidak ada untuk organisasi yang ada sebelum kerusakan.

    Setelah langkah di atas selesai, openldap akan kehilangan entri untuk organisasi yang ada saat terjadi kerusakan. Sebagian besar data organisasi yang sebenarnya, seperti paket proxy, disimpan di Cassandra atau Zookeeper dan tidak hilang. Namun, menjalankan skrip setup-org tidak akan otomatis menambahkan data openldap untuk organisasi yang sudah ada di Cassandra, dan Zookeeper. Data ini harus ditambahkan secara manual untuk setiap organisasi yang ada sebelum kerusakan menggunakan langkah-langkah berikut:

    1. Buat file ldif bernama missingLDAP.ldif dengan konten berikut:
      # 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 ingin Anda buat ulang.

    2. Tambahkan entitas LDAP yang tidak ada menggunakan perintah berikut:
      ldapadd -x -w "OPENLDAP_ROOT_PASSWORD" -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 ada, dan izin orgadmin untuk organisasi tersebut. Ulangi langkah-langkah tersebut untuk setiap organisasi yang perlu dibuat ulang. Pada tahap ini, Anda dapat menambahkan pengguna orgadmin ke organisasi, tetapi peran default lainnya belum ada, jadi Anda perlu menambahkannya menggunakan langkah berikutnya.

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

    Dengan menggunakan file konfigurasi yang sama dengan yang awalnya digunakan untuk menyiapkan 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 melakukan hal berikut secara manual:

    • Tambahkan peran khusus yang ada sebelum kerusakan menggunakan UI Edge Baru atau Management API,
    • Tambahkan pengguna ke peran pengguna yang relevan.
  5. (Opsional) Buat Ulang Konfigurasi Autentikasi Eksternal di Management.

    Pulihkan /opt/apigee/customer/application/management-server.properties jika konfigurasi tidak berubah. Karena UI Edge Baru belum diinstal ulang, /opt/apigee/customer/application/management-ui.properties tetap sama setelah kredensial untuk akun sysadmin dipulihkan dengan penginstalan baru Server Pengelolaan.

  6. (Opsional) Instal ulang mTLS Apigee di node Management.

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

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