通过Devise进行LDAP身份验证 - 连接设置出现问题

时间:2015-09-24 10:14:50

标签: ruby-on-rails-4 authentication devise ldap connection

我是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]

任何人都可以帮助我建立连接吗?也许,我需要什么信息或者我对这件事做错了什么?提前谢谢!

1 个答案:

答案 0 :(得分:0)

更新:我找到了问题的答案。问题是我的凭证错了!如果有人遇到同样的问题 - 对我来说,正确的属性是'uid'和正确的基础:ou =员工,dc = mydomian,dc = com

我使用LDAP浏览器(LDAP管理员 - Softerra)来测试我计划使用的登录凭据,并在创建应用程序的LDAP配置之前检查架构。倾向于避免沮丧和惊喜。

相关问题