Zammad: Peningkatan Integrasi LDAP

Dibuat pada 24 Apr 2017  ·  16Komentar  ·  Sumber: zammad/zammad

Sinkronisasi LDAP berfungsi dengan baik! Tapi saya punya beberapa Perbaikan.

  • Kami memiliki sekitar 23 ribu Pengguna dan pada setiap sinkronisasi ada banyak pengguna dengan perubahan. Jadi Arus Aktivitas Anda hampir penuh dengan pemberitahuan Pengguna yang diubah. Jadi, Anda telah menerapkan sakelar yang menonaktifkan pemberitahuan perubahan pengguna ini di aliran aktivitas

  • Anda dapat menyinkronkan gambar pengguna dari Ldap (AD) dari thumbnailPhoto Atribut

  • Kemampuan untuk melakukan Filter LDAP pada Atribut tambahan. Contoh: Kami memiliki atribut "ProxyAdresses" yang memiliki banyak nilai. Untuk menampilkan Nomor Faks pengguna, kita harus menyalurkan beberapa data ke atribut ini.

  • Ubah/tentukan DN BASE secara manual: Jika Anda memiliki sekitar 500 Komputer di AD, Anda tidak boleh melihat ini dan memfilternya. Ini juga akan mempercepat segalanya.

Itu saja untuk saat ini ;)

enhancement

Komentar yang paling membantu

tambahan:
Memungkinkan untuk memfilter berdasarkan OU yang diberikan

Semua 16 komentar

tambahan:
Memungkinkan untuk memfilter berdasarkan OU yang diberikan

Saat ini solusi untuk mengubah BaseDN adalah:

  • Beralih ke konsol admin
  • jalankan perintah Setting.get('ldap_config')
  • salin string yang dicetak yang terlihat seperti: {"host_url"=>"ldaps://127.0.0.1", "ssl_verify"=>false, "base_dn"=>"DC=domain,DC=tld", "bind_user"=>"user", "bind_pw"=>"pw", "user_uid"=>"samaccountname", "user_filter"=>"(&(objectClass=user)(samaccountname=*)(!(samaccountname=*$)))", "group_uid"=>"dn", "group_filter"=>"(objectClass=group)", "user_attributes"=>{"samaccountname"=>"login", "givenname"=>"firstname", "sn"=>"lastname", "mail"=>"email", "telephonenumber"=>"phone", "title"=>"note"}, "group_role_map"=>{}}
  • ubah nilai atribut base_dn sesuai kebutuhan
  • salin string baru dan jalankan perintah berikut di konsol admin Setting.set('ldap_config', *new_string*) - __JANGAN KUTIPAN STRING__, salin saja. Ini sebenarnya sintaks Ruby Seharusnya terlihat seperti ini: Setting.set('ldap_config', {"host_url"=>"ldaps://127.0.0.1", "ssl_verify"=>false, "base_dn"=>"OU=...,DC=domain,DC=tld", "bind_user"=>"user", "bind_pw"=>"pw", "user_uid"=>"samaccountname", "user_filter"=>"(&(objectClass=user)(samaccountname=*)(!(samaccountname=*$)))", "group_uid"=>"dn", "group_filter"=>"(objectClass=group)", "user_attributes"=>{"samaccountname"=>"login", "givenname"=>"firstname", "sn"=>"lastname", "mail"=>"email", "telephonenumber"=>"phone", "title"=>"note"}, "group_role_map"=>{}})

Harap periksa kembali bahwa Anda hanya mengubah atribut base_dn untuk menghindari perilaku yang tidak diinginkan dan tidak diharapkan.

