我是ldap的新手,我正在尝试使用devise_ldap_authenticable gem建立与远程ldap服务器的连接,以便从那里验证我的用户。而且我遇到了麻烦。问题是我不确定要放在哪里的数据,我在控制台中收到的响应是这样的:
LDAP:LDAP dn lookup:memberUid = n.taran
LDAP:LDAP搜索 login:memberUid = n.taran
LDAP:LDAP搜索产生8个匹配
LDAP:授权用户cn = Mail,cn =站点访问,dc = mydomain,dc = com
LDAP:未经授权,因为未经过身份验证。
LDAP:LDAP dn lookup:memberUid = n.taran
LDAP:LDAP搜索登录: memberUid = n.taran
LDAP:LDAP搜索产生8个匹配
LDAP: 授权用户cn = Mail,cn =站点访问权限,dc = mydomain,dc = com
LDAP: 未经授权,未经授权。
已完成401 未经授权的960毫秒(ActiveRecord:1.9毫秒)这是我应该使用的给定凭据 连接:
LDAP URL:ldap://ldap.mydomain.com
根DN: dc = mydomain,dc = com
BindDN:cn = proxy,dc = mydomain,dc = com
BindPassword:some_password
属性:memberUid
这是我的ldap.yml:
authorizations: &AUTHORIZATIONS
allow_unauthenticated_bind: false
group_base: ou=groups,dc=test,dc=com
required_groups:
- cn=admins,ou=groups,dc=test,dc=com
- cn=users,ou=groups,dc=test,dc=com
- ["moreMembers", "cn=users,ou=groups,dc=test,dc=com"]
require_attribute:
objectClass: inetOrgPerson
authorizationRole: postsAdmin
## Environment
development:
host: ldap.mydomain.com
port: 389
attribute: memberUid
base: dc=mydomain,dc=com
admin_user: cn=proxy,dc=mydomain,dc=com
admin_password: some_password
ssl: false
# <<: *AUTHORIZATIONS
我想通过登录验证,而不是电子邮件,所以这就是我的devise.rb的样子:
Devise.setup do |config|
# ==> LDAP Configuration
config.ldap_logger = true
config.ldap_create_user = true
config.ldap_update_password = true
# config.ldap_config = "#{Rails.root}/config/ldap.yml"
# config.ldap_check_group_membership = false
# config.ldap_check_group_membership_without_admin = false
# config.ldap_check_attributes = false
config.ldap_use_admin_to_bind = true
# config.ldap_ad_group_check = false
#some more code
config.authentication_keys = [:username]
任何人都可以帮助我建立连接吗?也许,我需要什么信息或者我对这件事做错了什么?提前谢谢!
答案 0 :(得分:0)
更新:我找到了问题的答案。问题是我的凭证错了!如果有人遇到同样的问题 - 对我来说,正确的属性是'uid'和正确的基础:ou =员工,dc = mydomian,dc = com
我使用LDAP浏览器(LDAP管理员 - Softerra)来测试我计划使用的登录凭据,并在创建应用程序的LDAP配置之前检查架构。倾向于避免沮丧和惊喜。