Zammad: Integration der LDAP-Authentifizierung

Erstellt am 4. Nov. 2016  ·  49Kommentare  ·  Quelle: zammad/zammad

Zammad-Wunsch von Markus Pfeiler:
"Bitte stellen Sie eine Art LDAP-Authentifizierungs-Plugin / -Integration bereit, sonst können wir das Ticketing-System für nichts verwenden :( Outh mit Facebook- und Google-Konten sind in Unternehmen mit mehr als 10 Mitarbeitern keine Option - idealerweise werden diese Kanäle im ersten Fall blockiert Verteidigungslinie aus gutem Grund :)"

feature backlog proposal

Hilfreichster Kommentar

Gibt es Neuigkeiten zu diesem Thema?

Alle 49 Kommentare

Ist das ein Duplikat von #58?

@wagnst Das ist die neue Ausgabe, #58 ist alt und schon geschlossen.

Hinweis: Wir arbeiten an „Enterprise Ready“-Funktionen für Q1 2017, die eine LDAP-Integration umfassen. Bleib dran.

@rolfschmidt vielleicht ist ADFS mit OAuth2 eine kurzfristige Lösung

Gibt es Neuigkeiten zu diesem Thema?

LDAP-Unterstützung wäre unglaublich. Irgendwelche Neuigkeiten darüber, wann wir diese Funktionen sehen werden und welche anderen Unternehmensfunktionen implementiert werden?

Irgendwelche Neuigkeiten? Das erste Quartal 2017 geht in die letzten Tage :)
Gibt es eine Chance, dies im April-Update zu bekommen?

Ja, diese Funktion wäre toll!
Wir sind eine Organisation mit etwa 4000 Benutzern und 50 Agenten und planen, OTRS durch Zammad zu ersetzen. Aber ohne LDAP-Authentifizierung macht es keinen Sinn.

Kleines Update, wir befinden uns im Teststadium. Zumindest wird es in der nächsten Version eine Beta-Test-LDAP-Integration geben (und nach dieser Version nennen wir sie stabil).

Eine kleine Vorschau zur Verwendung (jedes Feedback ist willkommen - wir haben versucht, es so einfach wie möglich zu machen (mit automatischer Erkennung von LDAP-Einstellungen) - auf Zammad-Art):
ldap-preview

@bchynds

LDAP-Unterstützung wäre unglaublich. Irgendwelche Neuigkeiten darüber, wann wir diese Funktionen sehen werden und welche anderen Unternehmensfunktionen implementiert werden?

Unternehmensfunktionen: Am wichtigsten ist die Rollenverwaltung (und andere wie Abwesenheit und Austausch).

Das sieht gut aus. Wir freuen uns darauf, dies mit unseren 25.000 Benutzern zu testen, sobald es verfügbar ist.

Das sieht gut aus. Wir freuen uns darauf, dies mit unseren 25.000 Benutzern zu testen, sobald es verfügbar ist.

🎉

Hallo,

Gibt es eine Migration/Zusammenführung bestehender Agentenbenutzer mit LDAP?

Gibt es eine Migration/Zusammenführung bestehender Agentenbenutzer mit LDAP?

Um bereits bestehende Benutzer zu identifizieren, suchen wir nach Login und E-Mail-Adresse in der bestehenden Benutzerbasis (eine davon muss übereinstimmen).

Hi,

Ich habe gerade bemerkt, dass die LDAP-Integration jetzt im Delevop-Zweig ist. Ich bin jetzt im Testmodus und arbeite seit ungefähr 10 Minuten an "Analysieren von Einträgen mit gegebener Konfiguration ...".

Aber wir haben ungefähr 25.000 Benutzer in unserem AD. Ich werde ein bisschen warten.

@Julian0o du bist ein schneller Mann!

Ich bin jetzt im Testmodus und arbeite seit ungefähr 10 Minuten an "Analysieren von Einträgen mit gegebener Konfiguration ...".

Ist der Scheduler gestartet? In unserer Testumgebung mit 9k Benutzern dauert es etwa 60 Sekunden.

PS: Sie können die Hintergrundjobs in der Warteschlange auch manuell mit rails r 'Delayed::Worker.new.work_off' starten

