Zammad: Integrasi otentikasi LDAP

Dibuat pada 4 Nov 2016  ·  49Komentar  ·  Sumber: zammad/zammad

Keinginan Zammad dari Markus Pfeiler:
tolong berikan semacam plugin / integrasi auth LDAP jika tidak, kami tidak dapat menggunakan sistem tiket untuk apa pun :( keluar dengan akun facebook dan google tidak ada pilihan di perusahaan mana pun dengan lebih dari 10 karyawan - idealnya saluran ini diblokir terlebih dahulu garis pertahanan untuk alasan yang bagus :)"

feature backlog proposal

Komentar yang paling membantu

Ada berita tentang ini?

Semua 49 komentar

apakah ini duplikat dari #58 ?

@wagnst Ini adalah masalah baru, #58 sudah lama dan sudah ditutup.

Catatan: Kami sedang mengerjakan fitur "siap untuk perusahaan" untuk Q1 2017 yang akan mencakup integrasi LDAP. Pantau terus.

@rolfschmidt mungkin ADFS dengan OAuth2 adalah solusi jangka pendek

Ada berita tentang ini?

Dukungan LDAP akan luar biasa. Adakah pembaruan tentang kapan kami akan melihat fitur-fitur ini, dan fitur perusahaan apa lagi yang sedang diterapkan?

Ada berita? Kuartal pertama 2017 sudah memasuki hari-hari terakhir :)
Adakah kesempatan untuk mendapatkan ini di Pembaruan April?

Ya, fitur ini akan sangat bagus!
Kami adalah organisasi dengan sekitar 4000 pengguna dan 50 agen dan kami berencana untuk mengganti OTRS dengan Zammad. Tetapi tanpa otentikasi LDAP, itu tidak masuk akal.

Pembaruan kecil, kami dalam status pengujian. Setidaknya akan ada integrasi LDAP pengujian beta yang tersedia di rilis berikutnya (dan setelah rilis itu kami menyebutnya stabil).

Pratinjau kecil tentang cara menggunakannya (umpan balik apa pun diterima - kami mencoba membuatnya semudah mungkin (dengan deteksi otomatis pengaturan ldap) - cara Zammad):
ldap-preview

@bchynds

Dukungan LDAP akan luar biasa. Adakah pembaruan tentang kapan kami akan melihat fitur-fitur ini, dan fitur perusahaan apa lagi yang sedang diterapkan?

Fitur perusahaan: Yang paling penting adalah manajemen peran (dan lainnya seperti di luar kantor dan pertukaran).

Itu terlihat bagus. Berharap untuk menguji ini dengan 25k Pengguna kami saat tersedia.

Itu terlihat bagus. Berharap untuk menguji ini dengan 25k Pengguna kami saat tersedia.

🎉.

Halo,

apakah ada migrasi/penggabungan pengguna agen yang ada dengan LDAP?

apakah ada migrasi/penggabungan pengguna agen yang ada dengan LDAP?

Untuk mengidentifikasi pengguna yang sudah ada, cari login dan alamat email di basis pengguna yang ada (salah satunya harus cocok).

Hai, yang di sana,

saya baru menyadari bahwa integrasi ldap sekarang ada di cabang delevop. Saya sekarang dalam mode pengujian dan bekerja pada "Menganalisis entri dengan konfigurasi yang diberikan ..." selama sekitar 10 Menit sekarang.

Tapi kami mendapat sekitar 25k Pengguna di AD kami. Saya akan menunggu sebentar.

@ Julian0o Anda orang yang cepat!

Saya sekarang dalam mode pengujian dan bekerja pada "Menganalisis entri dengan konfigurasi yang diberikan ..." selama sekitar 10 Menit sekarang.

Apakah penjadwal dimulai? Di lingkungan pengujian kami dengan 9k pengguna, dibutuhkan sekitar 60 detik.

