Memecahkan Masalah OpenLDAP

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

ini.

Bagian ini memberikan informasi dan panduan tentang memecahkan masalah OpenLDAP.

SMTP dinonaktifkan dan pengguna harus direset kata sandi

Gejala

Bila SMTP tidak disiapkan di UI Edge, pengguna baru yang ditambahkan ke Edge memerlukan cara untuk menyetel {i>password<i}.

Pesan Error

Unknown username and password combination.

Kemungkinan Penyebab

Pengguna baru tidak bisa mendapatkan email dari bagian “Lupa kata sandi?” tautan untuk mengatur {i>password<i} karena SMTP tidak disiapkan.

Resolusi

Anda dapat mengatasi masalah ini dengan salah satu cara berikut:

Solusi #1: Konfigurasi Server SMTP

Konfigurasi 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 menyetel {i>password<i} baru untuk pengguna:

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

  2. Gunakan perintah ldapsearch untuk menemukan nama pengguna yang dibedakan (dn) 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, lalu cari dn pengguna baru yang telah ditambahkan berdasarkan atribut email pengguna baru.
  4. Jalankan perintah ldappassword untuk menambahkan sandi bagi pengguna baru dengan menggunakan lapisan 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 ditentukan di langkah sebelumnya. Tujuan pengguna dapat mengatur {i> password<i} baru setelah login ke UI.

LDAP tidak Direplikasi

Gejala

Banyak penginstalan Edge memiliki beberapa pusat data, misalnya DC-1 dan DC-2. Saat mencatat 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 kesalahan yang muncul, UI Edge sama sekali tidak menampilkan daftar pengguna yang seharusnya direplikasi di semua server OpenLDAP.

Kemungkinan Penyebab

Biasanya penyebab masalah ini adalah konfigurasi replikasi OpenLDAP yang salah dikonfigurasi, penginstalan itu sendiri. Juga, replikasi dapat rusak jika jaringan di 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 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 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. Seharusnya tetapkan ke nilai 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 untuk berkomunikasi satu sama lain. Bekerja sama dengan administrator jaringan Anda untuk menetapkan aturan dengan tepat.
  7. Pastikan kata sandi sistem OpenLDAP sama di setiap node OpenLDAP.
  8. Memeriksa karakter tersembunyi di file konfigurasi ldif yang digunakan untuk mengkonfigurasi replikasi N-Way OpenLDAP dengan menjalankan dos2unix terhadap file {i>ldif<i} yang dibuat untuk memperbarui konfigurasi. Biasanya file ldif yang memiliki karakter buruk akan menyebabkan perintah {i>ldapmodify<i} agar gagal dijalankan sehingga replikasi mungkin tidak disiapkan. Hapus yang buruk karakter dan menyimpan file konfigurasi.

Jika masalah masih 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 membutuhkan yang ingin dihapus.

Diagnosis

Gunakan langkah-langkah berikut untuk mendiagnosis masalah ini:

  1. Periksa kunci proses slapd atau file pid 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 lock 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 {i>slapd<i} OpenLDAP dimulai, lewati langkah di bawah ini.
  4. Jika proses {i>slapd<i} OpenLDAP tidak dimulai, coba jalankan {i>slapd<i} dalam mode {i>debug<i} dan cari error apa pun:
    slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
    
  5. Error dapat menyebabkan masalah resource. Memeriksa pemakaian memori dan CPU pada sistem.
  6. Periksa versi OpenLDAP dan upgrade jika sudah lama. Periksa versi yang didukung dari OpenLDAP 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 ldapsearch utilitas untuk melakukan kueri terhadap pengguna dapat menunjukkan bahwa pengguna ada di datastore LDAP, atau dapat mengidentifikasi ada pengguna atau peran yang hilang yang mungkin tidak ada.

Pesan Error

Unknown username and password combination.

Kemungkinan Penyebab

Biasanya, masalah ini dapat diamati karena kerusakan data OpenLDAP. Biasanya, OpenLDAP tidak rusak. Tetapi dalam kasus yang jarang terjadi, kerusakan dapat disebabkan oleh kegagalan {i>disk<i} atau masalah kapasitas {i>disk<i}.

Diagnosis

  1. Periksa ruang {i>disk<i} di sistem yang telah menginstal OpenLDAP menggunakan perintah di bawah ini:
    du -m /opt
    
  2. Jika Anda melihat kapasitas {i>disk<i} yang digunakan sangat mendekati 100%, maka itu menunjukkan penyebabnya untuk masalah ini adalah sistem Anda kehabisan ruang {i>disk<i}.

Resolusi

Jika sistem Anda kehabisan ruang {i>disk<i} atau hampir kehabisan ruang {i>disk<i}, tambahkan kapasitas {i>disk<i} yang lebih besar untuk memastikan Anda memiliki kapasitas {i>disk<i} yang cukup.

Setelah Anda memiliki kapasitas disk yang cukup, gunakan salah satu solusi di bawah untuk menangani data LDAP masalah {i>korupsi<i}:

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

Solusi #1 Pulihkan Data LDAP dari cadangan

Buat cadangan pada node OpenLDAP yang berfungsi. Pencadangan harus dilakukan secara berkala. Lihat Panduan Apigee Private Cloud Operations untuk praktik terbaik 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 pindahkan:
    mv ldap ldap_orig
    
  4. Beralih ke pengguna apigee:
    su apigee
    
  5. Dari direktori /opt/apigee/data/apigee-openldap, buat data OpenLDAP baru dengan nama asli:
    mkdir ldap
    
  6. Ambil cadangan subdirektori ldap_orig/DB_CONFIG dari langkah 3, lalu salin ke direktori {i>openldap<i}.
    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 Membersihkan LDAP {i>database<i}

Langkah-langkah berikut menghapus total database OpenLDAP untuk memulai dari proses awal. Solusi ini dapat digunakan jika tidak ada cadangan data dari status terakhir tempat data OpenLDAP bekerja.

  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 pindahkan:
    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 openldap direktori:
    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 mengatur ulang OpenLDAP ke instalasi dasar, sebagaimana dijelaskan dalam 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 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 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 sudah ada, dan orgadmin yang sesuai 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 belum ada, jadi Anda perlu menambahkannya menggunakan 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 sudah ada sebelum kerusakan menggunakan UI atau API pengelolaan,
    • Tambahkan pengguna ke peran pengguna yang relevan.
  5. (Opsional) Menetapkan kembali Konfigurasi Autentikasi yang 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 harus tetap sama mengingat kredensial untuk {i>sysadmin<i} telah dipulihkan dengan menginstal manajemen baru.

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

    Jika mTLS Apigee telah diinstal sebelumnya, ikuti Panduan Penginstalan mTLS Apigee untuk menginstal ulang pada {i>node<i} server manajemen.

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