net/ldap、devise、およびdevise_ldap_authenticatableを使用して、Ruby on Railsアプリの認証(単純な「彼は私たちの一人ですか」)を実装しようとしています。
ログインしようとすると、以下のエラー メッセージが表示されます。コンソールに移動して、同じユーザー名とパスワードの組み合わせで ldap.bind を実行すると、false が返されますが、ldap.open は |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'