PS: Anda dapat memulai pekerjaan latar belakang yang antri juga secara manual dengan rails r 'Delayed::Worker.new.work_off'

-Martin

Saya harus berpuasa :) Lupa menentukan peran admin dan sekarang saya pengguna biasa :)

@Martini
Apakah Anda memiliki beberapa saran untuk memperbaikinya? Saya baru saja melewatkan OTRS Config.pm sekarang :D

Untuk mendapatkan kembali peran admin, Anda sebagai berikut:

rails c
u = User.find_by(email: '[email protected]')
u.roles = Role.where(name: ['Agent', 'Admin'])
u.save!

Kemudian login lagi dan Anda adalah admin.

Terima kasih! Sekarang coba kedua ;)

PS: Apakah ada cara untuk mendapatkan perintah ini tanpa melihat jauh ke dalam kode?

PS: Apakah ada cara untuk mendapatkan perintah ini tanpa melihat jauh ke dalam kode?

Sebagian besar adalah perintah standar Rails. Tapi mungkin kita harus membuat lembar contekan....

image

Sinkronisasi Awal membutuhkan waktu sekitar 10 Menit.
Sekarang saya mendapatkan kesalahan:

An error occurred: Can't connect to '' on port '389', Connection refused - connect(2) for 127.0.0.1:389
Host LDAP yang dikonfigurasi adalah " ldaps://xxx.lan "

Sunting: Melakukan percobaan kedua dengan Alamat IP yang ketat dan bukan alamat dns di mana 5 Alamat IP berada di belakang.

Mungkinkah mendapatkan log/production.log?

@martini Saya dapat mengirim log ke alamat surat Anda. Ke mana ia harus pergi?

@martini Saya dapat mengirim log ke alamat surat Anda. Ke mana ia harus pergi?

dukungan di zammad dot com

Oke sekarang ini berfungsi dan sinkronisasi sedang berlangsung. Sekarang menyinkronkan 45 Menit dengan 6k/22k.
Apakah OTRS juga menyinkronkan pengguna?

Tetapi mengapa saya tidak dapat mengubah pemetaan uid? Kami menggunakan usernameprincipalname untuk pemetaan login agen.

Dan mengapa saya hanya dapat memetakan admin dan agen sebagai "peran". Apakah manajemen peran hanya hilang atau ini adalah manajemen peran terakhir?

Oke sekarang ini berfungsi dan sinkronisasi sedang berlangsung. Sekarang menyinkronkan 45 Menit dengan 6k/22k.

Sekedar pemberitahuan, kami bekerja untuk mempercepat ini (~3 kali lebih cepat).

Apakah OTRS juga menyinkronkan pengguna?

Agen (dan penetapan peran) disinkronkan dalam OTRS. Pelanggan tidak, yang mengarah ke masalah:

a) jika pelanggan dikeluarkan dari ldap (masalah riwayat dan revisi)
b) Anda ingin mencari tiket melalui atribut pelanggan - tidak ada gambaran umum, tidak ada pemicu, tidak ada sla dengan atribut pelanggan (tidak mungkin, karena data ada di sumber data min 2)
c) masalah kinerja untuk kueri ldap (bisa juga terkait jaringan)

Tetapi mengapa saya tidak dapat mengubah pemetaan uid? Kami menggunakan usernameprincipalname untuk pemetaan login agen.

Saat ini kami mencoba untuk mendeteksi semua pengaturan secara otomatis. Jika Anda memiliki ide bagaimana meningkatkan/memperkaya pengaturan konfigurasi.

Dan mengapa saya hanya dapat memetakan admin dan agen sebagai "peran". Apakah manajemen peran hanya hilang atau ini adalah manajemen peran terakhir?

Manajemen peran akan ada di rilis berikutnya (di sini Anda dapat menentukan peran dengan izin). Jika Anda ingin mengujinya pada instalasi Anda (instalasi paket), unduh https://raw.githubusercontent.com/zammad/zammad/develop/app/assets/javascripts/app/controllers/role.coffee dan kompilasi aset lagi.