- Martin

Ich war zu schnell :) Ich habe vergessen, eine Admin-Rolle anzugeben und bin jetzt ein normaler Benutzer :)

@Martini
Haben Sie einen Rat, um das zu beheben? Mir fehlt jetzt nur noch die OTRS Config.pm :D

Um die Administratorrolle zurückzuerhalten, müssen Sie Folgendes tun:

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

Dann melden Sie sich erneut an und Sie sind Admin.

Danke! Jetzt zweiter Versuch ;)

PS: Gibt es eine Möglichkeit, diese Befehle zu erhalten, ohne tief in den Code zu schauen?

PS: Gibt es eine Möglichkeit, diese Befehle zu erhalten, ohne tief in den Code zu schauen?

Die meisten sind Rails-Standardbefehle. Aber vielleicht sollten wir einen Spickzettel erstellen....

image

Die anfängliche Synchronisierung dauerte etwa 10 Minuten.
Jetzt bekomme ich einen Fehler:

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

Bearbeiten: Machen Sie einen zweiten Versuch mit strickt IP-Adresse und nicht der DNS-Adresse, wo 5 IP-Adressen dahinter sind.

Möglich, das log/production.log zu bekommen?

@martini Ich kann das Log an deine Mailadresse schicken. Wo soll es hingehen?

@martini Ich kann das Log an deine Mailadresse schicken. Wo soll es hingehen?

Unterstützung bei zammad dot com

Okay, jetzt funktioniert es und die Synchronisierung läuft. Synchronisiere jetzt 45 Minuten mit 6k/22k.
Synchronisiert OTRS auch Benutzer?

Aber warum kann ich die UID-Zuordnung nicht ändern? Wir verwenden den Benutzerprincipalnamen für die Agenten-Login-Zuordnung.

Und warum ich nur Admin und Agent als "Rolle" zuordnen kann. Fehlt nur noch die Rollenverwaltung oder ist dies die finale Rollenverwaltung?

Okay, jetzt funktioniert es und die Synchronisierung läuft. Synchronisiere jetzt 45 Minuten mit 6k/22k.

Nur ein Hinweis, wir arbeiten daran, dies zu beschleunigen (ca. 3-mal schneller).

Synchronisiert OTRS auch Benutzer?

Agenten (und Rollenzuweisungen) werden in OTRS synchronisiert. Kunden nicht, was zu Problemen führt:

a) wenn der Kunde aus LDAP entfernt wird (Verlaufs- und Revisionsprobleme)
b) Sie möchten über Kundenattribute nach Tickets suchen - keine Übersicht, keine Trigger, keine Sla's mit Kundenattributen (nicht möglich, da Daten in mindestens 2 Datenquellen)
c) Leistungsprobleme bei LDAP-Abfragen (können auch netzwerkbezogen sein)

Aber warum kann ich die UID-Zuordnung nicht ändern? Wir verwenden den Benutzerprincipalnamen für die Agenten-Login-Zuordnung.

Derzeit versuchen wir, alle Einstellungen automatisch zu erkennen. Wenn Sie Ideen haben, wie Sie die Konfigurationseinstellungen verbessern/bereichern können.

Und warum ich nur Admin und Agent als "Rolle" zuordnen kann. Fehlt nur noch die Rollenverwaltung oder ist dies die finale Rollenverwaltung?

Die Rollenverwaltung wird es in der nächsten Version geben (hier können Sie Rollen mit Berechtigungen definieren). Wenn Sie es auf Ihrer Installation testen möchten (Paketinstallation), laden Sie https://raw.githubusercontent.com/zammad/zammad/develop/app/assets/javascripts/app/controllers/role.coffee herunter und kompilieren Sie die Assets erneut vor.

screen shot 2017-04-19 at 16 30 04

Ok das macht Sinn.

Mir ist gerade aufgefallen, dass Sie sich über samaccountname und Mail anmelden können. Das ist ein gutes Verhalten! Für uns: UPN = Mailadresse

Die Synchronisierungszeit ist meiner Meinung nach kein Problem, da nur die anfängliche Synchronisierung eine Weile dauert.