Pembaruan singkat tentang bagaimana kami akan melanjutkan:

  • [X] Aliran Aktivitas
    Kami membahas ini dan sampai pada kesimpulan bahwa dalam kasus dengan banyak pengguna, ini bisa menjadi banjir informasi pada impor awal tetapi kami tidak ingin melewatkan informasi (logging). Pada impor di masa mendatang, ini seharusnya jauh lebih sedikit noise di ActivityStream. Fitur umum yang mungkin adalah filter khusus untuk ActivityStream tetapi belum direncanakan.

  • [X] Sembunyikan ms-atribut
    Kami membahas ini dan sampai pada kesimpulan bahwa dalam kasus dengan banyak atribut, ini bisa menjadi banjir informasi pada impor awal, tetapi kami tidak ingin menyembunyikan informasi yang mungkin dibutuhkan beberapa orang. Jadi ms-atribut akan ditampilkan. Karena bidang pemetaan dilengkapi secara otomatis, itu harus dapat digunakan untuk mengatasi atribut-ms tersebut.

  • [x] Pratinjau menerapkan penetapan peran
    Jika pratinjau / dry run dilakukan, peran sudah ditetapkan yang tidak boleh dilakukan sampai impor penuh dimulai.

  • [x] Kesalahan data nol
    Saat ini ada kesalahan yang ditampilkan saat memasuki antarmuka admin integrasi LDAP untuk pertama kalinya. Seharusnya tidak ada yang seperti ini.

  • [x] Filter BaseDN / OU yang dapat diubah
    Kami akan mengubah pilihan BaseDN saat ini dari bidang DropDown menjadi lebih banyak proposal yang dapat digunakan atau diubah sesuai kebutuhan. Ini memberikan kemungkinan untuk memperluas BaseDN dan menambahkan filter OU sesuai kebutuhan. Jadi tidak perlu tambahan always filter untuk BaseDN.

  • [x] Filter Pengguna yang Dapat Diubah
    Filter pengguna saat ini tidak dapat diubah melalui antarmuka. Ini akan diubah untuk memberikan bidang input dengan filter yang terdeteksi yang kemudian dapat diubah sesuai keinginan.

  • [x] Meningkatkan kinerja

    • [x] Ada hambatan kinerja saat mengimpor pengguna LDAP. Zammad mencoba mengambil avatar dari layanan web yang dikonfigurasi (jika diaktifkan). Ini harus dinonaktifkan untuk menjalankan LDAP. Pengujian menunjukkan bahwa kinerja kemungkinan akan meningkat lebih dari 50%.
    • [x] Peningkatan kinerja lainnya akan membatasi atribut hasil entri hanya yang kita butuhkan.
  • [x] Perilaku default untuk pengguna tanpa penetapan peran
    Seperti yang diusulkan oleh @chrklo harus ada opsi untuk memutuskan bagaimana melanjutkan dengan pengguna yang tidak memiliki peran yang ditetapkan. Perilaku saat ini adalah bahwa mereka diberi peran masuk. Opsi tersebut harus memutuskan apakah pengguna tanpa peran yang ditetapkan harus mendapatkan peran masuk yang ditetapkan atau jika mereka harus dilewati.

  • [ ] Avatar dari atribut LDAP thumbnailPhoto
    Kami membahas ini dan menemukan bahwa ada berbagai atribut tempat gambar dapat disimpan, misalnya thumbnailPhoto , jpegPhoto dan photo (setidaknya). Ada berbagai jenis format penyimpanan di sini (Binary, Base64, nilai tunggal, nilai multi ...). Ini membuat sulit untuk menemukan cara yang tepat untuk mengabstraksikan sesuatu. Jadi ini masih merupakan fitur yang bagus tetapi kami menurunkan prioritas karena upaya saat ini terlalu tinggi untuk mendapatkan manfaatnya. Bantuan sangat dihargai di sini!

@ Julian0o Tentang poin Anda yang lain:

Kemampuan untuk melakukan Filter LDAP pada Atribut tambahan. Contoh: Kami memiliki atribut "ProxyAdresses" yang memiliki banyak nilai. Untuk menampilkan Nomor Faks pengguna, kita harus menyalurkan beberapa data ke atribut ini.

Saya tidak yakin apakah saya mendapatkannya dengan benar. Bisakah Anda memberikan beberapa contoh praktis tentang bagaimana ini seharusnya bekerja dan bagaimana tampilan datanya?

saran saya untuk filternya:

