Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Rack module for NTLM Authentication
Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.gitignore
Gemfile
README.markdown
Rakefile
rack-ntlm.gemspec

README.markdown

Rack-ntlm

Transparent authentication with NTLM.

Usage

In your Gemfile add:

gem 'rack-ntlm', :git => 'git://github.com/lukefx/rack-ntlm.git'

Then add rack-ntlm to the middleware chain in config/application.rb (Rails 3)

config.middleware.use "Rack::Ntlm", {
  :uri_pattern => /\/login/                       # (default = /\//) (any URL)
  :host => '<Active Directory hostname>',
  :port => 389,                                   # default = 389
  :base => 'Base namespace for LDAP search',
  :search_filter => '(dn=%1)'                     # default = (sAMAccountName=%1)
  :auth => {
    :username => '<username to bind to LDAP>',
    :password => '<password to bind to LDAP>'
}

# credits to dtsato to this awesome configuration and defaults

How it works?

NTLM is a transparent authentication system developed by Microsoft, it needs that your webserver use keepalive because the handshake consists in 6 steps all with the same connection.

1: C --> S GET ...

2: C <-- S 401 Unauthorized WWW-Authenticate: NTLM

3: C --> S GET ... Authorization: NTLM

4: C <-- S 401 Unauthorized WWW-Authenticate: NTLM

5: C --> S GET ... Authorization: NTLM

6: C <-- S 200 Ok

Something went wrong with that request. Please try again.