Hi,

I'm running RT4.0.6 with the last ExternalAuth plugin.
It seems to be able to connect and authorize users against our LDAP, but for 
some reason when a new user logs in (a user that didn't log in to the system 
before), it doesn't get its Email address.
I can see a new user created in the DB, but it only gets its name.
PERL version is 5.10.

Any ideas?

RT_Siteconfig.pm:
##############################
# Active Directory Integration
##############################

# The order in which the services defined in ExternalSettings
# should be used to authenticate users. User is authenticated
# if successfully confirmed by any service - no more services
# are checked.
Set($ExternalAuthPriority,  ['My_LDAP'] );

# The order in which the services defined in ExternalSettings
# should be used to get information about users. This includes
# RealName, Tel numbers etc, but also whether or not the user
# should be considered disabled.
#
# Once user info is found, no more services are checked.
#
# You CANNOT use a SSO cookie for authentication.
Set($ExternalInfoPriority,  ['My_LDAP'] );

# If this is set to true, then the relevant packages will
# be loaded to use SSL/TLS connections. At the moment,
# this just means "use Net::SSLeay;"
Set($ExternalServiceUsesSSLorTLS,    0);

# If this is set to 1, then users should be autocreated by RT
# as internal users if they fail to authenticate from an
# external service.
Set($AutoCreateNonExternalUsers,    0);

# These are the full settings for each external service as a HashOfHashes
# Note that you may have as many external services as you wish. They will
# be checked in the order specified in the Priority directives above.
# e.g.
Set($ExternalAuthPriority,['My_LDAP']);
#
Set($ExternalSettings,      {
                                # AN EXAMPLE LDAP SERVICE
                                'My_LDAP'       =>  {   ## GENERIC SECTION
                                                        # The type of service 
(db/ldap/cookie)
                                                        'type'                  
    =>  'ldap',
                                                        # The server hosting 
the service
                                                        'server'                
    =>  'brain.panaya.int',
                                                        ## SERVICE-SPECIFIC 
SECTION
                                                        # If you can bind to 
your LDAP server anonymously you should
                                                        # remove the user and 
pass config lines, otherwise specify them here:
                                                        #
                                                        # The username RT 
should use to connect to the LDAP server
                                                        'user'                  
    =>  'XXX',
                                                        # The password RT 
should use to connect to the LDAP server
                                                        'pass'                  
  =>  'XXX',
                                                        #
                                                        # The LDAP search base
                                                        'base'                  
    =>  'ou=Users,ou=Panaya,dc=panaya,dc=int',
                                                        #
                                                        # ALL FILTERS MUST BE 
VALID LDAP FILTERS ENCASED IN PARENTHESES!
                                                        # YOU **MUST** SPECIFY 
A filter AND A d_filter!!
                                                        #
                                                        # The filter to use to 
match RT-Users
                                                        'filter'                
    =>  '(objectClass=*)',
                                                        # A catch-all example 
filter: '(objectClass=*)'
                                                        #
                                                        # The filter that will 
only match disabled users
                                                        'd_filter'              
    =>  '(objectClass=FooBarBaz)',
                                                        # A catch-none example 
d_filter: '(objectClass=FooBarBaz)'
                                                        #
                                                        # Should we try to use 
TLS to encrypt connections?
                                                        'tls'                   
    =>  0,
                                                        # SSL Version to 
provide to Net::SSLeay *if* using SSL
                                                        'ssl_version'           
    =>  3,
                                                        # What other args 
should I pass to Net::LDAP->new($host,@args)?
                                                        'net_ldap_args'         
    => [    version =>  3   ],
                                                        # Does authentication 
depend on group membership? What group name?
                                                        #'group'                
     =>  'GROUP_NAME',
                                                        # What is the scope of 
the group search? (base, one, sub)
                                                        # Optional; defaults to 
'base', which is good enough for most cases. 'sub' is appropriate when you have 
nested groups
                                                        #'group_scope'          
     =>  'base',
                                                        # What is the attribute 
for the group object that determines membership?
                                                        #'group_attr'           
     =>  'GROUP_ATTR',
                                                        # What is the attribute 
of the user entry that should be matched against group_attr above? (Optional; 
defaults to 'dn')
                                                        #'group_attr_value'     
     =>  'GROUP_ATTR_VALUE',
                                                        ## RT ATTRIBUTE 
MATCHING SECTION
                                                        # The list of RT 
attributes that uniquely identify a user
                                                        # This example shows 
what you *can* specify.. I recommend reducing this
                                                        # to just the Name and 
EmailAddress to save encountering problems later.
                                                        'attr_match_list'       
    => [    'Name',
                                                                                
            'EmailAddress'
                                                                                
        ],
                                                        # The mapping of RT 
attributes on to LDAP attributes
                                                        'attr_map'              
    =>  {   'Name' => 'sAMAccountName',
                                                                                
            'EmailAddress' => 'mail'
                                                                                
        }
                                                    }
                                }
);

