2. Domäne an OTRS anbinden.

Hilfe zu OTRS Problemen aller Art
Post Reply
rexxes
Znuny newbie
Posts: 19
Joined: 01 Apr 2014, 16:00
Znuny Version: 5.0.x
Real Name: Kevin

2. Domäne an OTRS anbinden.

Post by rexxes »

Guten Morgen an alle,

Wir haben mit unserer Firma eine weitere Firma gekauft, getrennte Domäne, keine Vertrauensstellung.
Beide Firmen sollen jedoch von der gleichen IT Abteilung Supportet werden. Demnach sind von der zweiten Domäne keine weiteren Agenten notwendig.

Seitdem ich die andere Firma bei uns aufgenommen habe, findet das OTRS nicht mehr alle Benutzer. Es sind User aus Domäne 1 nicht mehr bei den Kunden auffindbar. Das einzige was ich im OTRS Log finden kann ist die Fehlermeldung "LDAP size limit exceeded".

Ich habe mich dann natürlich auch etwas schlau gemacht, in manchen Threads hieß es man muss in der LDAP.pm die CustomerUserSearchListLimit erhöhen. Hab ich zum testen mal von 200 auf 20000 erhöht jedoch ohne Veränderung.
Ich habe auch mal etwas davon gelesen, dass man AD-seitig dieses Limit erhöhen kann, jedoch würde mich mal interessieren ob jemand Fehler in meiner Config.pm finden kann. Mein Windows Admin ist nämlich noch nicht so ganz überzeugt....

[Thu Apr 4 16:15:43 2019][Debug][Kernel::System::CustomerUser::LDAP::CustomerSearch][411] LDAP size limit exceeded (Sizelimit exceeded).


Freue mich über jegliche Art von Hilfe.

Code: Select all

package Kernel::Config;

use strict;
use warnings;
use utf8;

sub Load {
    my $Self = shift;

    # ---------------------------------------------------- #
    # database settings                                    #
    # ---------------------------------------------------- #

    # The database host
    $Self->{'DatabaseHost'} = '127.0.0.1';

    # The database name
    $Self->{'Database'} = "****";

    # The database user
    $Self->{'DatabaseUser'} = "****";

    # The password of database user. You also can use bin/otrs.CryptPassword.pl
    # for crypted passwords
    $Self->{'DatabasePw'} = '****';

    # The database DSN for MySQL ==> more: "perldoc DBD::mysql"
    $Self->{'DatabaseDSN'} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost}";

    # ---------------------------------------------------- #
    # fs root directory
    # ---------------------------------------------------- #
    $Self->{Home} = '/opt/otrs';

        $Self->{LogModule} = 'Kernel::System::Log::File';
        $Self->{'LogModule::LogFile'} = '/var/log/otrs.log';


