我正在维护一个使用 Devise LDAP 进行身份验证的 Rails 应用程序。我正在从 Active Directory 迁移到 OpenLDAP,我已经设置了相同的结构。OpenLdap 是使用apt-get
软件包安装的,slapd
并ldap-utils
安装了 Ubuntu Client 12.04 64 位。
我可以针对 OpenLdap 进行身份验证,但是当我调用
Devise::LdapAdapter.get_ldap_entry(email)["memberOf"]
我正在返回一个空数组。在 rails 控制台中,我可以看到返回的 ldap 条目没有“ memberOf
”条目。
当我从终端查询 ldap 服务器时,我收到以下输出:
ldapsearch -H ldapi:/// -x -b "cn=people,dc=example,dc=local" memberOf
...
# fred fred, people, example.local
dn: cn=fred fred,cn=people,dc=example,dc=local
memberOf: cn=Authorisers,ou=example,dc=example,dc=local
...
有人知道为什么ldapsearch
可能会向 Devise 返回不同的结果吗?有人知道如何返回 memberOf 属性吗?
提前致谢
与 ldap 身份验证相关的 gem 是(来自 Bundle 的输出)
Using devise (2.1.2)
Using net-ldap (0.2.2)
Using devise_ldap_authenticatable (0.6.1)
Using activesupport (3.2.9)
Using activemodel (3.2.9)
Using sprockets (2.2.2)
Using mail (2.4.4)
Using activerecord (3.2.9)
Using activeresource (3.2.9)