[otrs-de] LDAP Active Directory 2003 Need UserFirstname!

Patrick Hemmen phemmen at gmail.com
Mon Jul 23 16:49:08 GMT 2007


Hallo,

ich habe die vielen E-Mails zur Anbindung eines LDAP-Verzeichnisses
(speziell Active Directory) gelesen und keine Lösung für meine
Fehlermeldung gefunden.

   [Error][Kernel::System::User::UserAdd][Line:229]: Need UserFirstname!

Durch ausprobieren habe ich den Fehler in meiner Konfigurationdatei
(Kernel/Config.pm) behoben. Die Zeilen aus der offiziellen
Dokumentation (http://doc.otrs.org/2.2/de/html/x1755.html#agent-auth-backends)

       $Self->{UserSyncLDAPMap} = {
        # DB -> LDAP
        Firstname => 'givenName',
        Lastname => 'sn',
        Email => 'mail',
    };

musste ich bei mir wie folgt abändern.

       $Self->{UserSyncLDAPMap} = {
        # DB -> LDAP
        UserFirstname => 'givenName',
        UserLastname => 'sn',
        UserEmail => 'mail',
    };

Nach dieser Änderung wurden die Agents bei ihrer ersten Anmeldung in
die Tabelle system_user eingetragen. Ein Login funktioniert nun auch.

Hier noch der relevante Teil meiner Kernel/Config.pm für die
Authentifizierung von Agents (nicht Customer) durch ein Active
Directory 2003

    # LDAP Authentifizierung
    $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'} = 'dc01.compnet.site';
    $Self->{'AuthModule::LDAP::BaseDN'} = 'OU=emp,DC=compnet,DC=site';
    $Self->{'AuthModule::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->{'AuthModule::LDAP::SearchUserDN'} =
'CN=bind_user,OU=emp,DC=compnet,DC=site';
    $Self->{'AuthModule::LDAP::SearchUserPw'} = 'geheim';

    #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_agent,OU=emp,DC=compnet,DC=site';
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'member';
    $Self->{'AuthModule::LDAP::UserAttr'} = 'DN';

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

    # UserSyncLDAPMap
    # (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 for AuthModule, you can specify
    # initial user groups for first login.)
    $Self->{UserSyncLDAPGroups} = [
        'users',
    ];

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


Gruß
Patrick