我的 Rails 应用程序(使用 Devise + Devise LDAP Authenticatable)和我尝试与之通信的 Active Directory 服务器存在一些连接问题。
我已经能够ldapsearch
使用以下命令成功执行绑定和搜索:
ldapsearch -H ldap://ad.example.com:389 -b "ou=dept,ou=Users,ou=company,dc=example,dc=com" -D "me@example.com" -W "&(objectClass=organizationalPerson)(objectClass=Person))" mail
既然这样可行,我假设我的 devise_ldap_authenticable 配置有问题,如下所示:
development:
host: ad.example.com
port: 389
attribute: mail
base: ou=dept,ou=Users,ou=company,dc=example,dc=com
objectClass: organizationalPerson
objectClass: Person
ssl: false
使用 Wireshark,我能够从成功的绑定/搜索 (CLI) 和失败的绑定/搜索 (Rails) 中捕获流量。成功的绑定正确地将电子邮件地址作为bindRequest
( LDAPMessage bindRequest(1) "me@example.com" simple
) 的一部分发送,但bindRequest
来自 Rails 应用程序的看起来像LDAPMessage bindRequest(1) "<ROOT>" simple
有人能发现我的配置存在明显问题吗?谁能将我的ldapsearch
命令翻译成正确的 YAML 配置?