Memecahkan Masalah OpenLDAP

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

Bagian ini memberikan informasi dan panduan tentang pemecahan 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 dapat menerima 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: Mengonfigurasi 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 untuk menetapkan sandi baru bagi pengguna:

  1. Admin organisasi yang ada harus menambahkan pengguna tertentu melalui UI Edge seperti yang ditunjukkan di bawah:

  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 -h localhost -p 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 menetapkan 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 ditentukan pada langkah sebelumnya. Pengguna dapat menetapkan sandi baru setelah login ke UI.

LDAP Tidak Direplikasi

Gejala

Banyak penginstalan Edge memiliki beberapa pusat data, misalnya DC-1 dan DC-2. Saat logging ke UI Edge di DC-1 sebagai admin organisasi, 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 penginstalannya 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 terhubung ke setiap node OpenLDAP dari node OpenLDAP lainnya di port 10389. Jika telnet 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 di 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. Nilai tersebut harus ditetapkan ke TRUE:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    
  6. Periksa aturan iptables dan tcp wrapper. Hapus aturan yang tidak mengizinkan server OpenLDAP peer berkomunikasi satu sama lain. Bekerja sama dengan administrator jaringan Anda untuk menetapkan aturan yang sesuai.
  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 buruk dan simpan file konfigurasi.

Jika masalah berlanjut, hubungi Dukungan Apigee untuk mendapatkan bantuan dalam menyiapkan 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 perlu dihapus.

Diagnosis

Gunakan langkah-langkah berikut untuk mendiagnosis masalah ini:

  1. Periksa file kunci atau pid 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 mungkin mengarah ke masalah resource. Periksa penggunaan memori dan CPU di sistem.
  6. Periksa versi OpenLDAP dan upgrade jika sudah lama. Periksa versi OpenLDAP yang didukung dalam 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 dapat lagi menjalankan panggilan pengelolaan atau login ke UI Edge. Menggunakan utilitas ldapsearch untuk membuat kueri 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 dapat diamati karena kerusakan data OpenLDAP. Biasanya, data OpenLDAP tidak rusak. Namun, jika terjadi, kerusakan dapat disebabkan oleh kegagalan disk sistem atau masalah ruang disk.

Diagnosis

  1. Periksa ruang disk di sistem yang menginstal OpenLDAP menggunakan perintah di bawah:
    du -m /opt
    
  2. Jika Anda melihat ruang disk yang digunakan sangat mendekati 100%, hal ini menunjukkan bahwa penyebab masalah ini adalah sistem Anda kehabisan ruang 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, replikasi LDAP berfungsi dengan benar.

Resolusi

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

Setelah memiliki ruang disk yang memadai, 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. Hentikan Server Pengelolaan 2 dan LDAP2.
    2. Pulihkan LDAP1 dari cadangan VM (atau cadangan Apigee).
    3. Periksa Server Pengelolaan 1 untuk startup dan pemulihan.
    4. Setelah Server Pengelolaan 1 dan LDAP1 berfungsi dengan benar, instal ulang LDAP2 dari awal (membuat slate yang benar-benar kosong).
    5. Siapkan LDAP2 dalam mode hanya baca, sehingga LDAP1 dapat direplikasi ke LDAP2.
    6. Gunakan ldapsearch untuk memverifikasi bahwa jumlah baris di LDAP1 dan LDAP2 cocok.
    7. Mulai ulang Server Pengelolaan 2 dan UI2, lalu pastikan keduanya berhasil dimulai.

Untuk mengetahui petunjuk mendetail, lihat Issue Tracker Publik.

Solusi #1 Pulihkan data LDAP dari cadangan

Buat cadangan di node OpenLDAP yang berfungsi. Cadangan harus dilakukan secara rutin. Lihat Panduan Operasi Cloud Pribadi Apigee untuk mengetahui praktik terbaik terkait cadangan:

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 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 Bersihkan database LDAP

Langkah-langkah berikut akan menghapus database OpenLDAP untuk memberikan awal yang baru. Solusi ini dapat digunakan jika tidak ada cadangan 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. Buat cadangan subdirektori ldap_orig/DB_CONFIG 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 refresh 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 mengatasi 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 pengelolaan/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 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 Server Pengelolaan 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 entity LDAP yang tidak ada 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 ada, dan izin orgadmin untuk organisasi tersebut. Ulangi langkah-langkah untuk setiap organisasi yang perlu dibuat ulang. Pada tahap ini, Anda dapat menambahkan pengguna orgadmin ke organisasi, tetapi peran default lainnya belum ada, sehingga Anda perlu menambahkannya menggunakan langkah berikutnya.

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

    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 melakukan hal berikut secara manual:

    • Tambahkan peran kustom yang ada sebelum kerusakan menggunakan UI atau management API,
    • Tambahkan pengguna ke peran pengguna yang relevan.
  5. (Opsional) Buat ulang Konfigurasi Autentikasi Eksternal di Pengelolaan.

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

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

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

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