AD Anbindung für Kunden mit Einschränkung durch Gruppen

Hilfe zu Znuny Problemen aller Art
Locked
wiseguy
Znuny newbie
Posts: 29
Joined: 01 Oct 2010, 14:39
Znuny Version: 2.4.7

AD Anbindung für Kunden mit Einschränkung durch Gruppen

Post by wiseguy »

Hallo,

ich habe im AD einige Benutzer, die sollen sich nicht an OTRS anmelden können. Bzw. es sollen sich nur User anmelden können, die in einer bestimmten (durch Filter automatisch aktualisierenden) Gruppe sind.

Dazu habe ich in der Config.pm folgendes stehen:

Code: Select all

    #-------------------------------------#
    # LDAP Konfiguration / Kunden Auth    #
    #-------------------------------------#
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'local.meinedomain.com';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=local,dc=meinedomain,dc=com';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
    # Check if the user is allowed to auth in a posixGroup
    # (e. g. user needs to be in a group xyz to use otrs)
    $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'cn=otrs_kunden,ou=meinstandort,dc=local,dc=meinedomain,dc=com';
    $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberUid';


    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=OTRS,OU=EDV,OU=meinstandort,dc=local,dc=meinedomain,dc=com';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'meinpasswort';

    #--------------------------------------#
    # LDAP Konfiguration / Kundendaten     #
    #--------------------------------------#
    # CustomerUser
    # (customer user ldap backend and settings)
    $Self->{CustomerUser1} = {
      Name => 'AD Datenquelle',
      Module => 'Kernel::System::CustomerUser::LDAP',
      Params => {
        # ldap host
        Host => 'local.meinedomain.com',
        # ldap base dn
        BaseDN => 'dc=local,dc=meinedomain,dc=com',
        # 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=otrs,OU=EDV,OU=meinstandort,dc=local,dc=meinedomain,dc=com',
        UserPw => 'meinpasswort',
        SourceCharset => 'utf-8',
        DestCharset => 'iso-8859-1',
      },
      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' ],
      ],
    };
Ich erhalte aber die Fehlermeldung

Code: Select all

[Error][Kernel::System::CustomerUser::LDAP::CustomerSearch][363] Sizelimit exceeded
im Logfile, sobald ich im Admin Bereich auf Kunden gehe und somit vermutlich die Abfrage durchgeführt wird.

Wie führt man denn solche Abfragen richtig durch, so dass ich mit Hilfe der Gruppen im AD dann auch im otrs z.B. Kunden zuweisen kann bzw. später auch über Gruppen Agenten bestimmen kann und diesen quees zuordnen kann...

Letztendlich würde ich gern diese Zuordnungen im AD vornehmen können wollen. Ist dass denn überhaupt möglich?
OTRS Version: 3.0.7
Server: Debian Squeeze mit Apache, PHP5 und MySQL
wiseguy
Znuny newbie
Posts: 29
Joined: 01 Oct 2010, 14:39
Znuny Version: 2.4.7

Re: AD Anbindung für Kunden mit Einschränkung durch Gruppen

Post by wiseguy »

Ich kamm hier einfach nicht weiter. Hat da nicht jemand einen Tip für mich, wie man Gruppenafragen hier richtig reinbringt?
OTRS Version: 3.0.7
Server: Debian Squeeze mit Apache, PHP5 und MySQL
wiseguy
Znuny newbie
Posts: 29
Joined: 01 Oct 2010, 14:39
Znuny Version: 2.4.7

Re: AD Anbindung für Kunden mit Einschränkung durch Gruppen

Post by wiseguy »

Ich hab das jetzt noch mal überarbeitet, komm aber immer noch nicht zum gewünschten Ergebnis:
Die ganzen $Self->{'Customer::AuthModule...'} hab ich jetzt mal rausgelassen und es geht trotzdem genau wie mit diesen gesetzten Variablen (also wenn ich im Admin Bereich auf Kunden gehe, sehe ich genau das selbe, ob ich diese Variablen gesetzt habe oder nicht). Also nehme ich an, dass ich den ersten teil nicht benötige.

