You know, I looked into the same thing. What I found was that it was *not* so easy to use RT-Authen-ExternlAuth -- that is, if your LDAP server is secure enough. My LDAP server requires a certificate to build an SSL or STARTTLS connection, as part of our baseline security. RT-Authen-ExternalAuth, by default, does not support a method to pass the path to a certificate, and the reqcert setting, to the underlying perl-Net-LDAP library (even though this library supports all that stuff).

I had to apply this patch to RT-Authen-ExternalAuth

http://old.nabble.com/attachment/23889671/0/RT-Authen-ExternalAuth-19912-start_tls-options.patch

Patch applies perfectly. Afterwards, I did something like this in my config (note the tls_args segment):

Set($ExternalSettings,  {
'LDAP'  => {
'type' => 'ldap',
'auth' => 1,
'info' => 1,
'server' => 'ldap.example.com',
'base' => 'dc=example,dc=com',
'filter' => '(objectClass=posixAccount)',
'tls' =>  1,
# What other args should I pass to net::LDAP->new($host,@args)?
'net_ldap_args' => [
version => 3,
port => 389,
debug => 8,
],
# Special argument for start_tls (see perldoc com::LDAP for details)
'tls_args' => [
'verify' => 'require',
'cafile' => '/etc/openldap/cacerts/example_ca.pem',
],
# This MUST be a full DN
'group' =>  'cn=admins,ou=PosixGroups,dc=example,dc=com',
'group_attr' =>  'memberUid',
'group_attr_value' => 'uid',
'attr_match_list' => [
'Name',
'EmailAddress',
'RealName',
'Gecos',
],
'attr_map' =>  {
'Name' => 'uid',
'EmailAddress' => 'mail',
'RealName' => 'cn',
'Gecos' => 'cn',
} # end NAME
}, # end LDAP
}, # end $ExternalSettings
); # end Set


(Server is OpenLDAP 2.4.x using rfc2307 style posixAccount and posixGroup objectclasses)

--
Jonathan Mills
Systems Administrator
Renaissance Computing Institute
UNC-Chapel Hill

On 10/16/2012 08:19 AM, Darin Perusich wrote:
On Tue, Oct 16, 2012 at 6:46 AM, Marko Cupać <marko.cu...@gmail.com> wrote:
I have been using rt4 for some time now in plain protocols (site is on
http, fetchmail is plain pop3, external auth is done from ldap without
ssl). Now, I am increasing security by switching to encrypted
protocols.

Switching apache to https was easy thing to do, and I spent a few hours
with fetchmail and certificates but it also works now.

RT::Extension::LDAPimport "just worked" when switching ldaphost to
ldaps:

Set($LDAPHost,'ldaps://ldap.company.tld');

Also, after setting
Set($ExternalAuthPriority,['My_LDAP']);
Set($ExternalInfoPriority,['My_LDAP']);
Set($ExternalServiceUsesSSLorTLS,1);
Set($ExternalSettings,{
         'My_LDAP'       =>  {
                     ...
                     'tls'         =>  1,
                     'ssl_version' =>  3,
                     ...
          }
}

... i can still authenticate.

I can not believe this can be so simple :) Is there a way to check that
ssl is really used?


Check your ldap servers logs or run wireshark/tcpdump from the RT
server and inspect the traffic.

--------
Final RT training for 2012 in Atlanta, GA - October 23 & 24
   http://bestpractical.com/training

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


--------
Final RT training for 2012 in Atlanta, GA - October 23 & 24
 http://bestpractical.com/training

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

Reply via email to