screen shot 2017-04-19 at 16 30 04

Oke itu masuk akal.

Saya baru menyadari bahwa Anda dapat masuk melalui samaccountname dan Mail. Itu perilaku yang baik! Bagi kami: UPN = Alamat Surat

Waktu sinkronisasi tidak masalah saya pikir karena hanya sinkronisasi awal yang memakan waktu cukup lama.

Saran untuk deteksi otomatis tag. Kami menggunakan banyak layanan microsoft (skype untuk bisnis, pertukaran,...). Secara default Anda dapat mengecualikan semua atribut yang dimulai dengan "ms". Anda tidak memerlukan konfigurasi pertukaran atau menyesap Pengaturan pengguna di Zammad (saya pikir). Itu bisa mempercepat segalanya.
Akun pengguna saya memiliki Attribs sekitar 45 ms.

Untuk Plugin Peran saya memerlukan beberapa info tambahan atau mencari di Google;) Saya mengunggah File tetapi tidak tahu cara mengkompilasi aset terlebih dahulu.

EDIT: Saya sedang dalam cara yang baik untuk menginstal plugin peran!

Sekarang tiba-tiba sinkronisasi berhenti ... Sudah memulai ulang semua layanan dan server sepenuhnya. Adakah saran untuk memulai kembali sinkronisasi?

Sudah melakukan rails r 'Delayed::Worker.new.work_off'

Pembaruan: Zammad baru saja membuatnya sendiri! 👍
Tunggu saja dan tiba-tiba sinkronisasi selesai!

Apakah sinkronisasi mengunduh foto dari direktori aktif? Kami menyimpannya di thumbnailPhoto Atribut.

Pertanyaan Berikutnya: Seberapa sering Sinkronisasi berjalan? Sekarang 24 Jam kemudian dan tidak ada sinkronisasi baru.

Apakah sinkronisasi mengunduh foto dari direktori aktif? Kami menyimpannya di thumbnailPhoto Atribut.

Tidak sekarang. Tapi ide yang bagus!

Pertanyaan Berikutnya: Seberapa sering Sinkronisasi berjalan? Sekarang 24 Jam kemudian dan tidak ada sinkronisasi baru.

Ada pekerjaan di tabel scheduler yang memulai sinkronisasi setiap jam (tentu saja script/scheduler.rb harus dijalankan).

Periksa apakah pekerjaan ada melalui konsol Rails:

Scheduler.where(name: 'Import Jobs')

Untuk (kembali) membuat pekerjaan lakukan:

Scheduler.create_or_update(
  name:          'Import Jobs',
  method:       'ImportJob.start_registered',
  period:        1.hour,
  prio:          1,
  active:        true,
  updated_by_id: 1,
  created_by_id: 1
)

=> #<:relasi i="5">]>

Tapi Webinterface mengatakan:
Sinkronisasi terakhir

20.04.2017 09:30 - 20.04.2017 09:51

Hai @Julian0o - bisa tolong periksa Setting.get('import_backends') ? Harus ada entri LDAP. Jika sudah, silahkan jalankan perintah ImportJob.all dan posting hasilnya. Perlu diketahui bahwa output berisi data rahasia seperti PW dan pemetaan Anda dalam atribut payload . Konten payload tidak relevan dan dapat dihapus sepenuhnya.

Outputnya terlalu besar untuk ditempel dari konsol Ruby. Apakah ada cara untuk mendapatkan output dalam file?

Maaf saya total ruby ​​noob :)

Silakan coba ImportJob.last.attributes.except('payload').inspect - karena kami hanya tertarik pada putaran terakhir. Jika masih terlalu besar Anda dapat menggunakan File.write('/tmp/zammad_ldap.txt', ImportJob.last.attributes.except('payload').inspect) untuk menulisnya ke file /tmp/zammad_ldap.txt .

