AD-Anbindung Agenten und Kunden

Hilfe zu Znuny Problemen aller Art
Locked
peddy
Znuny newbie
Posts: 14
Joined: 05 Feb 2010, 12:33
Znuny Version: 3.0.7

AD-Anbindung Agenten und Kunden

Post by peddy »

Hallo,

ich bin so langsam aber sicher am verzweifeln und gebe mir bald die Kugel, wenn ich nicht bald auf die Lösung komme.

Was habe ich vor? Ich möchte Otrs 3.0.5 an ein Active Directory anbinden, damit sich Agenten und Kunden über ihr AD-Konto anmelden können. Zusätzlich sollen Agenten nach Kunden suchen können.

Zuerst habe ich die Agenten eingerichtet:

Code: Select all

    # ---------------------------------------------------- #
    # Agentenanmeldung ueber das AD                        #
    # ---------------------------------------------------- #
    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = 'dc02.dom.de';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=dom,dc=de';
    $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

    $Self->{'AuthModule::LDAP::SearchUserDN'} = 'CN=OTRS,OU=Services,OU=IT,DC=dom,DC=de';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'PW';

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

    $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = 'dc02.dom.de';
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=dom,dc=de';
    $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'CN=OTRS,OU=Services,OU=IT,DC=dom,DC=de';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'PW';

    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        # DB -> LDAP
        UserFirstname => 'givenName',
        UserLastname  => 'sn',
        UserEmail     => 'mail',
    };
Das klappt wunderbar. User wird im AD abgefragt und mit der lokalen DB abgeglichen.

Dann habe ich den Kundenteil konfiguriert:

Code: Select all

    # ---------------------------------------------------- #
    # Kundenanmeldung ueber das AD                         #
    # ---------------------------------------------------- #
    $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'} = 'dc02.dom.de';
    $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=dom,dc=de';
    $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=OTRS,OU=Services,OU=IT,DC=dom,DC=de';
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'PW';
    $Self->{'Customer::AuthModule::LDAP::AlwaysFilter'} = '';

    $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 => 'dc02.dom.de',
            BaseDN => 'dc=dom,dc=de',
            SSCOPE => 'sub',
            UserDN => 'CN=OTRS,OU=Services,OU=IT,DC=dom,DC=de',
            UserPw => 'otrs35',
            Params => {
                port    => 389,
                timeout => 120,
                async   => 0,
                version => 3,
            },
        },
        CustomerKey => 'sAMAccountName',
        CustomerID => 'userPrincipalName',
        CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
	AdminSetPreferences => 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 ],
#            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
#            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
        ],
    };
Mit der Konfig kann ich mich zwar als Kunde anmelden und auch Tickets erstellen aber wenn ich das Webinterface für Agenten aufrufe (als Agent und nicht als Kunde natürlich) und auf "Kunden" klicke passiert gar nichts. Eigentlich sollte man doch hier auf eine Seite gelanken, wo ich nach Kunden suchen kann, oder?

Wo liegt bei meiner Konfig der Fehler? Ich bin schon ewig am Probieren aber ich komm einfach nicht weiter.

moderator note: moved from english/ Moderator beachten Sie: verschoben vom Englisch
boris
Znuny wizard
Posts: 554
Joined: 22 Feb 2010, 18:27
Znuny Version: 3.0.4

Re: AD-Anbindung Agenten und Kunden

Post by boris »

dein Sync Teil fehlt:

Code: Select all

      $Self->{'UserSyncLDAPMap1'} =  {
      'UserEmail' => 'mail',
      'UserFirstname' => 'givenName',
      'UserLastname' => 'sn',
      'UserLogin' => 'sAMAccountName'
    };      

    $Self->{CustomerUser1} = {
    Name => 'Firma Customer',
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
    Host => 'IP-Domänencontroller',
    BaseDN => 'DC=Firma,DC=local', 
    SSCOPE => 'sub',
    UserDN => 'otrsldap@Firma.local', # wieder DN oder UserPrincipalName
    UserPw => 'Passwort',
    AlwaysFilter =>  '(&(objectclass=user)(mail=*.*@Firma.de))',
    # falls ihr was ausschliessen wollt:
    # AlwaysFilter =>  '(&(objectclass=user)(mail=*.*@Firma.de)(!((was auch immer)))',
    },
oder sehe ich das falsch?
Produktiv:
OTRS 3.1.7
CentOS 6.3
Apache2/MySQL

Test:
OTRS 3.1.7
CentOS 6.3
Apache2/MySQL
Locked