>From the log:
[Tue Nov 27 17:49:40 2012] [debug]: Attempting to use external auth service: 
My_LDAP (/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:64)
[Tue Nov 27 17:49:40 2012] [debug]: Calling UserExists with $username (tstuser) 
and $service (My_LDAP) 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:105)
[Tue Nov 27 17:49:40 2012] [debug]: UserExists params:
username: tstuser , service: My_LDAP 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:274)
[Tue Nov 27 17:49:40 2012] [debug]: LDAP Search ===  Base: 
ou=Users,ou=Panaya,dc=panaya,dc=int == Filter: 
(&(objectClass=*)(sAMAccountName=tstuser)) == Attrs: mail,sAMAccountName 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:304)
[Tue Nov 27 17:49:40 2012] [debug]: Password validation required for service - 
Executing... (/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:155)
[Tue Nov 27 17:49:40 2012] [debug]: Trying external auth service: My_LDAP 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:16)
[Tue Nov 27 17:49:40 2012] [debug]: LDAP Search ===  Base: 
ou=Users,ou=Panaya,dc=panaya,dc=int == Filter: 
(&(sAMAccountName=tstuser)(objectClass=*)) == Attrs: dn 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:43)
[Tue Nov 27 17:49:40 2012] [debug]: Found LDAP DN: CN=TestFirstName TestIn. 
TestLastName,OU=Users,OU=Panaya,DC=panaya,DC=int 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:75)
[Tue Nov 27 17:49:40 2012] [info]: RT::Authen::ExternalAuth::LDAP::GetAuth 
External Auth OK ( My_LDAP ): tstuser 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:139)
[Tue Nov 27 17:49:40 2012] [debug]: LDAP password validation result: 1 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:335)
[Tue Nov 27 17:49:40 2012] [debug]: Password Validation Check Result:  1 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:159)
[Tue Nov 27 17:49:40 2012] [debug]: Authentication successful. Now updating 
user information and attempting login. 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:179)
[Tue Nov 27 17:49:40 2012] [debug]: UserExists params:
username: tstuser , service: My_LDAP 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:274)
[Tue Nov 27 17:49:40 2012] [debug]: LDAP Search ===  Base: 
ou=Users,ou=Panaya,dc=panaya,dc=int == Filter: 
(&(objectClass=*)(sAMAccountName=tstuser)) == Attrs: mail,sAMAccountName 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:304)
[Tue Nov 27 17:49:40 2012] [debug]: UserExists params:
username: tstuser , service: My_LDAP 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:274)
[Tue Nov 27 17:49:40 2012] [debug]: LDAP Search ===  Base: 
ou=Users,ou=Panaya,dc=panaya,dc=int == Filter: 
(&(objectClass=*)(sAMAccountName=tstuser)) == Attrs: mail,sAMAccountName 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:304)
[Tue Nov 27 17:49:40 2012] [debug]: LDAP Search ===  Base: 
ou=Users,ou=Panaya,dc=panaya,dc=int == Filter: 
(&(objectClass=*)(objectClass=FooBarBaz)(sAMAccountName=tstuser)) == Attrs: uid 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth/LDAP.pm:398)
[Tue Nov 27 17:49:40 2012] [warning]: Couldn't enable user 65117 
(/opt/rt4/sbin/../lib/RT/User.pm:1066)
[Tue Nov 27 17:49:40 2012] [warning]: Use of uninitialized value $val in 
concatenation (.) or string at 
/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm line 274. 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:274)
[Tue Nov 27 17:49:40 2012] [warning]: Use of uninitialized value $message in 
concatenation (.) or string at 
/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm line 274. 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:274)
[Tue Nov 27 17:49:40 2012] [info]: User marked as ENABLED ( tstuser ) per 
External Service (, ) (/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:274)
[Tue Nov 27 17:49:40 2012] [debug]: RT::Authen::ExternalAuth::UpdateUserInfo 
SetName Failed. That is already the current value 
(/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:302)
[Tue Nov 27 17:49:40 2012] [debug]: UPDATED user ( tstuser ) from External 
Service (/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:308)
[Tue Nov 27 17:49:40 2012] [info]: Successful login for tstuser from 
10.100.0.34 (/opt/rt4/sbin/../local/lib/RT/Authen/ExternalAuth.pm:219)
[Tue Nov 27 17:49:40 2012] [debug]: Autohandler called ExternalAuth. Response: 
(1, Successful login) 
(/opt/rt4/local/plugins/RT-Authen-ExternalAuth/html/Elements/DoAuth:11)

Karmi Simonov | System Administrator
TEL +972.9.7618000 EXT. 148 | FAX +972.9.7467901 | 
ka...@panayainc.com<mailto:ka...@panayainc.com>
PANAYA Making ERP Easy | www.panayainc.com<http://www.panayainc.com>

--------
We're hiring! http://bestpractical.com/jobs

Reply via email to