Разработайте с проблемами аутентификации LDAP - PullRequest
1 голос
/ 06 декабря 2011

В настоящее время я пытаюсь реализовать Devise с аутентификацией LDAP на RAILS3. У меня есть его настройки, и он, кажется, подключиться и попытаться авторизоваться, но, похоже, не удается. Кажется, я не получаю никаких настоящих сообщений об ошибках, поэтому очень сложно продолжать их.

Журнал сеанса входа в систему:

Started POST "/users/sign_in" for 192.168.160.1 at Tue Dec 06 05:20:16 +0000 2011
  Processing by Devise::SessionsController#create as HTML
  Parameters: {"commit"=>"Sign in", "authenticity_token"=>"G2tEq9gPpJiN0RhanTd8HMWno62F+1oLWbU4xdX78bg=", "utf8"=>"\342\234\223", "user"=>{"remember_me"=>"0", "password"=>"[FILTERED]", "login"=>"richmond@email.com"}}
  User Load (0.1ms)  SELECT `users`.* FROM `users` WHERE `users`.`login` = 'richmond@email.com' LIMIT 1
  LDAP: LDAP dn lookup: mail=richmond@email.com
  LDAP: LDAP search for login: mail=richmond@email.com
  LDAP: Authorizing user mail=richmond@email.com,ou=groupxx,o=company.com
  LDAP: LDAP dn lookup: mail=richmond@email.com
  LDAP: LDAP search for login: mail=richmond@email.com
Completed 401 Unauthorized in 7147ms
  Processing by Devise::SessionsController#new as HTML
  Parameters: {"commit"=>"Sign in", "authenticity_token"=>"G2tEq9gPpJiN0RhanTd8HMWno62F+1oLWbU4xdX78bg=", "utf8"=>"\342\234\223", "user"=>{"remember_me"=>"0", "password"=>"[FILTERED]", "login"=>"richmond@email.com"}}
Rendered devise/shared/_links.erb (0.1ms)
Rendered devise/sessions/new.html.erb within layouts/application (5.0ms)
Completed 200 OK in 23ms (Views: 21.4ms | ActiveRecord: 0.0ms)


Started GET "/assets/defaults.js" for 192.168.160.1 at Tue Dec 06 05:20:23 +0000 2011
Served asset /defaults.js - 404 Not Found (3ms)

ActionController::RoutingError (No route matches [GET] "/assets/defaults.js"):


Rendered /usr/local/lib/ruby/gems/1.8/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.5ms)

Конфигурация ldap:

development:
  host: ldap.company.com
  port: 636
  attribute: mail
  base: ou=groupxx,o=company.com
  #admin_user: cn=admin,dc=test,dc=com
  #admin_password: admin_password
  ssl: true
  # <<: *AUTHORIZATIONS

У меня нет доступа к серверу LDAP, поэтому я не могу ничего подтвердить с этой стороны. Основная проблема, с которой я столкнулся, заключается в том, что я не могу получить никаких сообщений об ошибках в процессе входа в систему - он не может найти пользователя? Он находит пользователя, но не может войти? Почему он выполняет 2 поиска LDAP?

Ответы [ 3 ]

4 голосов
/ 15 декабря 2011

та же проблема здесь.Сделал ldapsearch, который работает однако.Компания использует сервер ActiveDirectory здесь:

ldapsearch -Z -h ldap.company.com -p 389 -s sub -D
"cn=somebody,ou=my_ou,dc=ldap,dc=company,dc=com" -W -b
"dc=ldap,dc=company,dc=com" "(&(cn=somebody))" mail

Решение:

Я нашел решение: В config/initializers/devise.rb Я пропустил активацию config.ldap_use_admin_to_bind = true.Только с этим флагом devise_ldap_authenticatable действительно использует BindDN (т. Е. Admin_user, admin_password, который должен быть раскомментирован), определенный в config/ldap.yml.

3 голосов
/ 21 февраля 2012

Я обнаружил, что проблема, с которой я столкнулся, заключалась в том, что сервер LDAP, используемый моей компанией (IBM), использовал другой стандарт протокола, который официально не поддерживается в NET-LDAP.Вам просто нужно изменить тип элемента управления PagedResults на немного другой стандарт:

#PagedResults = "1.2.840.113556.1.4.319" # Microsoft evil from RFC 2696
PagedResults = "2.16.840.1.113730.3.4.2" # IBM Bluepages compatible ControlType

Полная информация об изменении кода здесь.

Я раздвоил его и исправил его здесь, на GitHub.

0 голосов
/ 20 февраля 2012

Я столкнулся с той же проблемой на моем ActiveDirectory.Я пытался использовать пользователя bind, но это тоже не помогло.Я изменил устройство в соответствии с screencast 210, чтобы использовать поле имени пользователя.Вот мой ldap.yml

  development:
  host: dcburda0
  port: 636
  attribute: cn
  base: OU=Organisation,DC=mydomain,DC=com
  admin_user: CN=username,OU=Support Center Muenchen,OU=name GmbH,OU=Organisation,DC=mydomain,DC=com
  admin_password: password
  ssl: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...