Backends für die Authentifizierung von Agenten und Kunden

Hilfe zu Znuny Problemen aller Art
Locked
Lion
Znuny newbie
Posts: 15
Joined: 06 Feb 2013, 14:59
Znuny Version: 3.1.12
Real Name: Dennis Crusius
Company: Löwen Play GmbH

Backends für die Authentifizierung von Agenten und Kunden

Post by Lion »

Hallo,

altes und nach wie vor leidiges Thema: Backends für die Authentifizierung von Agenten und Kunden.

ich möchte Agenten sowie Kunden aus einem ActiveDirectory (Server 2003) authentifizieren als auch synchronisieren. Derzeit funktioniert die Anmeldung der Agenten am OTRS-Frontend (index.pl) sowie die Anmeldung der Kunden am OTRS (index.pl) und am Kunden-Frontend (customer.pl). Dies wäre schon mein erstes Problem. Ich möchte das die Agenten sich nur am normalen Frontend anmelden können und die Kunden nur am Kunden-Frontend (customer.pl). Momentan können sich die Kunden auch am Agenten-Frontend anmelden. Die Agenten hingegen werden zudem erst nach einmaligem Anmelden in der Datenbank angezeigt. Dies ist für mich problematisch, da ich die Zuweisung der Agenten nicht von Angfang an machen kann.

Meine Kunden liegen alle in einer gesonderten OU, z.B. "Kunden",
meine Agenten liegen alle in einer OU, z.B. "Agenten".

Zusätzlich habe ich je eine Gruppe im AD angelegt:
OTRS_Agenten und
OTRS_Customers.

Ich hoffe ich habe mich deutlich ausgedrückt und mein Problem verständlich dargestellt, falls noch wichtige Infos fehlen sollten, meldet euch.

Zum besseren Verständis noch meine anonymisierte Config.pm:

Code: Select all

    # ---------------------------------------------------- #
    # Customers/Kunden aus LDAP importieren                #
    # ---------------------------------------------------- #
    # $Self->{CustomerGroupSupport} = 1;
    $Self->{CustomerUser} = {
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
      Host => 'DomänenController',
      BaseDN => 'OU=Kunden,DC=DOMÄNE,DC=LOC',
      SSCOPE => 'one',
      UserDN => 'user@DOMÄNE.LOC',
      UserPw => 'passwort',
    },
    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', 'Info1', 'description', 1, 0, 'var' ],
      [ 'UserInfo', 'Info2', 'physicalDeliveryOfficeName', 1, 1, 'var' ],
      [ 'UserDepartment', 'Abteilung', 'department', 1, 1, 'var' ],
      [ 'UserTitle', 'Position', 'title', 1, 1, 'var' ],
      [ 'UserManager', 'Vorgesetzter', 'manager', 1, 1, 'var' ],
    ],
  };
    # ---------------------------------------------------- #
    # Authentifizierung der Agenten via AD/LDAP            #
    # ---------------------------------------------------- #
    $Self->{'AuthModule1'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host1'} = 'DomänenController';
    $Self->{'AuthModule::LDAP::BaseDN1'} = 'DC=DOMÄNE,DC=LOC';
    $Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName';

    # LDAP Bind User 
    # -------------------------------------------------------- # 
    $Self->{'AuthModule::LDAP::SearchUserDN1'} = 'user@DOMÄNE.LOC';
    $Self->{'AuthModule::LDAP::SearchUserPw1'} = 'passwort';
	

	
    #-----------------------------------------------------#
    # Synchronistation der Agenten aus LDAP mit OTRS DB   #
    #-----------------------------------------------------#
    $Self->{'AuthSyncModule1'} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host1'} = 'DomänenController';
    $Self->{'AuthSyncModule::LDAP::BaseDN1'} = 'dc=DOMÄNE,dc=LOC';
    $Self->{'AuthSyncModule::LDAP::UID1'} = 'sAMAccountName';
    $Self->{'AuthSyncModule::LDAP::SearchUserDN1'} = 'user@DOMÄNE.LOC';
    $Self->{'AuthSyncModule::LDAP::SearchUserPw1'} = 'passwort';
    $Self->{'AuthSyncModule::LDAP::AlwaysFilter1'} = '';
    $Self->{'AuthSyncModule::LDAP::UserSyncMap1'} = {   
        'UserEmail' => 'mail',
        'UserFirstname' => 'givenName',
        'UserLastname' => 'sn',
        'UserLogin' => 'sAMAccountName'
    };
    $Self->{'AuthModule::LDAP::Die'} = 1;
	
	
    ##----------------------------------------------------------#
    ##            LDAP Anbindung fuer die Kunden                #
    ##----------------------------------------------------------#

    #-----------------------------------------------------------#
    #  Auth Kunden via LDAP Active Directory DOMÄNE.LOC             #
    #-----------------------------------------------------------#
    # LDAP Customer #
     $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
     $Self->{'Customer::AuthModule::LDAP::Host'} = 'DomänenController';
     $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'OU=Kunden,DC=DOMÄNE,DC=LOC';
     $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

     # $Self->{'Customer::AuthModule::LDAP::GroupDN'} = 'CN=OTRS_CUSTOMERS,OU=Gruppen,DC=DOMÄNE,dc=LOC';
     # $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'member';       
 
     $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'user@DOMÄNE.LOC';
     $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'passwort';

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

    #----------------------------------------------------------#
    # UserSyncLDAPMap Customer/Kunden                     #
    #----------------------------------------------------------#   
     
    ## Sync macht man nur fuer Agenten. Die Customer werden aktiv aus dem LDAP gelesen.
    ##    $Self->{'UserSyncLDAPMap'} =  {
    ##      'UserEmail' => 'mail',
    ##      'UserFirstname' => 'givenName',
    ##      'UserLastname' => 'sn',
    ##      'UserLogin' => 'sAMAccountName'
    ##    };     
    $Self->{CustomerUser1} = {
       Name => 'Unternehmensbezeichnung',
       Module => 'Kernel::System::CustomerUser::LDAP',
          Params => {
          Host => 'DomänenController',
          BaseDN => 'OU=Kunden,dc=DOMÄNE,dc=LOC',
          SSCOPE => 'one', 
          UserDN => 'user@DOMÄNE.LOC',
          UserPw => 'passwort',
       },
       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' ],
          [ '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' ],
       ],
    };

  
    # ---------------------------------------------------- #
Produktiv: OTRS 3.1.12 | Debian Squeeze 64bit | MySQL 5.1.66 | Apache 2.2.16
Produktiv: OTRS 2.4.8 | Debian Lenny 32bit | MySQL 5.0.51a | Apache 2.2.9
Lion
Znuny newbie
Posts: 15
Joined: 06 Feb 2013, 14:59
Znuny Version: 3.1.12
Real Name: Dennis Crusius
Company: Löwen Play GmbH

Re: Backends für die Authentifizierung von Agenten und Kunde

Post by Lion »

Hallo nochmal,

ich habe glaube ich verstanden, dass die Agenten erst bei einmaliger Anmeldung synchronisiert werden. Das stellt nun kein Problem mehr dar. Jedoch würde ich gerne vermeiden, dass die Kunden sich am Agenten-Frontend anmelden können. Ist dies möglich?

Über eine Antwort freue ich mich!
Produktiv: OTRS 3.1.12 | Debian Squeeze 64bit | MySQL 5.1.66 | Apache 2.2.16
Produktiv: OTRS 2.4.8 | Debian Lenny 32bit | MySQL 5.0.51a | Apache 2.2.9
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Backends für die Authentifizierung von Agenten und Kunde

Post by jojo »

Ja, über die LDAP Gruppen kannst Du das prüfen:

Code: Select all

    $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=otrsallow,ou=posixGroups,dc=example,dc=com';
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
"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
Lion
Znuny newbie
Posts: 15
Joined: 06 Feb 2013, 14:59
Znuny Version: 3.1.12
Real Name: Dennis Crusius
Company: Löwen Play GmbH

Re: Backends für die Authentifizierung von Agenten und Kunde

Post by Lion »

Vielen Dank für die schnelle Antwort, werds gleich morgen ausprobieren.
Produktiv: OTRS 3.1.12 | Debian Squeeze 64bit | MySQL 5.1.66 | Apache 2.2.16
Produktiv: OTRS 2.4.8 | Debian Lenny 32bit | MySQL 5.0.51a | Apache 2.2.9
Locked