Skip to content
Rack module for NTLM Authentication
Find file
Latest commit 5888da2 @lukefx embh�?
Failed to load latest commit information.
lib fix require
test as Rails plugin
.gitignore Dependency with Bundler
Gemfile Dependency with Bundler
README.markdown embh�?
Rakefile Dependency with Bundler
rack-ntlm.gemspec final fix gemspec



Transparent authentication with NTLM.


In your Gemfile add:

gem 'rack-ntlm', :git => '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.