Viewing 6 reply threads
  • Author
    Posts
    • #15623
      Bernhard Bergmann
      Participant

        Moin,

        ich versuche gerade eine Docker-Installation zu realisieren, die Kerberos nutzt, um sich an einem AD zu authentifizieren.

        Die Installation soll allerdings ausschließlich intern genutzt werden und das auch von nicht Domänen-Mitgliedern, daher ist reines HTTP gewünscht.

        Ich habe daher die ENV-Vorlage HTTPS_Kerberos gewählt und in der CUSTOM_NGINX den Redirect entfernt. Das scheint aber leider keinerlei Auswirkungen zu haben, es wird immer noch von HTTP auf HTTPs umgeleitet.

        Wie kann ich wohl in der Konfiguration den Redirect korrekt deaktivieren ?

        Gruß und Danke

      • #15625
        marcel-graf
        Participant

          Hallo Bernhard Bergmann,

          nach der Anleitung sollte alles laufen. Punkt 4 kann dabei übersprungen werden

          https://doc.otobo.de/manual/installation/10.1/de/content/installation-docker.html

          Schau mal in den folgenden Post, da habe ich eine Install Anleitung verfasst.

          https://otobo.de/de/forums/topic/docker-installation-nicht-moeglich/#post-15125 da ist eine

          Die AD Authentifizierung für Agenten bzw. Customer, wurde auch bereits im Forum beschrieben.

          Gruß Marcel

        • #15626
          Bernhard Bergmann
          Participant

            Hallo Marcel,

            erstmal vielen Dank für die schnelle Antwort.

            Die Anleitung habe ich für die erste Installation genutzt, lief auch einwandfrei, nur HTTP.

            Dann wollte ich die AD Anbindung machen, die Anleitung dazu habe ich auch gefunden (https://doc.otobo.de/manual/installation/10.1/de/content/sso-kerberos.html), nur da scheint dann HTTPs die Grundlage zu sein, es findet sich ja auch keine ENV-Vorlage für HTTP und Kerberos. Und damit kam dann der Redirect von HTTP auf HTTPs ins Spiel.

             

          • #15627
            marcel-graf
            Participant

              Per LDAP, da intern, ist keine Lösung?

              Gruß Marcel

            • #15628
              marcel-graf
              Participant

                In der Anleitung oder Hier mal nach LDAP bzw Agenten-Authentifizierungs-Backend suchen.

                Agenten-Authentifizierungs-Backend
                Die Tabelle users enthält standardmäßig Ihre Agentendaten. Sie können einen Verzeichnis-Server (LDAP/Active Directory) zur Authentifizierung an Ihre Installation anhängen. Um dies zu erreichen, kopieren Sie den folgenden Block aus der Defaults.pm und fügen ihn in die Config.pm ein.

                Um dies zu erreichen per SSH (putty) auf dem Server einloggen und die Datei editieren.

                sudo docker exec -it otobo_web_1 bash

                cd /opt/otobo/Kernel

                mit dem Editor vi oder nano die Datei Config.pm bearbeiten

                Gruß Marcel

              • #15639
                Bernhard Bergmann
                Participant

                  Hallo Marcel,

                  vielen Dank für Deinen Input. Kerberos legen wir zu den Akten, ich habe es heute mal mit der LDAP-Variante versucht. Funktioniert leider auch nicht so auf Anhieb.

                  ich bekomme ständig im Log des Web-Containers einen „AcceptSecurityContext error, data 52e“ und habe bereits in der Config.pm diverse Schreibweisen des Benutzernamens ausprobiert.

                  Auch wird nach der Anpassung der Config.pm die lokale Anmeldung unterbunden, dazu habe ich auf die Schnelle aber leider auch nichts gefunden, um das parallel zu ermöglichen.

                  • #15647
                    Stefan Abel
                    Participant

                      Hallo,

                      bei 52e klingelt bei mir „First bind failed“, was eigentlich immer bedeutet, dass der SearchUser fehlt, oder Benutzername/Passwort falsch ist.

                      Viele Grüße
                      Stefan

                  • #15640
                    marcel-graf
                    Participant

                      Hallo Bernhard,

                      hier mal meine Testdatei. Haben aber aktuell kein Ldap angebunden.

                       

                      ###############################################################################################
                      # LDAP Anbindung Anfang #
                      ###############################################################################################

                      ###########################################
                      # Customer User LDAP Backend and Settings #
                      ###########################################

                      $Self->{CustomerUser1} = {
                      Module => ‚Kernel::System::CustomerUser::LDAP‘,
                      Params => {
                      #Host => ‚ldaps://ad-server.domain.local‘,
                      Host => ‚ldap://ldap-host‘,
                      BaseDN => ‚DC=standort,DC=int‘,
                      SSCOPE => ’sub‘,
                      #UserDN => ‚cn=otrs user, ou=User_Special, dc=domain, dc=local‘,
                      UserDN => ‚CN=ldap-user,OU=Service_Accounts,OU=User,OU=IT,OU=Site01,DC=standort,DC=int‘,
                      UserPw => ‚ldap-kennwort‘,
                      #AlwaysFilter => ‚(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=*)(sn=*)(givenname=*)(!(givenname=\00)))‘,
                      # this option. e. g. AlwaysFilter => ‚(mail=*)‘ or AlwaysFilter => ‚(objectclass=user)‘
                      #AlwaysFilter => ‚(objectclass=user)(mail=*)‘,
                      AlwaysFilter => ‚(&(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=*)(sn=*)(givenname=*)(!(givenname=\00)))‘
                      SourceCharset => ‚utf-8‘,
                      DestCharset => ‚utf-8‘,
                      Params => {
                      # sslversion => ‚tlsv1_2′,
                      #},
                      port => 389,
                      timeout => 120,
                      async => 0,
                      version => 3,
                      },
                      },
                      CustomerKey => ’sAMAccountName‘,
                      CustomerID => ‚mail‘,
                      CustomerUserListFields => [‚cn‘, ‚mail‘],
                      CustomerUserSearchFields => [’sAMAccountName‘, ‚cn‘, ‚mail‘, ’sn‘, ‚mobile‘, ‚telephonenumber‘],
                      CustomerUserPostMasterSearchFields => [‚mail‘],
                      CustomerUserNameFields => [‚givenname‘, ’sn‘],
                      # CacheTTL => 1200,
                      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‘ ],
                      [ ‚UserMobile‘, ‚Mobile‘, ‚mobile‘, 1, 0, ‚var‘ ],
                      [ ‚UserAddress‘, ‚Address‘, ‚postaladdress‘, 1, 0, ‚var‘ ],
                      ],
                      };

                      #################################################################################################
                      # —————————————————- #
                      # LDAP AUTH #
                      # —————————————————- #

                      # LDAP Backend
                      $Self->{AuthModule} = ‚Kernel::System::Auth::LDAP‘;
                      $Self->{‚AuthModule::LDAP::Host‘} = ‚ldap://ldap-host‘;
                      $Self->{‚AuthModule::LDAP::BaseDN‘} = ‚DC=standort,DC=int‘;
                      $Self->{‚AuthModule::LDAP::UID‘} = ’samaccountname‘;

                      # Check if the user is allowed to auth in a posixGroup
                      $Self->{‚AuthModule::LDAP::GroupDN‘} = ‚CN=OtoboHelpdeskAgents,OU=FU_Groups,OU=Groups,OU=IT,OU=Site01,DC=standort,DC=int‘;
                      $Self->{‚AuthModule::LDAP::AccessAttr‘} = ‚member‘;
                      $Self->{‚AuthModule::LDAP::UserAttr‘} = ‚DN‘;
                      $Self->{‚AuthModule::LDAP::SearchUserDN‘} = ‚CN=ldap-user,OU=Service_Accounts,OU=User,OU=IT,OU=Site01,DC=standort,DC=int‘;
                      $Self->{‚AuthModule::LDAP::SearchUserPw‘} = ‚ldap-kennwort‘;

                      # ————————————————— #
                      # Authentication sync settings #
                      # (enable agent data sync. after succsessful #
                      # authentication) #
                      # ————————————————— #
                      # (take care that Net::LDAP is installed!)
                      $Self->{AuthSyncModule} = ‚Kernel::System::Auth::Sync::LDAP‘;
                      $Self->{‚AuthSyncModule::LDAP::Host‘} = ‚ldap://ldap-host‘;
                      $Self->{‚AuthSyncModule::LDAP::BaseDN‘} = ‚DC=standort,DC=int‘;
                      $Self->{‚AuthSyncModule::LDAP::UID‘} = ’samaccountname‘;
                      $Self->{‚AuthSyncModule::LDAP::SearchUserDN‘} = ‚CN=ldap-user,OU=Service_Accounts,OU=User,OU=IT,OU=Site01,DC=standort,DC=int‘;
                      $Self->{‚AuthSyncModule::LDAP::SearchUserPw‘} = ‚ldap-kennwort‘;
                      $Self->{‚AuthSyncModule::LDAP::UserSyncMap‘} = {
                      # DB -> LDAP
                      UserFirstname => ‚givenName‘,
                      UserLastname => ’sn‘,
                      UserEmail => ‚mail‘,
                      UserLogin => ’sAMAccountName‘
                      };

                      # Net::LDAP new params
                      $Self->{‚AuthSyncModule::LDAP::Params‘} = {
                      port => 389,
                      timeout => 120,
                      async => 0,
                      version => 3,
                      };

                      $Self->{‚AuthSyncModule::LDAP::AccessAttr‘} = ‚member‘;
                      $Self->{‚AuthSyncModule::LDAP::UserAttr‘} = ‚DN‘;

                      # Sync LDAP groups to OTOBO groups
                      $Self->{‚AuthSyncModule::LDAP::UserSyncGroupsDefinition‘} = {
                      # ldap group
                      ‚CN=OtoboHelpdeskAgents,OU=FU_Groups,OU=Groups,OU=IT,OU=Site01,DC=standort,DC=int‘ => {
                      # otrs group
                      ‚admin‘ => {
                      # permission
                      rw => 1,
                      ro => 1,
                      },
                      ‚faq‘ => {
                      rw => 0,
                      ro => 1,
                      },
                      },
                      ‚CN=OtoboHelpdeskCustomers,OU=FU_Groups,OU=Groups,OU=IT,OU=Site01,DC=standort,DC=int‘ => {
                      ‚users‘ => {
                      rw => 1,
                      ro => 1,
                      },
                      }
                      };

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

                      $Self->{‚Customer::AuthModule‘} = ‚Kernel::System::CustomerAuth::LDAP‘;
                      $Self->{‚Customer::AuthModule::LDAP::Host‘} = ‚ldap://ldap-host‘;
                      $Self->{‚Customer::AuthModule::LDAP::BaseDN‘} = ‚DC=standort,DC=int‘;
                      $Self->{‚Customer::AuthModule::LDAP::UID‘} = ’samaccountname‘;

                      # Check if the user is allowed to auth in a posixGroup
                      $Self->{‚Customer::AuthModule::LDAP::GroupDN‘} = ‚CN=OtoboHelpdeskCustomers,OU=FU_Groups,OU=Groups,OU=IT,OU=Site01,DC=standort,DC=int‘;
                      $Self->{‚Customer::AuthModule::LDAP::AccessAttr‘} = ‚member‘;

                      $Self->{‚Customer::AuthModule::LDAP::SearchUserDN‘} = ‚CN=ldap-user,OU=Service_Accounts,OU=User,OU=IT,OU=Site01,DC=standort,DC=int‘;
                      $Self->{‚Customer::AuthModule::LDAP::SearchUserPw‘} = ‚ldap-kennwort‘;
                      $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 => ‚ldap://ldap-host‘,
                      BaseDN => ‚DC=standort,DC=int‘,
                      SSCOPE => ’sub‘,
                      UserDN => ‚CN=ldap-user,OU=Service_Accounts,OU=User,OU=IT,OU=Site01,DC=standort,DC=int‘,
                      UserPw => ‚ldap-kennwort‘,
                      AlwaysFilter => “,
                      },

                      CustomerKey => ’sAMAccountName‘,
                      CustomerID => ‚mail‘,
                      CustomerUserListFields => [’sAMAccountName‘, ‚cn‘, ‚mail‘],
                      CustomerUserSearchFields => [’sAMAccountName‘, ‚cn‘, ‚mail‘],
                      CustomerUserPostMasterSearchFields => [‚mail‘],
                      CustomerUserNameFields => [‚givenname‘, ’sn‘],
                      CustomerUserSearchListLimit => 1000,

                      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‘;

                      # —————————————————- #
                      # End LDAP Auth #
                      # —————————————————- #

                      #################################################################################################
                      # LDAP Anbindung Ende
                      #################################################################################################

                      Gruß Marcel

                  Viewing 6 reply threads
                  • You must be logged in to reply to this topic.