#--------------------------------------------------------------------------------------------
#                                            Firma1                                         #
#--------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------
#                                   Agenten Authentifizeirung                               #
#--------------------------------------------------------------------------------------------
$Self->{'AuthModule1'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host1'} = 'firma1.local';
$Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=firma1,dc=local';
$Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::GroupDN1'} = 'CN=GG-***-ACL-OTRS,OU=Gruppen,OU=STANDORT,DC=firma1,DC=local';
$Self->{'AuthModule::LDAP::AccessAttr1'} = 'member';
$Self->{'AuthModule::LDAP::SearchUserDN1'} = 'user@firma1.local';	
$Self->{'AuthModule::LDAP::SearchUserPw1'} = '*****';
#--------------------------------------------------------------------------------------------
#                                  Kunden Authentifizeirung                                 #
#--------------------------------------------------------------------------------------------
$Self->{'Customer::AuthModule1'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host1'} = 'firma1.local';
$Self->{'Customer::AuthModule::LDAP::BaseDN1'} = 'DC=firma1,DC=local';
$Self->{'Customer::AuthModule::LDAP::UID1'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN1'} = 'user@firma1.local';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw1'} = '******';
#-------------------------------------------------------------------------------------------- 
#                                     Kundendaten                                           #
#--------------------------------------------------------------------------------------------
$Self->{CustomerUser1} = {
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
    Host => 'firma1.local',
    BaseDN => 'DC=firma1,DC=local',
    SSCOPE => 'sub',
    UserDN => 'user@firma1.local',
    UserPw => '******',
    AlwaysFilter =>  '(&(objectclass=user)(mail=*@firma1.de))',
	  	
    },
    CustomerKey => 'sAMAccountName',
    CustomerID => 'mail',
    CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    Map => [
	
	
      # note: Login, Email and CustomerID needed!
      # var, frontend, storage, shown, required, storage-type
#       [ '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' ],
#       [ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var' ],
#       [ 'UserComment', 'Comment', 'description', 1, 0, 'var' ],
    ],
  };


 #--------------------------------------------------------------------------------------------
 #                                       Ende                                         #
 #--------------------------------------------------------------------------------------------


#--------------------------------------------------------------------------------------------
#                                      Firma2                                                  #
#--------------------------------------------------------------------------------------------

#--------------------------------------------------------------------------------------------
#                                  Kunden Authentifizeirung                                 #
#--------------------------------------------------------------------------------------------
$Self->{'Customer::AuthModule2'} = 'Kernel::System::Auth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host2'} = 'Firma2.de';
$Self->{'Customer::AuthModule::LDAP::BaseDN2'} = 'DC=Firma2, DC=de';
$Self->{'Customer::AuthModule::LDAP::UID2'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::GroupDN2'} = 'DC=Firma2, DC=de';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN2'} = 'user@Firma2.de';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw2'} = '******';

#--------------------------------------------------------------------------------------------
#                                     Kundendaten                                           #
#--------------------------------------------------------------------------------------------
 $Self->{CustomerUser2} = {
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
      Host => 'Firma2.de',
      BaseDN => 'DC=Firma2, DC=de',
      SSCOPE => 'sub',
      UserDN => 'user@Firma2.de',
      UserPw => '******',
      SourceCharset => 'utf-8',
      DestCharset => 'utf-8',
    },
    CustomerKey => 'sAMAccountName',
    CustomerID => 'mail',
    CustomerUserListFields => ['givenname', 'sn', 'sAMAccountName', 'cn', 'mail'],
    CustomerUserSearchFields => ['givenname', 'sn', 'sAMAccountName', 'cn', 'mail'],
    CustomerUserPostMasterSearchFields => ['mail'],
    CustomerUserNameFields => ['givenname', 'sn'],
    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', 'sAMAccountName', 0, 1, 'var' ],
      [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ],
#      [ 'UserAddress', 'Ort', 'l', 1, 1, 'var' ],
#      [ 'UserComment', 'Company', 'company', 1, 1, 'var' ],
    ],
 };






delete $Self->{"Daemon::SchedulerCronTaskManager::Task"}->{"OTRSBusinessAvailabilityCheck"};
delete $Self->{"Daemon::SchedulerCronTaskManager::Task"}->{"OTRSBusinessEntitlementCheck"};

    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    # end of your own config options!!!                    #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
}

# ---------------------------------------------------- #
# needed system stuff (don't edit this)                #
# ---------------------------------------------------- #

use base qw(Kernel::Config::Defaults);

# -----------------------------------------------------#
#
1;
MfG rexxes
Last edited by rexxes on 15 Apr 2019, 09:13, edited 1 time in total.
wurzel
Znuny guru
Posts: 3228
Joined: 08 Jul 2010, 22:25
Znuny Version: x.x.x
Real Name: Florian

Re: 2. Domäne an OTRS anbinden.

Post by wurzel »

Hi,

Du kannst mal das caching (CacheTTL) zum testen auf 0 setzen sonst siehste Konfig Änderungen ggf. nicht. Deshalb zieht Dein Limit ggf. nicht.

Das Limit 200 sagt "nur" dass er mehr als 200 findet.

Aber auch Herr Zeppelin (wenn es Eintrag 30000 wäre) wird normalerweise gefunden wenn Du suchst.


Die Config sieht gut aus.


Wenn Einträge fehlen, sind es oft fehlerhafte bzw. fehlende Ldap Attribute oder Filter.

Wenn du also Alle Einträge von A-Z in der Kundenbenutzer Suche findest... alles OK.

Wenn du Einzelne User nicht findest, musst Du die Ldap Attribute anschauen.

Flo
OTRS 8 SILVER (Prod)
OTRS 8 auf Debian 11 (Test)
Znuny 7.x latest version testing auf Debian 11

-- Ich beantworte keine Forums-Fragen PN - No PN please

I won't answer to unfriendly users any more. A greeting and regards are just polite.
rexxes
Znuny newbie
Posts: 19
Joined: 01 Apr 2014, 16:00
Znuny Version: 5.0.x
Real Name: Kevin

Re: 2. Domäne an OTRS anbinden.

Post by rexxes »

Danke für die Antwort, sowas in diese Richtung hatte ich zuerst auch vermutet.
Jedoch war Domäne 1 schon länger am System angebunden. Und diverse User die ich damals gefunden hatte sind seit der Anbindung der 2. Domäne weg.
Wenn ich die 2. wieder auskommentiere sind die User aus Domäne 1 auch wieder vorhanden.

Das ist der Teil der mich etwas verwirrt.

Ich kann auch User von A-Z finden, nur eben einzelne nicht. Für mich sieht das vom verhalten her wirklich wie ein Limit aus, wobei es dann eigentlich bei einem bestimmten Buchstaben aufhören sollte und nicht zufällige User nicht mehr finden.
wurzel
Znuny guru
Posts: 3228
Joined: 08 Jul 2010, 22:25
Znuny Version: x.x.x
Real Name: Florian

Re: 2. Domäne an OTRS anbinden.

Post by wurzel »

Hi,

seltsam. Du könntest mal die AlwaysFilter => '(&(objectclass=user)(mail=*@firma1.de))',
ausschalten.

Geht's denn, wenn Du nur die 2. anbindest? Und nur die erste? Ja, hast ja geschrieben.

Dann muss es auch in der Kombination gehen.
Ich finde keine Fehler in der Config.

Flo
OTRS 8 SILVER (Prod)
OTRS 8 auf Debian 11 (Test)
Znuny 7.x latest version testing auf Debian 11

-- Ich beantworte keine Forums-Fragen PN - No PN please

I won't answer to unfriendly users any more. A greeting and regards are just polite.
rexxes
Znuny newbie
Posts: 19
Joined: 01 Apr 2014, 16:00
Znuny Version: 5.0.x
Real Name: Kevin

Re: 2. Domäne an OTRS anbinden.

Post by rexxes »

Moin Flo,

Genau das war die Lösung! :lol:

Alwaysfilter auskommentiert und auf einmal funktioniert es. Auch wenn ich mir jetzt die Symptome dabei nicht erklären kann...
Naja es funktioniert, das ist mal die Hauptsache....

Sollte jemand das gleiche Problem haben, Einfach wie beschrieben die AlwaysFilter Geschichte rausnehmen und es funktioniert.

Vielen Dank an alle die sich beteiligt haben !

Closed :)

Gruß
Kevin
rexxes
Znuny newbie
Posts: 19
Joined: 01 Apr 2014, 16:00
Znuny Version: 5.0.x
Real Name: Kevin

Re: 2. Domäne an OTRS anbinden.

Post by rexxes »

Ich hoffe mal das sieht noch jemand....

Ich kann leider nicht genau sagen welche Änderung das jetzt verursacht hat... Jedoch scheint die Synchronisation zur OTRS DB nicht mehr zu funktionieren.

Die bereits vorhandenen Agents können sich nach belieben einloggen.
Jedoch bei neuen Kunden sowie Agents bekomme ich eine Fehlermeldung...

Kundenportal :
ERROR: OTRS-CGI-07 Perl: 5.16.3 OS: linux Time: Wed Apr 24 08:44:26 2019

Message: Need CustomerID!

Agents :

Achtung, der Benutzer wurde authentifiziert, aber es konnten keine Benutzerdaten in der Datenbank gefunden worden. Möglicherweise ist der Benutzer ungültig.

Ich habe ein paar Sachen dazu gelesen, dass die Synchronisation dann nicht passt.
Jedoch hat das vor der Anbindung der 2. Domäne noch funktioniert.
Und an der Sync zur OTRS DB habe ich ja nichts angefasst.

Sieht da noch jemand einenen Fehler?
Post Reply