[rt-users] LDAP Configuration

t s zzzz67 at hotmail.com
Wed Apr 20 11:18:42 EDT 2016


Debug mode was successful.  What's my next step?



________________________________
From: Lush, Aaron <alush at scentral.k12.in.us>
Sent: Wednesday, April 20, 2016 8:45 AM
To: Travis Slusher
Cc: rt-users at lists.bestpractical.com
Subject: Re: [rt-users] LDAP Configuration

Set your log to "debug" and then run rt-ldapimport. Please post what your syslog says concerning RT.

Sincerely,

Aaron Lush
Network Administrator
South Central Community School Corporation
(219) 767-2266 ext. 1111

On Wed, Apr 20, 2016 at 7:28 AM, Travis Slusher <zzzz67 at hotmail.com<mailto:zzzz67 at hotmail.com>> wrote:

Having lots of trouble getting Request Tracker (4.2) hooked up with ExternalAuth for LDAP.  I have nginx (1.8.0) working with LDAP so it successfully authenticates to the login page using Active Directory, but it is not passing the username and password to the login page, so the user ends up having to login twice.


Please take a look, this is a huge headache!


Here is my nginx config and my RT_SiteConfig:


nginx config:


# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}


http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

      auth_ldap_cache_enabled on;
      auth_ldap_cache_expiration_time 10000;
      auth_ldap_cache_size 1000;

      ldap_server acmeLDAP {

        url "ldap://ldapserver:389/OU=Corp,OU=Users,OU=acme,DC=corp,DC=acme,DC=net?sAMAccountName?sub?(objectClass=person)";
        binddn "acme\\appaccount";
        binddn_passwd "password";
        group_attribute member;
        group_attribute_is_dn on;
        satisfy any;
        require valid_user;
    }





    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

 location  ^~ /phpmyadmin/ {
  alias /usr/share/phpmyadmin/;

      location ~ \.php$ {
       include fastcgi_params;
       fastcgi_param SCRIPT_FILENAME $request_filename;
       fastcgi_pass  localhost:9000;
      }
  index index.php;
 }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
        error_page 403 = @login;
        location @login {
          rewrite ^.* https://secure.example.com/login;
        }
    }



server {
listen 80;
auth_ldap "Please enter your ldap user";
        auth_ldap_servers acmeLDAP;

server_name rt.servername.acme.com<http://rt.servername.acme.com>;
        access_log  /var/log/nginx/access.log;
error_log /var/log/nginx/rt debug;

location / {

  alias /opt/rt4/share/html/;

  fastcgi_param  QUERY_STRING       $query_string;
  fastcgi_param  REQUEST_METHOD     $request_method;
  fastcgi_param  CONTENT_TYPE       $content_type;
  fastcgi_param  CONTENT_LENGTH     $content_length;

  fastcgi_param  SCRIPT_NAME        '';
  fastcgi_param  PATH_INFO          $uri;
  fastcgi_param  REQUEST_URI        $request_uri;
  fastcgi_param  DOCUMENT_URI       $document_uri;
  fastcgi_param  DOCUMENT_ROOT      $document_root;
  fastcgi_param  SERVER_PROTOCOL    $server_protocol;

  fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
  fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

  fastcgi_param  REMOTE_ADDR        $remote_addr;
  fastcgi_param  REMOTE_PORT        $remote_port;
  fastcgi_param  SERVER_ADDR        $server_addr;
  fastcgi_param  SERVER_PORT        $server_port;
  fastcgi_param  SERVER_NAME        $server_name;

  fastcgi_pass 127.0.0.1:8090<http://127.0.0.1:8090>;




}

location = /auth {
           proxy_pass http://servername/phpmyadmin/phpTest.php;
           proxy_pass_request_body off;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Origin-URI $request_uri;
           proxy_set_header Content-Length '0';
       }





}



RT_SiteConfig.pm:


# Any configuration directives you include  here will override
# RT's default configuration file, RT_Config.pm
#
# To include a directive here, just copy the equivalent statement
# from RT_Config.pm and change the value. We've included a single
# sample value below.
#
# This file is actually a perl module, so you can include valid
# perl code, as well.
#
# The converse is also true, if this file isn't valid perl, you're
# going to run into trouble. To check your SiteConfig file, use
# this command:
#
#   perl -c /path/to/your/etc/RT_SiteConfig.pm
#
# You must restart your webserver after making changes to this file.