Hinweise zur automatischen Erkennung von Tags. Wir nutzen viele Dienste von Microsoft (Skype for Business, Exchange,...). Standardmäßig können Sie alle Attribute ausschließen, die mit "ms" beginnen. Sie brauchen nicht die Austauschkonfiguration oder die SIP-Einstellungen der Benutzer in Zammad (glaube ich). Das könnte alles beschleunigen.
Mein Benutzerkonto hat ca. 45 ms Attribs.

Für das Rollen-Plugin brauche ich zusätzliche Informationen oder Googlen ;) Ich habe die Datei hochgeladen, weiß aber nicht, wie man Assets vorkompiliert.

EDIT: Ich bin auf einem guten Weg, das Rollen-Plugin zu installieren!

Jetzt plötzlich stoppte der Sync... Habe schon alle Dienste und den Server komplett neu gestartet. Irgendwelche Ratschläge, um die Synchronisierung neu zu starten?

Habe bereits rails r 'Delayed::Worker.new.work_off'

Update: Zammad hat es gerade selbst geschafft! 👍
Einfach gewartet und plötzlich war die Synchronisierung fertig!

Lädt die Synchronisierung Fotos aus Active Directory herunter? Wir speichern sie im thumbnailPhoto-Attribut.

Nächste Frage: Wie oft läuft die Synchronisierung? Jetzt ist es 24 Stunden später und es gab keine neue Synchronisierung.

Lädt die Synchronisierung Fotos aus Active Directory herunter? Wir speichern sie im thumbnailPhoto-Attribut.

Nicht jetzt. Aber eine gute Idee!

Nächste Frage: Wie oft läuft die Synchronisierung? Jetzt ist es 24 Stunden später und es gab keine neue Synchronisierung.

Es gibt einen Job in der Scheduler-Tabelle, der die Synchronisierung jede Stunde startet (natürlich muss das script/scheduler.rb laufen).

Überprüfen Sie, ob die Jobs über die Rails-Konsole vorhanden sind:

Scheduler.where(name: 'Import Jobs')

Um den Job (neu) zu erstellen, tun Sie Folgendes:

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
)

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

Aber Webinterface sagt:
Letzte Synchronisierung

20.04.2017 09:30 - 20.04.2017 09:51

Hallo @Julian0o - kannst du bitte die Setting.get('import_backends') überprüfen? Es sollte einen LDAP-Eintrag geben. Wenn ja, führe bitte den Befehl ImportJob.all aus und poste das Ergebnis. Bitte beachten Sie, dass die Ausgabe vertrauliche Daten wie das PW und Ihr Mapping im Attribut payload enthält. Der Inhalt von payload ist nicht relevant und kann komplett gelöscht werden.

Die Ausgabe ist zu groß, um sie von der Ruby-Konsole einzufügen. Gibt es eine Möglichkeit, die Ausgabe in eine Datei zu bekommen?

Entschuldigung, ich bin ein absoluter Rubin-Noob :)

Bitte versuchen Sie ImportJob.last.attributes.except('payload').inspect - da uns nur der letzte Durchlauf interessiert. Wenn es immer noch zu groß ist, können Sie es mit File.write('/tmp/zammad_ldap.txt', ImportJob.last.attributes.except('payload').inspect) in die Datei /tmp/zammad_ldap.txt schreiben.

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: Es hat sich geändert

Last sync

21.04.2017 10:32 - 21.04.2017 10:44

Danke! Hm, das ist seltsam 🤔 Können Sie bitte die Ausgabe dieser Aussage bereitstellen:
ImportJob.where(name: 'Import::Ldap', dry_run: false).order(created_at: :desc).limit(1).first.attributes.except('payload').inspect

Dieselbe Anweisung wird vom LDAP-Frontend-Controller verwendet, der für das Rendern des Textes verantwortlich ist.

Ich bin mir ziemlich sicher, dass Sie das getan haben, aber nur aus Gründen der Vernunft: Haben Sie versucht, die Seite neu zu laden?

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}"

Ich habe es morgens nach dem Hochfahren des PCs bemerkt. Also habe ich einen Hard Reload gemacht :)
Jetzt läuft eine Synchronisierung. Vielleicht war es ein einmaliges Problem.

