使用LDAP或AD的Ruby

时间:2010-05-19 10:43:45

标签: ruby ldap

有没有办法确定和确认事实,哪种更好,更容易与Ruby集成。 LDAP或ActiveDirectory?

3 个答案:

答案 0 :(得分:4)

我使用net-ldap gem来验证和查询工作中的ActiveDirectory服务器。它运作良好。以下是验证用户登录凭据并获取其全名的示例代码。

def name_for_login( email, password )
  email = email[/\A\w+/].downcase  # Throw out the domain, if it was there
  email << "@mycompany.com"        # I only check people in my company
  ldap = Net::LDAP.new(
    host: 'ldap.mycompany.com',    # Thankfully this is a standard name
    auth: { method: :simple, email: email, password:password }
  )
  if ldap.bind
    # Yay, the login credentials were valid!
    # Get the user's full name and return it
    ldap.search(
      base:         "OU=Users,OU=Accounts,DC=mycompany,DC=com",
      filter:       Net::LDAP::Filter.eq( "mail", email ),
      attributes:   %w[ displayName ],
      return_result:true
    ).first.displayName.first
  end
end

答案 1 :(得分:3)

ActiveDirectory是LDAP的一个实现。您可以使用RubyLDAP gem与AD集成。我目前正在使用此gem从RHEL服务器连接到Windows域控制器。

gem install ruby-ldap

答案 2 :(得分:1)

Ruby的LDAP绑定相当不错 - 不完全漂亮,但它们运行良好。当然,您可以将ActiveDirectory 作为 LDAP服务器访问。我从未尝试过任何针对Ruby的ActiveDirectory绑定。