net / ldap返回Ldaperror 34,带有devise和devise_ldap的Rails中的无效dn语法,dn应该是正确的

时间:2012-10-16 12:30:35

标签: ruby-on-rails devise ldap

我正在尝试使用net / ldap,devise和devise_ldap_authenticatable在rails应用程序上实现身份验证(简单的“他是我们中的一员”)。

当我尝试登录下面弹出的错误消息时,当我进入控制台并尝试使用相同的用户名/密码组合的ldap.bind时,它返回false,但是ldap.open do | ldap | ; ldap.search(...); end成功返回搜索。匿名绑定也返回true,因此问题必须与DN有关。但是DN应该是正确的。通过print语句调试,我发现我给出的确切输入(应该是正确的)通过gem传递给ldap服务器。我想任何想法都没用了?

LDAP: Authorizing user uid=name,ou=People,dc=test,dc=com
LDAP: LDAP search: uid=name
Completed 500 Internal Server Error in 89ms
Net::LDAP::LdapError (Invalid binding information):
net-ldap (0.3.1) lib/net/ldap.rb:1230:in `bind_simple'
net-ldap (0.3.1) lib/net/ldap.rb:1209:in `bind'
net-ldap (0.3.1) lib/net/ldap.rb:718:in `bind'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable
/ldap_adapter.rb:134:in `admin'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable
/ldap_adapter.rb:107:in `has_required_attribute?'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable
/ldap_adapter.rb:77:in `authorized?'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable
/ldap_adapter.rb:14:in `valid_credentials?'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable/model.rb:38:in `valid_ldap_authentication?'
activesupport (3.2.3) lib/active_support/core_ext/object/try.rb:32:in `try'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable/model.rb:65:in 
authenticate_with_ldap'
devise_ldap_authenticatable (0.4.4) lib/devise_ldap_authenticatable/strategy.rb:16:in
authenticate!'
warden (1.2.1) lib/warden/strategies/base.rb:53:in `_run!'
warden (1.2.1) lib/warden/proxy.rb:354:in `block in _run_strategies_for'
warden (1.2.1) lib/warden/proxy.rb:349:in `each'
warden (1.2.1) lib/warden/proxy.rb:349:in `_run_strategies_for'
warden (1.2.1) lib/warden/proxy.rb:319:in `_perform_authentication'
warden (1.2.1) lib/warden/proxy.rb:127:in `authenticate!'
devise (2.1.2) app/controllers/devise/sessions_controller.rb:15:in `create'

1 个答案:

答案 0 :(得分:0)

对于上述任何类型的问题,请尝试使用已知的良好工具(如ldapsearch)来确定可分辨名称,凭据,基础对象等是否正确。

另见