Topic Resolution: Resolved
Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #16265
      Alexander Frieske
      Teilnehmer

        Guten Tag OTOBO Forum,

        ich habe für meine Begriffe die AD Anbindung zum Auslesen der Kundenbenutzer aus unserer AD soweit richtig umgesetzt. Es landen die beiden Testnutzer aus der AD Gruppe “mee_bg_otobo_user” auch in OTOBO unter Kundennutzer. Zumindes werden sie mir dort angezeigt.

        Möchte ich mich nun aber mit einer der Nutzer im Kundenbereich unter unseredomain/otobo/costumer.pl anmelden, funktioniert das nicht. Benutzername oder Passwort würden nicht stimmen.

        Im Log finde ich komischerweise diesen Eintrag:
        Search failed! 000004DC: LdapErr: DSID-0C090CF4, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v4563

        Und hier mein Code dazu (IPs und PW geändert)

        #Customer LDAP Integration
        $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
        $Self->{'Customer::AuthModule::LDAP::Host'} = '1.2.3.4';
        $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET';
        $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
        $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=MEE_BG_OTOBO_USER,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET';
        $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
        $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
        #$Self->{'Customer::AuthModule::LDAP::UserLowerCase'} = 1;

        # The following is valid but would only be necessary if the
        # anonymous user do NOT have permission to read from the LDAP tree
        $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=Admin\, Testhausen,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET';
        $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'xxxxx';

        #Customer Synchronisation
        $Self->{CustomerUser} = {
        Name => 'LDAP Backend',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
        Host => '1.2.3.4',
        BaseDN => 'OU=INetAccess,OU=MEEUsers,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET',
        SSCOPE => 'sub',
        UserDN => 'CN=Admin\, Testhausen,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET',
        UserPw => 'xxxxx',
        #AlwaysFilter => '(&(objectclass=user)(memberof=CN=MEE_BG_OTOBO_USER,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Testhausen,DC=CCLEUROPE,DC=CCLIND,DC=NET))',
        Params => {
        port => 389,
        timeout => 120,
        async => 0,
        version => 3,
        },
        },

        #Daten der Nutzer in die OTOBO Datenbank einfügen
        CustomerKey => 'sAMAccountName',
        CustomerID => 'mail',
        CustomerUserListFields => ['cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
        CustomerUserNameFieldsJoin => '',
        CustomerUserExcludePrimaryCustomerID => 0,
        AdminSetPreferences => 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 ],
        [ '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 ],
        ],
        };

      • #16266
        marcel-graf
        Teilnehmer

          Hallo Alexander,

          es fehlen die Customer authentication settings.

          In dem Post sollte der Abschnitt drin sein.

          https://otobo.de/de/forums/topic/otobo-docker-mit-kerberos-ohne-https/#post-15640

          Gruß Marcel

           

          • #16271
            Alexander Frieske
            Teilnehmer

              Hi Marcel,

              das hat mir erstmal sehr weitergeholfen, DANKE!
              Ich musste allerdings nach dem Reinkopieren in die config.pm noch alle Hochkomma ´ und ` in normale ‘ umwandeln.

              Noch ein kurze Frage,
              Ich würde gern beim import die Benutzernamen generell in Kleinbuchstaben umwandeln und dort hinten dran noch unsere EMail Domain @soundso.com hängen. Dann wäre nämlich der Username für die Anmeldung an OTOBO gleich unserer AD.
              Ich weiß dass es da einen “lowercase” Befehl sowie “add suffix” oder sowas gibt, weiß aber nicht wo ich das dann überall einfügen müsste.

              Könntest du mir da evtl. auch noch helfen?

               

               

          • #16272
            marcel-graf
            Teilnehmer

              Hallo Alexander,

              hier mal was aus dem Znuny Forum: https://community.znuny.org/viewtopic.php?t=22148

              Suche dort einfach mal im Post 1 nach lowercase.

              Bin heute schon im Feierabend :)

               

              Gruß Marcel

               

              • #16273
                Alexander Frieske
                Teilnehmer

                  Es geht jetzt Alles, auch Kundennutzer können sich mit dem AD Benutzernamen anmelden und müssen dort auch nicht auf Groß- und Kleinschreibung achten.

                  Vielen Dank nochmal für die tolle Hilfe und überhaupt den Support hier!!!

              • #16301
                Alexander Frieske
                Teilnehmer

                  Also ich zweifel grad an mir selbst. Bis Freitag hat die Anmeldung für Kundenbenutzer mit AD Abgleich einwandfrei funktioniert. Ohne dass etwas an diesem Abschnitt geändert wurde, geht es nicht mehr mit der Meldung “…Benutzername oder Passwort wurden falsch eingegeben”?!

                  Komischerweise wird im Apache2 LOG keine Fehlermeldung in der error.log ausgegeben.

                  Hier nochmal mein Abschnitt aus der config.pm:

                  ####################################
                  # Customer authentication settings #
                  ####################################

                  $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
                  $Self->{'Customer::AuthModule::LDAP::Host'} = 'XXXXXX';
                  $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=XXXXX,DC=CCLEUROPE,DC=CCLIND,DC=NET';
                  $Self->{'Customer::AuthModule::LDAP::UID'} = 'samaccountname';

                  # Check if the user is allowed to auth in a posixGroup
                  $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=XXXXXX,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET';
                  $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
                  $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'XXXXXX,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET';
                  $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'XXXXXX';

                  $Self->{'Customer::AuthModule::LDAP::UserLowerCase'} = 0;

                  $Self->{'Customer::AuthModule::LDAP::Params'} = {
                  port => 389,
                  timeout => 120,
                  async => 0,
                  version => 3,
                  };

                  $Self->{CustomerUser} = {
                  Name => 'LDAP Backend',
                  Module => 'Kernel::System::CustomerUser::LDAP',
                  Params => {
                  Host => 'XXXXXXX',
                  BaseDN => 'OU=XXXXXX,OU=MEEUsers,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET',
                  SSCOPE => 'sub',
                  UserDN => 'XXXXXXX,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET',
                  UserPw => 'XXXXXXX',
                  AlwaysFilter => '(&(objectclass=user)(mail=*)(memberof=XXXXXXXX,OU=MEE_Benutzergruppen,OU=MEEGroups,OU=Meerane,DC=CCLEUROPE,DC=CCLIND,DC=NET))',
                  },

                  CustomerKey => 'sAMAccountName',
                  CustomerID => 'mail',
                  CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
                  CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
                  CustomerUserPostMasterSearchFields => ['mail'],
                  CustomerUserNameFields => ['givenname', 'sn'],
                  CustomerUserSearchListLimit => 1000,
                  CustomerCompanySupport => 0,

                  Map => [
                  [ 'UserSalutation', 'Title', 'title', 1, 0, 'var' ],
                  [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
                  [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
                  [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
                  [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
                  [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
                  [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
                  ],
                  };

                  # UserTable
                  $Self->{DatabaseUserTable} = 'users';
                  $Self->{DatabaseUserTableUserID} = 'id';
                  $Self->{DatabaseUserTableUserPW} = 'pw';
                  $Self->{DatabaseUserTableUser} = 'login';

                   

                  • Diese Antwort wurde geändert vor 2 Monaten, 3 Wochen von Alexander Frieske. Grund: Code vergessen
                  • Diese Antwort wurde geändert vor 2 Monaten, 3 Wochen von Alexander Frieske.
                • #16304
                  marcel-graf
                  Teilnehmer

                    Auf den ersten Blick sieht alles so aus, wie in meiner Testumgebung.

                    Bei Host hast du auch ldap:// immer davor stehen?

                    Als Always Filter kannst du auch folgendes probieren:

                    ‘(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=*)(sn=*)(givenname=*)(!(givenname=\00)))’

                  • #16305
                    marcel-graf
                    Teilnehmer

                      kannst auch nochmal bei Google suche nach “znuny ldap customer user kann sich nicht mehr einloggen” schauen, da sind paar konkrete Posts zu finden.

                    • #16306
                      Alexander Frieske
                      Teilnehmer

                        Hab jetzt das Backup vom Vortag der gesamten VM eingespielt – läuft wieder. Was da inzwischen schiefgelaufen ist, keine Ahnung.

                        Trotzdem Danke für die Links, man lernt nie aus!

                      • #16309
                        Stefan Abel
                        Moderator

                          Hi Marcel,

                          “Bei Host hast du auch ldap:// immer davor stehen?” => Das brauchst du nicht. Das Protokoll ist eigentlich nur bei LDAPS relevant (ldaps:// plus Port ändern, bspw. 636)

                          Hi Alexander,

                          gut, dass es jetzt wieder klappt, aber trotzdem eigenartig. Vielleicht wurde da irgendein komischer Zeichensatz kopiert?

                          Viele Grüße
                          Stefan

                      Ansicht von 7 Antwort-Themen
                      • Du musst angemeldet sein, um auf dieses Thema antworten zu können.