• Deutsch
  • English
  • Anmeldung OTOBO Community
+49 (0)9427 68 39 000
OTOBO
  • SOFTWARE
    • Software | Überblick
    • IT Service Management
    • Customer Service Management
    • Enterprise Service Management
    • Demo
    • Download
    • Dokumentation
  • SERVICES
    • Überblick Services
    • Beratung
    • Training
    • Entwicklung
    • OTRS Migration zu OTOBO
    • Support
    • Managed Service
    • Support-Portal
  • UNTERNEHMEN
    • Über uns
    • Karriere
    • Partner
    • Kontakt
    • Newsletter
  • RESSOURCEN
  • COMMUNITY
    • Open Source
    • Community Forum
    • Download
    • Dokumentation
    • OTOBO übersetzen
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
Topic Resolution: Answered

Schlagwörter: AD, customeruser, LDAP

Ansicht von 11 Antwort-Threads
  • Autor
    Beiträge
    • 31. Mai 2022 um 13:19 Uhr - Views: 1986 #13289
      Answered
      Jürgen F
      Teilnehmer

        Ich habe Probleme die Kundendaten aus der AD zu importieren. Agenten können sich anmelden und die Zuordnung aus einer Gruppe in der AD funktioniert.

        Nun möche ich die Kundendaten aus der AD einlesen, damit ich sie im Ticket suchen kann. Wenn ich aber den folgenden Abschnitt in der Config.pm einfüge, bekomme ich den Fehler „syntax error at /opt/otobo/Kernel/Config.pm line 98, near „BaseDN“ Global symbol „$Self“ requires explicit package name“

        Hier der Abschnitt:

        $Self->{CustomerUser} = {
        Name => ‚LDAP Userdaten‘,
        Module => ‚Kernel::System::CustomerUser::LDAP‘,
        Params => {
        Host => ‚dc1.domain.de‘
        BaseDN => ‚dc=domain,dc=de‘,
        SSCOPE => ’sub‘,
        UserDN => ‚Domainbenutzer@domain.de‘,
        UserPW => ‚GeheimesPasswort‘,
        AlwaysFilter => “,
        # die if backend can’t work
        Die => 0,
        Params => {
        port => 389,
        timeout => 120,
        async => 0,
        version => 3,
        },
        },
        CustomerKey => ’sAMAccountName‘,
        # customer #
        CustomerID => ‚mail‘,
        CustomerUserListFields => [‚cn‘, ‚mail‘],
        CustomerUserSearchFields => [’sAMAccountName‘, ‚cn‘, ‚mail‘],
        CustomerUserSearchPrefix => “,
        CustomerUserSearchSuffix => ‚*‘,
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => [‚mail‘],
        CustomerUserNameFields => [‚givenname‘, ’sn‘],
        # Configures the character for joining customer user name parts. Join single space if it is not defined.
        CustomerUserNameFieldsJoin => “,
        # show customer user and customer tickets in the external interface
        CustomerUserExcludePrimaryCustomerID => 0,
        # add a ldap filter for valid users (expert setting)
        # # CustomerUserValidFilter => ‚(!(description=gesperrt))‘,
        # admin can’t change customer preferences
        AdminSetPreferences => 0,
        # cache time to live in sec. – cache any ldap queries
        # CacheTTL => 0,
        Map => [
        [ ‚UserTitle‘, Translatable(‚Title or salutation‘), ‚title‘, 1, 0, ‚var‘, “, 1, undef, undef ],
        [ ‚UserFirstname‘, Translatable(‚Firstname‘), ‚givenname‘, 1, 1, ‚var‘, “, 1, undef, undef ],
        [ ‚UserLastname‘, Translatable(‚Lastname‘), ’sn‘, 1, 1, ‚var‘, “, 1, undef, undef ],
        [ ‚UserLogin‘, Translatable(‚Username‘), ’sAMAccountName‘, 1, 1, ‚var‘, “, 1, undef, undef ],
        [ ‚UserEmail‘, Translatable(‚Email‘), ‚mail‘, 1, 1, ‚var‘, “, 1, undef, undef ],
        [ ‚UserCustomerID‘, Translatable(‚CustomerID‘), ‚mail‘, 0, 1, ‚var‘, “, 1, undef, undef ],
        [ ‚UserDepartment‘, Translatable(‚Department‘), ‚department‘, 1, 0, ‚var‘, “, 1, undef, undef ],
        [ ‚UserPhone‘, Translatable(‚Phone‘), ‚telephonenumber‘, 1, 0, ‚var‘, “, 1, undef, undef ],
        [ ‚UserAddress‘, Translatable(‚Address‘), ‚postaladdress‘, 1, 0, ‚var‘, “, 1, undef, undef ],
        [ ‚UserComment‘, Translatable(‚Comment‘), ‚description‘, 1, 0, ‚var‘, “, 1, undef, undef ],
        ],
        };

        Wo muss ich einen expliziten Paketnamen einfügen? Hat jemand einen Tipp was ich übersehe?

         

      • 1. Juni 2022 um 10:55 Uhr #13295
        Anonym

          Servus Jürgen!

          Fehlt hinter Host => ‚dc1.domain.de‘ einfach das Komma?

        • 2. Juni 2022 um 9:06 Uhr #13311
          Jürgen F
          Teilnehmer

            Das hatte ich gestern auch bemerkt, vielen Dank für deine Antwort!

            Als ich das Komma ergänzt habe, konnte der Server noch immer nicht starten. Ich bekam ich folgenden Fehler:

            [Wed Jun 01 14:50:45.697323 2022] [:error] [pid 1036163:tid 140569095427840] Attempt to reload Kernel/System/ObjectManager.pm aborted.
            Compilation failed in require at /opt/otobo/bin/cgi-bin/index.pl line 32.
            BEGIN failed–compilation aborted at /opt/otobo/bin/cgi-bin/index.pl line 32.

            Heute Morgen kann ich mich ohne Servererror wieder an Otobo anmelden. Der obige Fehler ist verschwunden. Das importieren der Kundendaten funktioniert aber weiterhin nicht.

            Im Apache Error Log findet sich nun die Meldung:

            Message: Search failed! 000004DC: LdapErr: DSID-0C0907E9, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580

            Im Syslog auch:

            OTOBO-CGI-51[2082226]: [Error][Kernel::System::CustomerUser::LDAP::CustomerSearch][Line:517]: Search failed! 000004DC: LdapErr: DSID-0C0907E9, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580

            Hat jemand eine Idee, wie ich herausfinden kann, an welcher Stelle die Verbindung zur AD abbricht / nicht komplett ist?

          • 2. Juni 2022 um 9:54 Uhr #13312
            Jürgen F
            Teilnehmer

              Hier nochmal der komplette Kundenteil:

              $Self->{‚Customer::AuthModule‘} = ‚Kernel::System::CustomerAuth::LDAP‘;
              $Self->{‚Customer::AuthModule::LDAP::Host‘} = ‚dc1.domain.de‘;
              $Self->{‚Customer::AuthModule::LDAP::BaseDN‘} = ‚dc=domain,dc=de‘;
              $Self->{‚Customer::AuthModule::LDAP::UID‘} = ’sAMAccountName‘;
              $Self->{‚Customer::AuthModule::LDAP::SearchUserDN‘} = ‚Domainbenutzer@domain.de‘;
              $Self->{‚Customer::AuthModule::LDAP::SearchUserPw‘} = ‚GeheimesPasswort‘;

              $Self->{CustomerUser} = {
              Name => ‚LDAP Backend‘,
              Module => ‚Kernel::System::CustomerUser::LDAP‘,
              Params => {
              Host => ‚dc1.domain.de‘,
              BaseDN => ‚ou=Mitarbeiter,dc=domain,dc=de‘,
              SSCOPE => ’sub‘,
              UserDN => ‚Domainbenutzer@domain.de‘,
              UserPW => ‚GeheimesPasswort‘,
              AlwaysFilter => ‚(objectclass=user)‘,
              # die if backend can’t work
              Die => 0,
              Params => {
              port => 389,
              timeout => 120,
              async => 0,
              version => 3,
              },
              },
              CustomerKey => ’sAMAccountName‘,
              # customer #
              CustomerID => ‚mail‘,
              CustomerUserListFields => [‚cn‘, ‚mail‘],
              CustomerUserSearchFields => [’sAMAccountName‘, ‚cn‘, ‚mail‘],
              CustomerUserSearchPrefix => “,
              CustomerUserSearchSuffix => ‚*‘,
              CustomerUserSearchListLimit => 250,
              CustomerUserPostMasterSearchFields => [‚mail‘],
              CustomerUserNameFields => [‚givenname‘, ’sn‘],

              Map => [
              [ ‚UserTitle‘, Translatable(‚Title or salutation‘), ‚title‘, 1, 0, ‚var‘, “, 1, undef, undef ],
              [ ‚UserFirstname‘, Translatable(‚Firstname‘), ‚givenname‘, 1, 1, ‚var‘, “, 1, undef, undef ],
              [ ‚UserLastname‘, Translatable(‚Lastname‘), ’sn‘, 1, 1, ‚var‘, “, 1, undef, undef ],
              [ ‚UserLogin‘, Translatable(‚Username‘), ’sAMAccountName‘, 1, 1, ‚var‘, “, 1, undef, undef ],
              [ ‚UserEmail‘, Translatable(‚Email‘), ‚mail‘, 1, 1, ‚var‘, “, 1, undef, undef ],
              [ ‚UserCustomerID‘, Translatable(‚CustomerID‘), ‚mail‘, 0, 1, ‚var‘, “, 1, undef, undef ],
              [ ‚UserDepartment‘, Translatable(‚Department‘), ‚department‘, 1, 0, ‚var‘, “, 1, undef, undef ],
              [ ‚UserPhone‘, Translatable(‚Phone‘), ‚telephonenumber‘, 1, 0, ‚var‘, “, 1, undef, undef ],
              [ ‚UserAddress‘, Translatable(‚Address‘), ‚postaladdress‘, 1, 0, ‚var‘, “, 1, undef, undef ],
              [ ‚UserComment‘, Translatable(‚Comment‘), ‚description‘, 1, 0, ‚var‘, “, 1, undef, undef ],
              ],
              };

              # Die if backend can’t work, e. g. can’t connect to server.
              $Self->{‚Customer::AuthModule::LDAP::Die‘} = 1;

            • 2. Juni 2022 um 12:23 Uhr #13316
              Anonym

                Wenn Du ein halbwegs aktuelles AD hast, dann funktioniert die Verbindung nicht unverschlüsselt über Port 389…

                Bei mir steht in der Config.pm:
                Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=Domainbenutzer,dc=domain,dc=de';
                (bei UserDN ebenfalls)

              • 2. Juni 2022 um 15:04 Uhr #13318
                Jürgen F
                Teilnehmer

                  Vielen Dank für die Antwort!

                  Die Verbindung funktioniert noch intern über Port 389, die Agenten werden so einwandfrei synchronisiert.

                  Irgendwo wird die Verbindung nicht abgeschlossen. Im Systemprotokoll kommt bei jeder Kundenabfrage:

                  Search failed! 000004DC: LdapErr: DSID-0C0907E9, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580

                  Bin für jede Idee dankbar wie ich das besser debuggen kann.

                • 3. Juni 2022 um 9:15 Uhr #13320
                  Jürgen F
                  Teilnehmer

                    Hab jetzt mal mit ldp.exe versucht eine einfache Bindung zum AD herzustellen.

                    Wenn ich nur den Benutzernamen eingebe und das PW bekomme ich folgenden Fehler:

                    Error <49>: ldap_simple_bind_s() failed: Ungültige Anmeldeinformationen
                    Server error: 80090308: LdapErr: DSID-0C09044E, comment: AcceptSecurityContext error, data 52e, v2580
                    Error 0x80090308 Das Token, das der Funktion übergeben wurde, ist ungültig.

                    Wenn ich den Benutzernamen@Domain.de eingebe funktioniert die Verbindung.

                    ld = ldap_open(„dc1.domain.de“, 389);
                    Established connection to dc1.domain.de.

                    Was eigentlich klar ist, da die Agenten ja fehlerfrei synchronisiert werden.

                    Das Problem ist also, dass bei dem {CustomerUser} nur Benutzername und PW an die AD übergeben werden und nicht „@Domain.de“ und so die Verbindung in einen Fehler läuft.

                     

                    • 3. Juni 2022 um 13:17 Uhr #13321
                      Anonym

                        Hast du es schon mit dem „Distinguished Name“ in der Config.pm probiert?

                        Also: ‚cn=Domainbenutzer,dc=domain,dc=de‘

                    • 7. Juni 2022 um 8:43 Uhr #13329
                      Jürgen F
                      Teilnehmer

                        Jupp, habe ich probiert, bleibt aber beim gleichen Ergebnis. Anscheinend wird nur der sAMAccountName und das PW übergeben.

                        Die Frage ist warum es bei den Agenten mit
                        $Self->{‚AuthSyncModule::LDAP::SearchUserDN‘} = ‚Domainbenutzer@domain.de‘;
                        funktioniert, mit den Params UserDN => ‚Domainbenutzer@domain.de‘; aber nicht.
                        Finde auch keinen anderen Weg wie ich die Userdaten anders mappen kann.
                        Laut Doku soll es ja genau so funktionieren.

                         

                      • 7. Juni 2022 um 15:07 Uhr #13336
                        Jürgen F
                        Teilnehmer

                          Hier mal die vollständige Fehlermeldung aus dem Apache Error.log:

                          ERROR: OTOBO-CGI-51 Perl: 5.32.1 OS: linux Time: Tue Jun 7 12:57:49 2022

                          Message: Search failed! 000004DC: LdapErr: DSID-0C0907E9, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580

                          RemoteAddress: xxx.xxx.xxx.xxx
                          RequestURI: /otobo/index.pl?Action=AdminCustomerUser;Nav=None;Subject=;What=;ChallengeToken=3tAAQyiJBzd8xtGVtiKxMpUJAP7XMW0r

                          Traceback (27764):
                          Module: Kernel::System::CustomerUser::LDAP::CustomerSearch Line: 535
                          Module: Kernel::System::CustomerUser::CustomerSearch Line: 295
                          Module: Kernel::Modules::AdminCustomerUser::_Overview Line: 934
                          Module: Kernel::Modules::AdminCustomerUser::Run Line: 830
                          Module: Kernel::System::Web::InterfaceAgent::Run Line: 1258
                          Module: ModPerl::ROOT::ModPerl::Registry::opt_otobo_bin_cgi_2dbin_index_2epl::handler Line: 37
                          Module: (eval) (v1.99) Line: 207
                          Module: ModPerl::RegistryCooker::run (v1.99) Line: 207
                          Module: ModPerl::RegistryCooker::default_handler (v1.99) Line: 173
                          Module: ModPerl::Registry::handler (v1.99) Line: 32

                        • 7. Juni 2022 um 16:42 Uhr #13337
                          Jürgen F
                          Teilnehmer

                            Hab jetzt probiert das Suffix noch dazu zu bekommen:

                            $Self->{‚Customer::AuthModule::LDAP::SearchUserDN‘} = ‚CN=Domainbenutzer,OU=OrganizationalUnit,DC=domain,DC=de‘;
                            $Self->{‚Customer::AuthModule::LDAP::SearchUserSuffix‘} = ‚@domain.de‘;

                            und unter $Self->{CustomerUser} = {

                            UserDN => ‚CN=Domainbenutzer,OU=OrganizationalUnit,DC=domain,DC=de‘,
                            UserSuffix => ‚@domain.de‘,
                            UserPW => ‚GeheimesPasswort‘,

                            Nach wie vor bleibt der Fehler:
                            Message: Search failed! 000004DC: LdapErr: DSID-0C0907E9, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580

                            So langsam gehen mir die Ideen aus.

                          • 8. Juni 2022 um 8:42 Uhr #13338
                            Best Answer
                            Stefan Rother
                            Administrator

                              Hallo Jürgen,

                              ich würde nochmal ein Schritt zurückgehen, die Konfiguration schaut mir nicht ganz vollständig aus. Die aktuelle Konfiguration findest Du in der Datei /opt/otobo/Kernel/Config/Defaults.pm. Hier bitte den CustomerUser für LDAP Teil rauskopieren und in die Datei /opt/otobo/Kernel/Config.pm übernehmen.

                              Zuerst war Deine Syntax nicht richtig (fehlendes Komma), daran hatte sich der Apache verschluckt (daher ging es am nächsten Tag wieder, ein „service apache restart“ hätte hier auch geholfen).

                              Der Fehler gerade sagt eigentlich nur, dass der Bind nicht erfolgreich war, entweder es stimmt etwas mit dem Bind-User nicht.

                              Ich gebe hier immer den gesamten Pfad zu dem User an (UserPrincipalName glaube ich). Den Teil mit dem Suffix kannst Du einfach wieder rauswerfen und die UserDN wie folgt angeben:

                              UserDN => ‚CN=Domainbenutzer,OU=OrganizationalUnit,DC=domain,DC=de‘,

                              Wenn Du das gemacht hast, liegt es sicher an irgendeiner Kleinigkeit. Also alles nochmal raus und aus der Defaults.pm neu machen, eventuell hast Du irgendwelche Hochkommas falsch reimkopiert o.ä.

                              Schöne Grüße,

                              Stefan

                              Team OTOBO

                               

                            • 8. Juni 2022 um 15:06 Uhr #13339
                              Jürgen F
                              Teilnehmer

                                Das hat funktioniert vielen Dank!

                            • Autor
                              Beiträge
                            Ansicht von 11 Antwort-Threads
                            • Das Thema „ Kunden aus ActiveDirectory importieren“ ist für neue Antworten geschlossen.

                            Foren durchsuchen

                            Anmeldung

                            Anmeldung

                            Konto erstellen
                            Passwort vergessen?

                            Login via Social

                            Profil

                            Bitte vervollständigen Sie nach der Registrierung Ihr Profil, das vereinfacht die spätere Kommunikation enorm. Ihre Profileinstellung finden Sie, wenn Sie auf Ihr Avatarbild klicken.

                            Sie können Ihren Avatar ändern, indem Sie sich mit Ihrer E-Mail-Adresse unter gravatar.com registrieren.

                            Letzte Aktivitäten

                            • FAQ: kaputtes Copy & Paste von Bildern zwischen Artikeln
                            • Dynamische Felder in AgentTicketNote mit ACL verstecken
                            • Benachrichtigung „Ticket wurde mir entzogen“ möglich?
                            • Statistik Anzahl Tickets pro Agent
                            • Docker: Ändern des redis Hosts

                            Unternehmen

                            Über uns
                            Karriere
                            Stellenbörse
                            Partner werden
                            Kontakt
                            Newsletter

                            OTOBO | Simplify work and create exceptional service experiences.

                            Die Source Code Owner und Maintainer hinter OTOBO.

                            Software

                            Service Management-Plattform
                            OTOBO Demo
                            OTOBO Download
                            OTOBO Dokumentation

                            Security-Problem melden:
                            security@otobo.org

                            Services

                            Support-Portal
                            Beratung
                            Training
                            Support
                            Managed Services
                            Erweiterung
                            OTRS Migration
                            Partner finden

                            Community

                            Open Source
                            Community Forum
                            Mitmachen
                            OTOBO Developer
                            OTOBO@GitHub

                            © 2026 Rother OSS GmbH | All rights reserved.
                            • Cookie-Einstellungen
                            • Impressum
                            • Datenschutz
                            • Haftungsausschluss
                            Nach oben scrollen Nach oben scrollen Nach oben scrollen