Seltsam 🤔 Das sieht für mich auch gut aus. Ok, lass es uns wissen, wenn es etwas gibt.

Hallo!

Ich habe auch den LDAP Connector ausprobiert und bin auf das gleiche Problem wie Julian0o gestoßen ( https://github.com/zammad/zammad/issues/350#issuecomment -295259450) und habe keine Admin-Gruppe deklariert. Dank @martini habe ich das Rails-Snippet verwendet, um die Administratorrolle zurückzuerhalten.

Ich habe nie einen LDAP-Import durchgeführt, aber die Gruppen schienen bereits synchronisiert zu sein.
Jetzt scheint mein Benutzer immer noch die Kundenrolle zu haben und ich kann keine Einstellungen ändern.
image

Glücklicherweise kann ich immer noch Admin-Aufgaben ausführen, also habe ich einen unabhängigen Admin-Benutzer erstellt, kann aber immer noch nichts am ersten Benutzer ändern.

Irgendwelche Ideen dazu?

Ich konnte dies beheben, indem ich erneut Martinis-Rails-Befehle ausführte. 👍

Aber ich habe noch eine Frage: Ist es in Ordnung, dass die Gruppenberechtigungen synchronisiert werden, noch bevor die erste Synchronisierung stattfindet?
In meinem Fall stellte ich fest, dass zu viele Benutzer synchronisiert worden wären und beendete den LDAP-Verbindungsassistenten, fand mich aber in der oben beschriebenen Situation wieder.

Der LDAP-Import hängt seit gestern
zammadldap
Ist es möglich, den Import zu stoppen / neu zu starten?

Hallo @SGVubmluZ0cK - können Sie bitte die Rails -Verwaltungskonsole verwenden und mir die Ausgabe von jedem der folgenden drei Befehle zur Verfügung stellen:

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

Danke!

Das sagt die Rails-Administrationskonsole:

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}"

Vielen Dank!

Hallo @SGVubmluZ0cK - auf den ersten Blick sieht für mich alles gut aus. Sicher nicht. Könntest du bitte ein neues Thema erstellen? Es gibt einige Fragen zu Ihrem System / Setup, die ich wissen muss, um tiefer einzutauchen. Es gibt auch eine Anfrage zu Ihrer production.log -Datei, die großartig wäre, wenn Sie sie bereitstellen könnten.
Bitte kopieren Sie auch die Ausgabe der Befehle von oben in Ihre neue Ausgabe, damit wir alles an Ort und Stelle haben. Danke!

Hallo @Julian0o – das Problem, bei dem Zammad Ihre Rollenzuweisungen aufgrund fehlender Zuordnung von LDAP-Gruppen zu Zammad-Rollen entfernt hat, wurde mit dem obigen Commit behoben. Benutzer behalten jetzt ihre lokale Rollenzuweisung bei, wenn keine Zuordnung angegeben ist. Wenn jedoch eine Zuordnung angegeben ist, ist das LDAP die führende Quelle für Rollenzuweisungen. Feedback ist willkommen 🤓

Hallo Leute. Ist die Authentifizierung über ADFS möglich oder auf den Karten für zukünftige Releases? 😃

Hallo @kmclea16!

Ja, ADFS ist möglich, da Zammad das großartige Omniauth-Juwel verwendet, um Benutzer über Drittanbieter zu authentifizieren und zu synchronisieren. Es gibt bereits ein Juwel , das ADFS für Omniauth bereitstellt.

Es ist jedoch nicht geplant, dies in naher Zukunft umzusetzen, aber es sollte nicht so schwer sein . Wer weiß, vielleicht kann jemand eine Pull-Anfrage stellen? Wäre toll, wenn du dafür ein neues Thema erstellen könntest.

Die LDAP-Authentifizierung ist jetzt bereit für die kommende Version 1.6 von Zammad 🎉 Fühlen Sie sich frei, neue Probleme zu eröffnen, wenn Sie Probleme mit dieser Funktionalität haben.

@kmclea16 - wäre toll, das ADFS-Problem oder sogar eine Pull-Anfrage zu sehen 👀

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen