OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Hilfe zu Znuny Problemen aller Art
Locked
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Hallo,

ich habe jetzt ein Testsystem mit OTRS v3 Beta6 und wollte das zu allererst mit den Kundendaten aus dem LDAP füttern. Jedoch erhalte ich aus dem LDAP nur die Kundendaten, allerdings nicht die Gültigkeit. Überall steht bei Gültig nur ein "-". Das komische daran ist, dass es mir der gleichen Config auf dem 2.4.6 die Gültigkeit richtig gesetzt hat. (wobei ich da vorher auch die Kunden schon händig angelegt habe)

Woran kann das liegen? Von welchem Wert aus dem AD wird die Gültigkeit abgegriffen?

Mein Code ist der:

Code: Select all

# (customer user ldap backend and settings)
    $Self->{CustomerUser1} = {
        Name => 'LDAP Backend',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
#            # ldap host
            Host => 'xxx.xxx.xxx.xxx',
#            # ldap base dn
            BaseDN => 'DC=EXAMPLE,DC=DE',
#            # search scope (one|sub)
            SSCOPE => 'sub',
#            # The following is valid but would only be necessary if the
#            # anonymous user does NOT have permission to read from the LDAP tree
            UserDN => 'CN=User,DC=EXAMPLE,DC=DE',
            UserPw => 'User_PW',
#            # in case you want to add always one filter to each ldap query, use
#            # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
            AlwaysFilter => '(objectclass=user)',
#            # if both your frontend and your LDAP are unicode, use this:
            SourceCharset => 'utf-8',
            DestCharset   => 'utf-8',
#            # if your frontend is e. g. iso-8859-1 and the charset of your
#            # ldap server is utf-8, use these options.
#           SourceCharset => 'utf-8',
#            DestCharset => 'iso-8859-1',
#            # die if backend can't work, e. g. can't connect to server
            Die => 1,
#            # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
            Params => {
                port    => 389,
                timeout => 12,
                async   => 0,
                version => 3,
            },
        },
#        # customer uniq id
        CustomerKey => 'sAMAccountName',
#        # customer #
        CustomerID => 'mail',
        CustomerUserListFields => ['cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
#        CustomerUserSearchPrefix => '',
#        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
#        # show now own tickets in customer panel, CompanyTickets
        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 => [
#            # note: Login, Email and CustomerID needed!
#            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
#            [ 'UserTitle',      'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',   'sAMAccountName',  1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
#            # [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
	    [ 'UserMobile',     'Mobile',     'mobile',          1, 0, 'var', '', 0 ],
#            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
#            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
        ],
    };
Wo ist das fehlende Glied, für die Gültigkeit??

Edit: grad festgestellt: bei OTRS 2.4.6 liegt es auch nur daran, dass ich die Kunden vorher händig eingetragen habe, weshalb der Status da auf "gültig" einstellbar ist. Wo ist das letzte Puzzleteil?
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Kann mir keiner helfen? Hab schon alle möglichen Beispielconfigs durchgelesen, aber finde einfach keinen Punkt, der erklärt, warum Kunden bei Gültigkeit nur dieses Minus "-" stehen haben, und sich nicht einloggen können....
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by jojo »

Hallo,

es liegt nicht an der Gültigkeit, sondern einfach daran, daß kein AUTH Backend für den Kunden eingetragen ist.
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Oh, ok, das funktioniert jetzt erstmal. Danke jojo!! Jetzt will ich aber nicht alle Mitarbeiter als Kunden einpflegen, sondern nur welche, die auch in einer AD-Gruppe für OTRS Customer sind.

Mit dem Code werden aber beim Eröffnen eines neuen Telefontickets oder im Kundenbrowser immer alle angezeigt .. :(

Ich ging ja von der Annahme aus, dass das mit der Zeile $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_Customer,CN=Users,DC=EXAMPLE,DC=DE'; geregelt wird, und nur diejenigen, die in der Gruppe "OTRS_Customer" eingetragen sind, angezeigt werden.

Code: Select all

$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'xxx.xxx.xxx.xxx';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=EXAMPLE,DC=DE';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_Customer,CN=Users,DC=EXAMPLE,DC=DE';
     #$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'UID';
     #$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = ''CN=User,DC=EXAMPLE,DC=DE'';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'UserPW';
    $Self->{'Customer::AuthModule::LDAP::Params'} = {
        port => 389,
        timeout => 120,
        async => 0,
        version => 3,
    };
	
	
	$Self->{CustomerUser1} = {
      Name => 'LDAP Backend',
      Module => 'Kernel::System::CustomerUser::LDAP',
      Params => {
         Host => 'xxx.xxx.xxx.xxx,
         BaseDN => 'DC=EXAMPLE,DC=DE',
         SSCOPE => 'sub',
         UserDN => 'CN=User,DC=EXAMPLE,DC=DE',
         UserPw => 'User_PW',
		 AlwaysFilter => '(objectclass=user)',
		 SourceCharset => 'utf-8',
         DestCharset   => 'utf-8',
		 Die => 1,
         Params => {
            port => 389,
            timeout => 120,
            async => 0,
            version => 3,
         },
      },
      CustomerKey => 'sAMAccountName',
      CustomerID => 'mail',
      CustomerUserListFields => ['givenname', 'sn', 'mail'],
      CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
	   # CustomerUserSearchPrefix => '',
       # CustomerUserSearchSuffix => '*',
       CustomerUserSearchListLimit => 250,
       CustomerUserPostMasterSearchFields => ['mail'],
       CustomerUserNameFields => ['givenname', 'sn'],
       CustomerUserExcludePrimaryCustomerID => 0,
       AdminSetPreferences => 0,
       Map => [
           #[ 'UserSalutation', 'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',  'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',   'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',   'sAMAccountName',  1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',      'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID', 'mail',            0, 1, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephonenumber', 1, 0, 'var', '', 0 ],
			[ 'UserMobile',     'Mobile',     'mobile',          1, 0, 'var', '', 0 ],
           #[ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
           #[ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
       ],

    };
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by jojo »

Du musst die Zeilen

Code: Select all

     #$Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'UID';
     #$Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberUid';
auch entsprechend anpassen!

Code: Select all

     $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
     $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberof';
sollte funktionieren, ggf. nur member
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Habe nun viele verschiedene Möglichkeiten durchprobiert, leider alle mit dem gleichen Resultat, dass mir immer alle User des ADs angezeigt werden in der Kundensuche...

Code: Select all

$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_Customer,CN=Users,DC=EXAMPLE,DC=DE';
     $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'CN=OTRS_Customer,CN=Users,DC=EXAMPLE,DC=DE';
     $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberof';
Das gleiche auch nur mit "member" ohne "of". Ich bin der einzige Mitarbeiter in der Gruppe OTRS_Customer, also sollte ich ja eigentlich der Theorie nach auch nur als einziger angezeigt werden.

Noch mal ergänzend: mein Benutzer liegt auf CN=Name,OU=Organisationseinheit,OU=Mitarbeiter,DC=EXAMPLE,DC=DE und ist eben als einziger in der Gruppe OTRS_Customer..
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by jojo »

was sagt denn ein LDIF des users?

UserAttr ist DN nicht der ausgeschriebene DN des Users!
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Nach ein bisschen rumexperimentieren, habe ich eine Variante entdeckt, die zumindest funktioniert, um die Berechtigung für User zu vergeben. Also alle, die nicht in der Gruppe OTRS_Customer sind, können sich nun nicht mehr einloggen.

Code: Select all

$Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_Customer,CN=Users,DC=EXAMPLE,DC=DE';
     $Self->{'Customer::AuthModule::LDAP::UserAttr'} = 'DN';
     $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';
Allerdings werden die nicht berechtigten User immer noch in der Kundensuche im Agenteninterface angezeigt. Das ist bei Telefontickets o.ä. nicht ganz optimal, da dadurch auch viele "Leichen" mit angezeigt werden..
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by jojo »

Dann pass die BaseDn oder die AlwaysFilter Direktive an
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Wenn ich die BaseDN auf den Pfad der OTRS_Customer - Gruppe setze wird mir gar nichts mehr angezeigt, bwz. kein User kann sich mehr einloggen. (je nachdem an welcher Stelle ich die BaseDN definiere).

Bei AlwaysFilter hab ich keine Ahnung, wie ich dort definieren kann, dass mir nur die User aus dieser Gruppe angezeigt werden sollen. Habe nur Möglichkeiten gefunden, um nach EMail oder ObjectClass zu filtern... :(
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
Schlumpf
Znuny advanced
Posts: 119
Joined: 12 Jan 2010, 14:41
Znuny Version: 3.0.x

Re: OTRS 3 Beta6 - Kunden aus AD funkt. nicht

Post by Schlumpf »

Bei setzen der BaseDN auf den Pfad der User, werden mir bei der Kundensuche alle Kunden (auch alle "Leichen") angezeigt. Wenn ich auf die Gruppe für OTRS_Customer verweise werden mir wiederrum keine Kunden angezeigt.

Bei AlwaysFilter habe ich nun auch schon viel probiert, wie z.B. folgendes, mit und ohne "!" AlwaysFilter => '(&(objectclass=user)(!description=gesperrt))', --> Resultat war immer eine Kundensuche ohne Treffer..

Ein AlwaysFilter => '(objectclass=user)', [...] CustomerUserValidFilter => '(!(description=gesperrt))', gab wiederrum alle Kunden aus.


Das Log gibt mir dazu meist nur eine Fehlermeldung mit Bad Filter.
OTRS: 3.0.8
OS: SuSE
Module: Apache2, MySQL
Locked