irb(main):001:0> ImportJob.last.attributes.except('payload').inspect
=> "{\"id\"=>10, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>122, \"created\"=>10, \"updated\"=>27, \"unchanged\"=>22256, \"failed\"=>0, \"sum\"=>22415, \"role_ids\"=>{3=>{\"created\"=>10, \"updated\"=>25, \"unchanged\"=>22220, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>2, \"unchanged\"=>36, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>1, \"unchanged\"=>5, \"failed\"=>0}}}, \"started_at\"=>Fri, 21 Apr 2017 08:32:15 UTC +00:00, \"finished_at\"=>Fri, 21 Apr 2017 08:44:07 UTC +00:00, \"created_at\"=>Fri, 21 Apr 2017 08:32:15 UTC +00:00, \"updated_at\"=>Fri, 21 Apr 2017 08:44:07 UTC +00:00}"

EDIT: Itu Berubah

Last sync

21.04.2017 10:32 - 21.04.2017 10:44

Terima kasih! Hm aneh Bisakah Anda memberikan output dari pernyataan ini:
ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect

Pernyataan yang sama ini digunakan oleh pengontrol frontend LDAP yang bertanggung jawab untuk merender teks.

Saya cukup yakin Anda melakukannya tetapi hanya untuk alasan kewarasan: Sudahkah Anda mencoba memuat ulang halaman?

irb(main):001:0> ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect
=> "{\"id\"=>12, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>110, \"created\"=>0, \"updated\"=>14, \"unchanged\"=>14176, \"failed\"=>0, \"sum\"=>22415, \"role_ids\"=>{3=>{\"created\"=>0, \"updated\"=>14, \"unchanged\"=>14145, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>31, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>5, \"failed\"=>0}}}, \"started_at\"=>Fri, 21 Apr 2017 10:33:07 UTC +00:00, \"finished_at\"=>nil, \"created_at\"=>Fri, 21 Apr 2017 10:33:07 UTC +00:00, \"updated_at\"=>Fri, 21 Apr 2017 10:40:31 UTC +00:00}"

saya melihatnya di pagi hari setelah mem-boot pc. Jadi saya melakukan hard reload :)
Sekarang sinkronisasi sedang berjalan. Mungkin itu masalah satu waktu.

Aneh Ini juga terlihat bagus untukku. Oke, beri tahu kami jika ada apa-apa.

Hai!

