Agents automatisch anlegen via LDAP

Hilfe zu Znuny Problemen aller Art
Post Reply
Manfred89
Znuny newbie
Posts: 65
Joined: 14 Jun 2023, 21:44
Znuny Version: 6.5.11
Real Name: Manfred

Agents automatisch anlegen via LDAP

Post by Manfred89 »

Hey zusammen,

bei uns am System funktioniert die CustomerAuth Anmeldung via LDAP. Nun möchte ich auch eine Agent Authentifizierung via LDAP konfigurieren.
Ich würde gerne testen, dass die Agents automatisch angelegt und gelöscht werden.
Die Gruppenberechtigungen können immer noch später getestet werden.


Soweit habe ich es hinbekommen, dass die Authentifizierung via ldap zwar funktioniert, wenn der Agent bereits angelegt ist, jedoch bei nicht angelegten Agents er mir bei der Anmeldung sagt:
"Authentifizierung erfolgreich, aber in der Datenbank wurde kein Eintrag für den Benutzer gefunden. Bitte kontaktieren Sie Ihren Administrator."
Hier mal ein Auszug aus der Config.pm (Kommentare habe ich mal weggelassen):

Code: Select all

    # ---------------------------------------------------- #
    #                                                                  #
    # Agenten-Authentifizierung                      #
    #                                                                  #
    # ---------------------------------------------------- #


    $Self->{AuthModule} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = 'ldaps://xx.yy.de';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'o=xyz';
    $Self->{'AuthModule::LDAP::UID'} = 'cn';
    $Self->{'AuthModule::LDAP::SearchUserDN'} = 'cn=xyz,ou=xyz,o=xyz';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'xyz';
    $Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
    $Self->{'AuthModule::LDAP::Params'} = {
        port    => 636,
        timeout => 120,
        async   => 0,
        version => 3,
    };
    #$Self->{AuthModule} = 'Kernel::System::Auth::DB';        


    # ---------------------------------------------------- #
    #                                                                   #
    # Agenten-Synchronisierung                        #
    #                                                                   #
    # -----------------------------------------------------#
    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = 'ldaps://xx.yy.de';
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'o=xyz';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'cn';
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'cn=xyz,ou=xyz,o=xyz';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xyz';
    $Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '';
    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        # DB -> LDAP
        UserFirstname => 'givenName',
        UserLastname  => 'sn',
        UserEmail     => 'xyzmailPreferredAddress',
        UserLogin     => 'cn',
    };
    $Self->{'AuthSyncModule::LDAP::Params'} = {
        port    => 636,
        timeout => 600,
        async   => 0,
        version => 3,
    };
Ich schätze mal, dass das "AuthModule" erfolgreich funktioniert und der "AuthSyncModule" Bereich irgendwo einen Fehler hat.

Hier noch ein Auszug aus dem Systemprotokoll (Unterste Zeile ist ein DB-Agent)
You do not have the required permissions to view the files attached to this post.
root
Administrator
Posts: 4175
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Agents automatisch anlegen via LDAP

Post by root »

Hallo,

hier einige Punkte zu dem Thema:

1. Wenn du die URL-Schreibweise bei den LDAP-Hosts nutzt das braucht es den Port (port => 636,) nur wenn es nicht der Standardport ist.
2. Das Timeout auf 120 bzw. 600 bei den LDAP Params zu setzen ist nicht praktikabel. 10 Minuten warten bringt nichts weil das Timeout des Webservers schneller kommt. Bei lokalen Netzen empfehle ich Werte von max. 30 Sekunden.
3. Agenten werden angelegt und aktualisiert, Löschen gibt es nicht.
4. Den Grund warum das AuthSyncModule nicht funktioniert findet man meist heraus wenn man die SysConfig MinimumLogLevel auf debug stellt. Meist ist es das eines der Felder aus del Syncmapping im LDAP nicht befüllt ist, z.B. die E-Mail.

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
Manfred89
Znuny newbie
Posts: 65
Joined: 14 Jun 2023, 21:44
Znuny Version: 6.5.11
Real Name: Manfred

Re: Agents automatisch anlegen via LDAP

Post by Manfred89 »