gunakan peran yang sudah Anda miliki di Pemetaan ldap dan buat tombol "always_filter" on/off

Aktif: Hanya Pengguna yang cocok dengan salah satu peran/Grup ldap yang akan disinkronkan
Mati: Sinkronkan Semuanya

Hai @all - Saya telah memperbarui posting saya di atas dengan keadaan saat ini dan bagaimana kami akan melanjutkan. Umpan balik diterima. @chrklo apakah menurut Anda pengecualian masih diperlukan ketika filter pengguna dan BaseDN dapat diubah?

BaseDN yang dapat diubah adalah hal yang baik.
Tetapi dalam Desain pohon kami bukan solusi karena OU paralel.

Apakah yang Anda maksud: filter ou
Apakah mungkin untuk menambahkan lebih dari satu OU ke filter?

BasisDB
|-OU1-tolong-sinkronkan-saya
|-OU2-tolong-sinkronkan-saya
|-OU3-tolong-sinkronkan-saya
|-OU4-tolong-jangan-sinkronkan-saya
|-OU5-tolong-jangan-sinkronkan-saya

Jika lebih banyak filter memungkinkan, itu akan menjadi solusi bagi saya.
Tapi saya pikir banyak perusahaan memiliki pengguna sistem dan pengguna eksternal, dll. yang tidak ingin disinkronkan.

Oleh karena itu saran saya untuk (opsional) hanya menyinkronkan pengguna yang berada dalam peran yang cocok <--> ldap_group akan menjadi solusi yang paling akurat.

Hanya pembaruan singkat: Poin yang diperiksa dari atas tersedia dalam paket stabil terbaru sekitar 1 jam dari sekarang. Ada beberapa perbaikan kecil juga. Jangan ragu untuk menguji Umpan balik akan sangat bagus.

Saat ini saya sedang mengerjakan poin terbuka dan membuat Anda terus diperbarui

Hai teman-teman! Silakan lihat daftar yang diperbarui. Ada beberapa perubahan kecil lainnya yang tercantum di atas dengan komit yang saya buat. Umpan balik akan sangat bagus!

Ini adalah keadaan yang mungkin akan masuk ke versi rilis berikutnya jika tidak ada masalah besar.

Masih ada masalah saat menghentikan/memulai ulang penjadwal/pekerja Zammad saat pekerjaan impor sedang berjalan seperti yang dijelaskan di #1008. Kami memiliki rencana untuk memperbaikinya dan saya sedang mengerjakan implementasinya. Saya mencoba memasukkan ini ke rilis berikutnya juga. 🚀

bekerja sempurna!
Terima kasih.

Sebagaimana dinyatakan dalam #350, integrasi LDAP sekarang siap untuk Zammad versi 1.6 dan sudah (dalam waktu sekitar 30 menit dari sekarang) dalam versi 1.5 terbaru juga

Terima kasih kepada Anda orang-orang hebat atas umpan balik yang komprehensif dan berharga. Saya pikir kami menambahkan gula tambahan di atasnya karena Anda dan umpan balik yang Anda berikan

Jangan ragu untuk membuat masalah baru jika Anda memiliki masalah dengan integrasi. 🤞

@ Julian0o - akan keren jika Anda dapat membuat masalah baru untuk fungsi impor gambar karena kompleksitas dan perkiraan upaya untuk mengimplementasikannya saat ini di luar jangkauan kami.

@thorsteneckel : Saya baru saja mencoba LDAP karena ini adalah salah satu keinginan saya :-))

Sayangnya saya mengalami masalah: Ini terhubung dengan sempurna, menemukan grup saya, saya melakukan tugas - tetapi akhirnya setelah teks "Menghitung entri" selalu memberi saya pesan kesalahan "Sintaks filter tidak valid".

Saya membiarkan bidang "filter pengguna" kosong di "Pakar" - apakah saya melewatkan sesuatu di sini?

Ketika ini diselesaikan dan saya akhirnya dapat menyinkronkan pengguna - saya sudah memiliki pengguna di sistem tanpa LDAP. Jika Zammad sekarang menemukan pengguna dengan alamat email yang cocok di server LDAP - apakah Zammad akan secara otomatis mengalihkan pengguna ini dari autentikasi lokal ke LDAP?

Hai @jacotec - Apa yang Anda gambarkan seperti masalah bagi saya Bisakah Anda membuat masalah baru dan menambahkan informasi berikut:

  • Nama dan versi vendor perangkat lunak LDAP Anda
  • Filter pengguna yang akan benar / yang akan Anda gunakan saat terhubung dengan beberapa klien selain Zammad. Biasanya terlihat seperti (objectClass=user)

Sepertinya Zammad tidak dapat mendeteksi filter pengguna untuk LDAP Anda secara otomatis.

Mengenai pertanyaan Anda yang lain: Sebagaimana dinyatakan dalam #1169, pengguna dapat mengautentikasi dengan DB atau LDAP lokal, keduanya diperiksa. 🚀

Hai @thorsteneckel ,

Saya membuatnya pada dasarnya berfungsi dengan memasukkan (objectClass=person) sebagai filter pengguna. Dikhawatirkan itu tidak diisi dengan apa pun, jadi saya pikir tidak apa-apa untuk mengosongkannya, terutama karena terdaftar sebagai konfigurasi ahli. ;-)

Namun sayangnya integrasi tersebut masih memiliki bug. Saya memiliki dua grup di mana pengguna harus menjadi Agen, saya telah mengonfigurasi untuk tidak menyinkronkan pengguna yang tidak ada dalam grup ini. Ringkasan singkat:

  • Pengguna yang ada digabungkan dengan alamat email yang cocok dan pengaturan Agen disimpan, itu bagus!
  • Pengguna yang tidak ada yang ada di setidaknya salah satu grup diimpor, tetapi mereka tidak memiliki peran yang ditetapkan (itu bug) - bahkan sebagai pelanggan.
  • Pengguna yang tidak ada dalam grup saya juga diimpor meskipun saya telah memilih untuk tidak menyinkronkannya. Mereka tidak ditugaskan untuk peran apa pun (bahkan sebagai pelanggan). Kedengarannya juga seperti bug bagi saya.

Saya memiliki pengguna yang relevan yang dikemas ke dalam suatu wilayah, apakah ada cara untuk menambahkan ini ke dalam basis? Untuk saat ini Zammad meraih juga pengguna yang berada di luar wilayah seperti pengguna pencarian dan admin saya.

Saya akan mencobanya lagi malam ini (ambil snapshot, masukkan Zammad ke mode pemeliharaan dan mainkan). Akankah Zammad terus mengambil surat dalam mode pemeliharaan (karena saya akan memulihkan snapshot setelah pengujian dan tidak akan kehilangan tiket yang masuk melalui surat saat ini)?
Jika Anda memberi tahu saya jenis debug/log apa yang Anda butuhkan, saya dapat menanganinya terlebih dahulu. Saya kemudian akan mengajukan masalah baru.

Saya menggunakan OpenLDAP dengan Fusion Directory https://www.fusiondirectory.org di Debian 8.

Hai @thorsteneckel ,

Saya telah mengajukan masalah #1179 dan #1180 yang merupakan showstoppers saya sekarang. Saya mencoba menggambarkan ini sebaik mungkin, termasuk beberapa tangkapan layar.

Menikmati ;-))

Hai @jacotec - Anda hebat! Saya mengambil puncak pada mereka dan itu akan banyak membantu saya. Bot adalah bug dan seharusnya berfungsi seperti yang Anda harapkan. Namun saya akan membuat beberapa skrip debugging yang saya ingin Anda jalankan jika memungkinkan untuk menyelesaikan masalah ini. Saya akan mencoba menyediakannya pada hari Senin. Terima kasih sejauh ini!

Hai @thorsteneckel ,

Saya senang membantu. Beri tahu saya tentang skrip debug Anda ... karena itu adalah VM, mudah bagi saya untuk menjalankannya tanpa membahayakan ;-)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat