Agents aus AD anlegen ?!

Hilfe zu Znuny Problemen aller Art
Locked
CPM-IT
Znuny newbie
Posts: 7
Joined: 22 Oct 2009, 16:33
Znuny Version: 2.4.5

Agents aus AD anlegen ?!

Post by CPM-IT »

Zunächst ein "Hallo" in die Runde !

Wir sind neu im Thema OTRS und haben eine Frage bezüglich dem Anlegen von Agents, die aus dem AD kommen sollen.

Installiert haben wir die Version 2.4.5 unter Windows Server 2008, der wiederum unter VMWare läuft.
Soweit alles kein Problem. Auch die Anbindung ans AD haben wir bereits erfolgreich hinbekommen (sowohl für Agents als auch für Kunden).
Das Ergebnis ist, dass wir die Useraccounts im AD - so wie es dann sein soll - in OTRS angezeigt bekommen.

Wie stellen wir es nun jedoch an, dass wir einen User aus dem AD auswählen und zu einem Agent machen ?
Ich kann mir bei Auswahl eines Users nur dessen Eigenschaften ansehen oder einen neuen User in der OTRS Datenbank anlegen.
Wenn ich nun gerne den Benutzer "HMustermann" aus dem AD zu einem Agent machen würde, dann finde ich keine Möglichkeit, dies zu tun und lege ihn in der OTRS-Datenbank an. Damit habe ich aber dann zwei HMustermann-Accounts, was ich für nicht wirklich gut halte.

Oder haben wir hier irgendwo einen Denkfehler und wenn ja, wo ?
Unsere Suche nach dem Vorgang, AD-Benutzer zu Agents zu machen, war bisher leider recht erfolglos, sodass wir für Infos dankbar wären.


Viele Grüße,

Niclas
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Agents aus AD anlegen ?!

Post by jojo »

Such mal hier im Forum nach Sync und natürlich auch in der Defaults.pm
"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
CPM-IT
Znuny newbie
Posts: 7
Joined: 22 Oct 2009, 16:33
Znuny Version: 2.4.5

Agents aus AD anlegen ?!

Post by CPM-IT »

Ok, unter http://www.otrs-forum.de/viewtopic.php? ... ync#p13023 fand ich u.a. folgenden "Hinweis":
wo ist denn dein Problem? Sobald du den sync konfiguriert hast, wird sobald sich jemand, der noch nicht im otrs erfasst wurde einfach automatisch angelegt. Es werden nicht alle übernommen.

ob du das eh für jeden machst oder automatisch funktioniert. Ich mein, mach dir doch die arbeit so einfach wie möglich...
Wir haben derzeit allerdings das Problem, dass wir soweit erst gar nicht kommen.
Meldet sich ein Benutzer mit seinem AD-Benutzernamen und -Kennwort an, erhält dieser nur die Meldung, dass die Anmeldedaten ungültig seien.
Als "root@localhost" können wir uns anmelden (solange Abschnitt "1" nicht "aktiv" ist (s. unten)) und können über den Admin-Bereich Benutzer im AD suchen.

Hier mal unsere Zeilen zur LDAP-Anbindung aus unserer Config.pm. Vielleicht findet ja einer von Euch den Fehler, der zum einen das Anmelden verhindert und zum anderen sogar die Anmeldung von "root@localhost" verhindert, wenn nicht auskommentiert.


## Abschnitt 1 ## (Wenn "aktiv", ist eine Anmeldung als "root" nicht mehr möglich)

Code: Select all

#---------------------------------------------#
#  LDAP Konfiguration / Agenten Auth  #
#--------------------------------------------#	
# $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
# $Self->{'AuthModule::LDAP::Host'} = 'ad-dc01.de.our-domain.com';
# $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=de,dc=our-domain,dc=com';
# $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName';

# $Self->{'AuthModule::LDAP::SearchUserDN'} = 'cn=sa_otrsuser,cn=Users,dc=de,de=our-domain,dc=com';
# $Self->{'AuthModule::LDAP::SearchUserPw'} = 'mypassword';	

  # $Self->{'AuthModule::LDAP::GroupDN'} = 'ou=DE-IT-Users, dc=de, dc=our-domain, dc=com';
  # $Self->{'AuthModule::LDAP::AccessAttr'} = 'memberUid';
 # # $Self->{'AuthModule::LDAP::UserAttr'} = 'UID';
  # $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';
  
  # AuthSyncModule::LDAP::UserSyncMap
  # (map if agent should create/synced from LDAP to DB after successful login)
    # $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
  # DB -> LDAP
    # UserFirstname => 'givenName',
    # UserLastname  => 'sn',
    # UserEmail     => 'mail',
    # };

    # AuthSyncModule::LDAP::UserSyncInitialGroups
    # (sync following group with rw permission after initial create of first agent
    # login)
    # $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [
        # 'users',
    # ];


## Abschnitt 2 ##

Code: Select all

#--------------------------------------------#
#  LDAP Konfiguration / Kunden Auth   #
#--------------------------------------------#
$Self->{AgentCanBeCustomer} = 1;
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} = 'ad-dc01.de.our-domain.com';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=de,dc=our-domain,dc=com';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';

$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'cn=sa_otrsuser,cn=Users,dc=de,de=our-domain,dc=com';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'mypassword';


# (map if agent should create/synced from LDAP to DB after login)
    $Self->{UserSyncLDAPMap} = {
        # DB -> LDAP
        UserFirstname => 'givenName',
        UserLastname => 'sn',
        UserEmail => 'mail',
    };
	
	
# UserSyncLDAPGroups
# (If "LDAP" was selected="selected" for AuthModule, you can specify
# initial user groups for first login.)
    $Self->{UserSyncLDAPGroups} = [
        'Users',
    ];	
	

# UserTable
    $Self->{DatabaseUserTable} = 'Users';
    $Self->{DatabaseUserTableUserID} = 'id';
    $Self->{DatabaseUserTableUserPW} = 'pw';
    $Self->{DatabaseUserTableUser} = 'login';

#Add the following lines when only users are allowed to login if they reside in the spicified security group
#Remove these lines if you want to provide login to all users specified in the User Base DN
  # $Self->{'AuthModule::LDAP::GroupDN'} =''CN=otrs_ldap_allow_A,OU=Groups,OU=BaseOU,DC=example,DC=com';
  # $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
  # $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';

## Abschnitt 3 ##

Code: Select all

    #--------------------------------------#
    #   LDAP Konfiguration / Kundendaten   #
    #--------------------------------------#
    $Self->{CustomerUser1} = {
      Name => 'LDAP Datenquelle',
      Module => 'Kernel::System::CustomerUser::LDAP',
      Params => {
        Host => 'ad-dc01.de.our-domain.com',
        BaseDN => 'dc=de,dc=our-domain,dc=com',
        SSCOPE => 'sub',
        UserDN => 'cn=sa_otrsuser,cn=Users,dc=de,dc=our-domain,dc=com',
        UserPw => 'mypassword',
      },
      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' ],
      ],
    };
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Agents aus AD anlegen ?!

Post by jojo »

Bei Deinem Sync fehlen die Daten des LDAP Servers. Zur 2.4. hat sich dort was geändert. Schau mal in Deine Defaults.pm und kopier den entsprechenden Block raus.
"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
CPM-IT
Znuny newbie
Posts: 7
Joined: 22 Oct 2009, 16:33
Znuny Version: 2.4.5

Agents aus AD anlegen ?!

Post by CPM-IT »

Hi jojo und danke für die schnelle Rückantwort !

Ich habe jetzt einfach mal den komplette Block aus der Defaults.pm kopiert und entsprechend angepasst, mit dem Ergebnis, dass die Anmeldung als "root@localhost" jetzt möglich ist, die Authentifizierung eines AD-Benutzers jedoch immer noch fehlschlägt.
Das Ganze sieht nun wie folgt aus:

Code: Select all

#-------------------------------------#
#  LDAP Konfiguration / Agenten Auth  #
#-------------------------------------#	

   $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
   $Self->{'AuthSyncModule::LDAP::Host'} = 'ad-dc01.de.our-domain.com';
   $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=de,dc=our-domain,dc=com';
   $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';

    # The following is valid but would only be necessary if the
    # anonymous user do NOT have permission to read from the LDAP tree
   $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'sa_otrsuser';
   $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'mypassword';

    # in case you want to add always one filter to each ldap query, use
    # this option. e. g. AlwaysFilter => '(mail=*)' or AlwaysFilter => '(objectclass=user)'
#    $Self->{'AuthSyncModule::LDAP::AlwaysFilter'} = '';

    # AuthSyncModule::LDAP::UserSyncMap
    # (map if agent should create/synced from LDAP to DB after successful login)
   $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
       # DB -> LDAP
       UserFirstname => 'givenName',
       UserLastname  => 'sn',
       UserEmail     => 'mail',
   };

    # In case you need to use OTRS in iso-charset, you can define this
    # by using this option (converts utf-8 data from LDAP to iso).
#    $Self->{'AuthSyncModule::LDAP::Charset'} = 'iso-8859-1';

    # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
   $Self->{'AuthSyncModule::LDAP::Params'} = {
       port    => 389,
       timeout => 120,
       async   => 0,
       version => 3,
   };

    # Die if backend can't work, e. g. can't connect to server.
   $Self->{'AuthSyncModule::LDAP::Die'} = 1;


Für mich als Laien sieht dieser Abschnitt jetzt komplett aus, aber offensichtlich fehlt immer noch etwas bzw. wurde nicht beachtet.
Was könnte das sein ?

Vielen Dank im Voraus !
OTRS: 2.4.5, OTRS::ITSM 1.3.2
OS: Windows Server 2008 Standard SP2 64-Bit unter VMWare
Apache2.2/MySQL 5
Locked