[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