[rt-users] AD integration for external auth

Todd Wade todd at bestpractical.com
Wed Jul 8 22:37:12 EDT 2015


On 7/7/15 4:50 PM, Yan Seiner wrote:
> But the way ExternalAuth is set up, I have to provide the ldap userid
> and password, which in our system would be a real user.
>
>              'user'                      =>  'rt_ldap_username',
>              'pass'                      =>  'rt_ldap_password',
>
> Is there any way to get ExternalAuth to use the credentials entered in
> the login to bind to the ldap server?

At user login ExternalAuth first finds the user with the credentials you 
mention above, and then attempts to bind with the login provided 
credentials. A successful bind is how it knows that the user is 
authenticated. From the code:

my $ldap_entry = $ldap_msg->first_entry;
my $ldap_dn    = $ldap_entry->dn;

# THIS bind determines success or failure on the password.
$ldap_msg = $ldap->bind($ldap_dn, password => $password);

> But notice that I need to use either 'HPM\yans' for the user or the
> older 'yans at hpm.net' for the system to allow me to bind to the ldap
> server. The way we're set up, any user can bind to the server with
> valid credentials, but anonymous binds are not allowed.

For the former, you'd have to modify the extension to prefix the 
username it attempts to bind with. The subroutine is 
RT::Authen::ExternalAuth::LDAP::GetAuth. You could make a command line 
script to call this and debug it until you get it to return 1. Like 
jdg117 mentioned, you have to get Net::LDAP connecting to your LDAP and 
then figure out how to configure or modify the extension to get it to 
connect in the same way.

For the latter I think you can update the configuration to store the 
email address as the name so that its used when the bind is attempted. 
You'd have to use the email address to log in to RT.

Perhaps make attr_match_list just 'EmailAddress' and then have in the 
attr_map:

                 'Name' => 'mail', # instead of sAMAccountName
                 'EmailAddress' => 'mail',




More information about the rt-users mailing list