1. Wenn du die URL-Schreibweise bei den LDAP-Hosts nutzt das braucht es den Port (port => 636,) nur wenn es nicht der Standardport ist.
2. Das Timeout auf 120 bzw. 600 bei den LDAP Params zu setzen ist nicht praktikabel. 10 Minuten warten bringt nichts weil das Timeout des Webservers schneller kommt. Bei lokalen Netzen empfehle ich Werte von max. 30 Sekunden.
Du meinst also ,weil ich bereits ldaps:// stehen habe und es unnötig doppelt erwähnt ist?
$Self->{'AuthModule::LDAP::Host'} = 'ldaps://xx.yy.de';

Dementsprechend könnte ich einfach das hier schreiben:

Code: Select all

$Self->{'AuthModule::LDAP::Params'} = {
       timeout => 30,
       async   => 0,
       version => 3,
    };
3. Agenten werden angelegt und aktualisiert, Löschen gibt es nicht.
Wie sieht es denn aus, wenn die Mitarbeiter/Agents aus dem LDAP verschwinden? Werden die Agents dann automatisch auf "ungültig" gesetzt oder muss ich das manuell erledigen?
4. Den Grund warum das AuthSyncModule nicht funktioniert findet man meist heraus wenn man die SysConfig MinimumLogLevel auf debug stellt. Meist ist es das eines der Felder aus del Syncmapping im LDAP nicht befüllt ist, z.B. die E-Mail.
Ich habe das LogLevel bereits auf Debug gestellt. Im Screenshot sieht man das nicht, weil keine Debug Meldung beim Versuch des Einloggens erscheint.
Das Log sagt, dass ein UserFirstname gebraucht wird, aber in der Syncmapping ist das ja gegeben.
root
Administrator
Posts: 4175
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Agents automatisch anlegen via LDAP

Post by root »

Hallo,

Manfred89 wrote: 08 Jan 2025, 10:15
1. Wenn du die URL-Schreibweise bei den LDAP-Hosts nutzt das braucht es den Port (port => 636,) nur wenn es nicht der Standardport ist.
2. Das Timeout auf 120 bzw. 600 bei den LDAP Params zu setzen ist nicht praktikabel. 10 Minuten warten bringt nichts weil das Timeout des Webservers schneller kommt. Bei lokalen Netzen empfehle ich Werte von max. 30 Sekunden.
Du meinst also ,weil ich bereits ldaps:// stehen habe und es unnötig doppelt erwähnt ist?
$Self->{'AuthModule::LDAP::Host'} = 'ldaps://xx.yy.de';

Dementsprechend könnte ich einfach das hier schreiben:

Code: Select all

$Self->{'AuthModule::LDAP::Params'} = {
       timeout => 30,
       async   => 0,
       version => 3,
    };
Korrekt
Manfred89 wrote: 08 Jan 2025, 10:15
3. Agenten werden angelegt und aktualisiert, Löschen gibt es nicht.
Wie sieht es denn aus, wenn die Mitarbeiter/Agents aus dem LDAP verschwinden? Werden die Agents dann automatisch auf "ungültig" gesetzt oder muss ich das manuell erledigen?
Ja, manuell ist am einfachen. Für Supportkunden haben wir ein Add-on das das anhand von inaktivität tut. Ob man das braucht würde ich jetzt mal von der Fluktuation des Personals abhängig machen.


Manfred89 wrote: 08 Jan 2025, 10:15 Das Log sagt, dass ein UserFirstname gebraucht wird, aber in der Syncmapping ist das ja gegeben.
Die Meldung sagt dir im LDAP fehlt der Vorname (givenname).

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
Manfred89
Znuny newbie
Posts: 65
Joined: 14 Jun 2023, 21:44
Znuny Version: 6.5.11
Real Name: Manfred

Re: Agents automatisch anlegen via LDAP

Post by Manfred89 »

Ja, manuell ist am einfachen. Für Supportkunden haben wir ein Add-on das das anhand von inaktivität tut. Ob man das braucht würde ich jetzt mal von der Fluktuation des Personals abhängig machen.
Ja, anhand der Inaktivität habe ich mir das dann auch gedacht.
Die Meldung sagt dir im LDAP fehlt der Vorname (givenname).
Du hast mich auf den Gedanken gebracht, mal die Accounts zu checken. Ich habe zufällig 3 User (Funktionsaccounts) getestet, wo der Firstname im LDAP nicht hinterlegt war. Mit einem vollständigen Account hat es funkioniert.
LDAP Agent Authentifizierung - erfolgreich.png

Ich danke dir wie immer vielmals Roy!!!
You do not have the required permissions to view the files attached to this post.
Post Reply