Saya juga telah mencoba Konektor LDAP dan mengalami masalah yang sama dengan Julian0o ( https://github.com/zammad/zammad/issues/350#issuecomment -295259450) dan tidak mendeklarasikan grup admin apa pun. Jadi terima kasih kepada @martini saya menggunakan potongan Rails untuk mendapatkan kembali peran admin.

Saya tidak pernah menyelesaikan LDAP-Import tetapi grup tampaknya sudah disinkronkan.
Sekarang pengguna saya tampaknya masih memiliki peran Pelanggan dan saya tidak dapat mengubah pengaturan apa pun.
image

Untungnya saya masih dapat melakukan tugas admin, jadi saya membuat pengguna admin independen tetapi masih tidak dapat mengubah apa pun pada pengguna pertama.

Ada ide tentang ini?

Saya dapat menyelesaikan ini dengan sekali lagi menjalankan perintah martinis rails. 👍

Tapi saya masih punya satu pertanyaan - apakah boleh izin grup disinkronkan bahkan sebelum sinkronisasi awal dilakukan?
Dalam kasus saya, saya menyadari bahwa terlalu banyak pengguna akan disinkronkan dan keluar dari LDAP-Connection-Wizard, tetapi menemukan diri saya dengan situasi yang dijelaskan di atas.

LDAP-Impor digantung sejak kemarin
zammadldap
Apakah mungkin untuk menghentikan / memulai kembali impor?

Hai @SGVubmluZ0cK - bisakah Anda menggunakan konsol admin Rails dan berikan saya output dari masing-masing dari tiga perintah berikut:

Setting.get('import_backends')

ImportJob.last.attributes.except('payload').inspect

ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect

Terima kasih!

Itulah yang dikatakan konsol admin Rails:

irb(main):004:0> Setting.get('import_backends')
=> ["Import::Ldap"]
irb(main):005:0> ImportJob.last.attributes.except('payload').inspect
=> "{\"id\"=>55, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>2, \"created\"=>2, \"updated\"=>0, \"unchanged\"=>496, \"failed\"=>0, \"sum\"=>2403, \"role_ids\"=>{3=>{\"created\"=>2, \"updated\"=>0, \"unchanged\"=>493, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>3, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>1, \"failed\"=>0}}}, \"started_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"finished_at\"=>nil, \"created_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"updated_at\"=>Wed, 26 Apr 2017 10:00:11 UTC +00:00}"
irb(main):006:0> ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect
=> "{\"id\"=>55, \"name\"=>\"Import::Ldap\", \"dry_run\"=>false, \"result\"=>{\"skipped\"=>2, \"created\"=>2, \"updated\"=>0, \"unchanged\"=>496, \"failed\"=>0, \"sum\"=>2403, \"role_ids\"=>{3=>{\"created\"=>2, \"updated\"=>0, \"unchanged\"=>493, \"failed\"=>0}, 2=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>3, \"failed\"=>0}, 1=>{\"created\"=>0, \"updated\"=>0, \"unchanged\"=>1, \"failed\"=>0}}}, \"started_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"finished_at\"=>nil, \"created_at\"=>Wed, 26 Apr 2017 09:57:42 UTC +00:00, \"updated_at\"=>Wed, 26 Apr 2017 10:00:11 UTC +00:00}"

Terima kasih banyak!

Hai @SGVubmluZ0cK - sekilas semuanya terlihat baik-baik saja bagi saya. Tentunya tidak. Bisakah Anda membuat masalah baru? Ada beberapa pertanyaan tentang sistem/pengaturan Anda yang perlu saya ketahui untuk menggali lebih dalam. Ada juga permintaan ke file production.log Anda yang akan sangat bagus jika Anda bisa menyediakannya.
Harap juga salin - tempel output dari perintah di atas ke masalah baru Anda sehingga kami memiliki segalanya. Terima kasih!

Hai @ Julian0o - masalah ketika Zammad menghapus penetapan peran Anda karena grup LDAP yang hilang ke pemetaan peran Zammad diperbaiki dengan komit di atas. Pengguna sekarang akan mempertahankan penetapan peran lokal mereka jika tidak ada pemetaan yang ditentukan. Tetapi jika pemetaan ditentukan, LDAP adalah sumber utama untuk penetapan peran. Umpan balik dihargai

Hai kawan. Apakah otentikasi melalui ADFS dimungkinkan atau pada kartu untuk rilis mendatang? 😃.

Hai @kmclea16!

Ya, ADFS dimungkinkan karena Zammad menggunakan permata omniauth yang hebat untuk mengotentikasi dan menyinkronkan pengguna melalui penyedia pihak ketiga. Sudah ada permata yang menyediakan ADFS untuk omniauth.

Namun tidak ada rencana untuk menerapkan ini dalam waktu dekat, tetapi seharusnya tidak terlalu sulit . Siapa tahu, mungkin ada yang bisa memberikan pull request? Akan lebih bagus jika Anda bisa membuat masalah baru untuk itu.

Otentikasi LDAP sekarang siap untuk rilis Zammad versi 1.6 yang akan datang Jangan ragu untuk membuka masalah baru jika Anda mengalami masalah dengan fungsi ini.

@ kmclea16 - akan sangat bagus untuk melihat masalah ADFS atau bahkan permintaan tarik

Apakah halaman ini membantu?
0 / 5 - 0 peringkat