Meine momentane Konfiguration sieht so aus:

Code: Select all

    $Self->{CustomerUser1} = {
        Name => 'LDAP Datenquelle',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'local.meinedomain.com',
            BaseDN => 'OU=testuser,DC=local,DC=meinedomain,DC=com',

#            GroupDN => 'CN=otrs-customer,OU=testuser,DC=local,DC=meinedomain,DC=com',
#            AccessAttr => 'member',
#            UserAttr => 'DN',

            UID => 'sAMAccountName',
            SSCOPE => 'sub',
            UserDN => 'cn=otrs,ou=EDV,ou=testuser,dc=local,dc=meinedomain,dc=com',
            UserPw => 'qwertz',
            SourceCharset => 'utf-8',
            DestCharset => 'iso-8859-1',
        },
            
        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' ],
        ],
    };
Wobei die 3 auskommentierten Zeilen relativ am Anfang

Code: Select all

#            GroupDN => 'CN=otrs-customer,OU=testuser,DC=local,DC=meinedomain,DC=com',
#            AccessAttr => 'member',
#            UserAttr => 'DN',
vermutlich das Problem/die Lösung sind:
Wenn ich diese Zeilen nämlich weglasse, dann sehe ich im Adminbereich unter Kunden alle Benutzer aus dem AD (und leider auch alle Gruppen, die darin sind, was ja quatsch ist, denn ich will ja nur Benutzer haben... also er fragt einfach alles ab, was unterhalb von OU=testuser) liegt.
benutze ich die 3 besagten Zeilen (weil ich ja eigentlich nur die Gruppe otrs-customer haben will), dann sehe ich überhaupt keinen Eintrag unter Kunden.

Egal welche Variante ich aber nehme, ich bekomme immer bei jedem Zugriff aufs Adminmenü oder den darin enthalten Kunden Bereich die Fehlermeldung
[Error][Kernel::System::CustomerUser::LDAP::CustomerSearch][363] Sizelimit exceeded
Ich wäre wirklich sehr dankbar, wenn mir hier jemand weiterhelfen könnte, da ich echt nicht mehr weiß, was ich da noch probieren könnte...
OTRS Version: 3.0.7
Server: Debian Squeeze mit Apache, PHP5 und MySQL
wiseguy
Znuny newbie
Posts: 29
Joined: 01 Oct 2010, 14:39
Znuny Version: 2.4.7

Re: AD Anbindung für Kunden mit Einschränkung durch Gruppen

Post by wiseguy »

Ich habe eine Lösung gefunden:

Statt "GroupDN", "AccessAttr" und "UserAttr" zu benutzen hab ich das jetzt über "AlwaysFilter" gemacht.

Also um mein Beispiel hier zu kompletieren:

Code: Select all

$Self->{CustomerUser1} = {
        Name => 'LDAP Datenquelle',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            Host => 'local.meinedomain.com',
            BaseDN => 'DC=local,DC=meinedomain,DC=com',

#### Das klappt - warum auch immer - nicht bei OTRS 3.0.6
#            GroupDN => 'CN=otrs-customer,OU=testuser,DC=local,DC=meinedomain,DC=com',
#            AccessAttr => 'member',
#            UserAttr => 'DN',
#### Stattdessen wird AlwaysFilter verwendet:
            AlwaysFilter => '(memberOf=CN=otrs-customer,DC=local,DC=rensch-haus,DC=com)'

            UID => 'sAMAccountName',
            SSCOPE => 'sub',
            UserDN => 'cn=otrs,ou=EDV,ou=testuser,dc=local,dc=meinedomain,dc=com',
            UserPw => 'qwertz',
            SourceCharset => 'utf-8',
            DestCharset => 'iso-8859-1',
        },
            
        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' ],
        ],
    };
OTRS Version: 3.0.7
Server: Debian Squeeze mit Apache, PHP5 und MySQL
Locked