# You must install Plugins on your own, this is only an example
# of the correct syntax to use when activating them:
#     Plugin( "RT::Extension::SLA" );
#     Plugin( "RT::Authen::ExternalAuth" );

# You must install Plug/ins on your own, this is only an example, 'Request Tracker Support);

Set($WebPath , "");
Set($WebBaseURL, "http://rt.servername.acme.com");
Set($RestrictReferrer, '0');

Set($DatabaseAdmin, 'root');

Set($LogoURL, 'https://bestpractical.com/images/bpslogo.png');
Set($WebDefaultStylesheet, 'rudder');

Set($LogToFile, 'error');

Set($SetOutgoingMailFrom, "RT_Tracker at acme.com<mailto:RT_Tracker at acme.com>");
Set($SMTPFrom, "mail-out.smtp.acme.com<http://mail-out.smtp.acme.com>");
Set($ParseNewMessageForTicketCcs, 1);
Set($HomePageRefreshInterval, 120);
Set($NotifyActor,1);

Set($SendmailArguments, "-t");
Set($MailCommand, "sendmail");

# of the correct syntax to use when activating them:
#     Plugin( "RT::Extension::SLA" );
     Plugin( "RT::Authen::ExternalAuth" );
Set( @Plugins, qw(RT::Authen::ExternalAuth) );

Set($ExternalAuthPriority, ['acmeLDAP']);
Set($ExternalInfoPriority, ['acmeLDAP']);
Set($UserAutocreateDefaultsOnLogin, { Privileged => 1 } );
Set($AutoCreateNonExternalUsers, 1);
Set($ExternalSettings, {
    'acmeLDAP' => {
        type => 'ldap',
        server => 'ldapservername:389',
        'attr_match_list'  => [
            'Name',
            'EmailAddress',
        ],
        'base'             =>  'OU=Corp,OU=Users,OU=acme,DC=corp,DC=acme,DC=net',
        'filter'           =>  '(objectClass=person)',
        'user' => 'username123',
        'pass' => 'password123',
        'attr_map' => {
        'Name'         => 'sAMAccountName',
        'EmailAddress' => 'mail',
        'RealName'     => 'cn',
        'WorkPhone'    => 'telephoneNumber',
        'Address1'     => 'streetAddress',
        'City'         => 'l',
        'State'        => 'st',
        'Zip'          => 'postalCode',
        'Country'      => 'co',
        },
    },
});



Set($WebRemoteuserAuth,1);
Set($WebRemoteUserContinuous,1);
Set($WebFallbackToRTLogin, undef);
Set($WebRemoteUserGecos,1);
Set($WebRemoteUserAutocreate,1);

Set( $rtname, 'acme RT' );
Set( $CommentAddress, '' );
Set( $CorrespondAddress, '' );
Set( $DatabaseHost, 'localhost' );
Set( $DatabaseName, 'rt_database' );
Set( $DatabasePassword, 'acme123' );
Set( $DatabasePort, '3306' );
Set( $DatabaseType, 'mysql' );
Set( $DatabaseUser, 'root' );
Set( $Organization, 'acme.com<http://acme.com>' );
Set( $OwnerEmail, 'owner at acme.com<mailto:owner at acme.com>' );
Set( $SendmailPath, 'usr/lib/sendmail' );
Set( $SendmailArguments, "-t");
Set( $MailCommand, "sendmail");
Set( $WebDomain, 'rt.servername.acme.com<http://rt.servername.acme.com>' );
Set( $WebPort, '443' );
Set( $rtname, 'acme RT' );

Set(%CustomFieldGroupings,
       'RT::Ticket' => [
       'Basics' => ['Trigger Code']
   ]
   );
Set($CanonicalizeRedirectURLs, 0);
1;



---------
RT 4.4 and RTIR Training Sessions https://bestpractical.com/training
* Washington DC - May 23 & 24, 2016



Email Confidentiality Notice: This email message, including all attachments, is for the sole use of the intended recipient(s) and contains confidential information. If you are not the intended recipient, you may not use, disclose, print, copy or disseminate this information. Please reply and notify the sender, delete the message and any attachments and destroy all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20160420/adb0d2ee/attachment.html>


More information about the rt-users mailing list