Memecahkan Masalah OpenLDAP

Anda sedang 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 Anda?” 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 perlu menambahkan pengguna tertentu melalui UI Edge seperti yang ditunjukkan di bawah ini:

  2. Gunakan perintah ldapsearch untuk menemukan nama unik (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 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 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 telah 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 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 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 mengetahui nilai atribut olcMirrorMode. Nilai ini harus ditetapkan ke nilai BENAR:
    grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  6. Periksa aturan iptables dan tcp wrapper. Hapus aturan apa pun yang tidak mengizinkan 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 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 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 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, dan 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 menunjukkan 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 kami.
    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 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 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 itu akan menunjukkan bahwa penyebab masalah ini adalah sistem Anda kehabisan ruang disk.

Resolusi

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

Setelah Anda memiliki kapasitas 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. 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 platform yang benar-benar kosong).
    5. Siapkan LDAP2 dalam mode hanya baca, yang memungkinkan LDAP1 mereplikasi ke LDAP2.
    6. Gunakan ldapsearch untuk memverifikasi bahwa jumlah baris di LDAP1 dan LDAP2 cocok.
    7. Mulai ulang Management Server 2 dan UI2, dan konfirmasi bahwa keduanya berhasil dimulai.

Untuk petunjuk mendetail, lihat Pelacak Masalah Publik.

Solusi #1 Memulihkan data LDAP dari cadangan

Di node OpenLDAP yang berfungsi, buat cadangan. Pencadangan harus dilakukan secara rutin. 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 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 memulai dari awal. Solusi ini dapat digunakan jika tidak ada cadangan data dari 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 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 pembaruan koneksi ke OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Solusi #3 Mereset 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 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 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 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 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 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 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:

    • Menambahkan peran kustom yang ada sebelum kerusakan menggunakan UI atau API pengelolaan,
    • Tambahkan pengguna ke peran pengguna yang relevan.
  5. (Opsional) Buat ulang Konfigurasi Autentikasi yang Dieksternalisasi 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 baru.

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

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

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