2012-03-26 14 views
1

ldapを検索しようとしています。これは成功した認証を行い、正しいパスワードと間違ったパスワードを使用して検証しました。 Ldap接続に成功しました。その後、検索クエリを実行すると、LDAP(AD)から属性を読み取ることができません。ここで何が間違っていますか? ldap/ADには誰に何ができるのかに関する制限/許可がありますか?net-ldapでLdapを検索するRuby Rails

#!/usr/bin/env ruby 
require "net-ldap" 
$username = String.new 

class ActiveDirectoryUser 
    SERVER = '10.10.10.10' 
    PORT = 389 
    BASE = 'DC=mydomain,DC=com' 
    DOMAIN = 'mydomain.com' 

    def self.authenticate(login, pass) 
    conn = Net::LDAP.new :host => SERVER, 
         :port => PORT, 
         :base => BASE, 
         :auth => { :username => "#{login}@#{DOMAIN}", 
            :password => pass, 
            :method => :simple } 
    if conn.bind 
     conn.search(
     :base => BASE, :filter => Net::LDAP::Filter.eq(
"sAMAccountName", login), 
     :attributes => %w[ givenName ], :return_result => true) do 
|entry| 
     puts "givenName: #{entry.givenName}" 
     $username = entry.givenName 
     end 
     return true 

    else 
     return false 
    end 
    rescue Net::LDAP::LdapError => e 
    return false 
    end 
end 

if ActiveDirectoryUser.authenticate('myusername', 'mypassword') 
puts "Authentication Successful! The user is "+$username 
#### I get this,but blank username 
else 
puts "Authentication FAILED!" 
end 


----------- 

# ./ad.rb 
Authentication Successful! The user is 

答えてくれてありがとうテリーを。 小さな問題でした。私はtreebaseのいくつかの詳細が不足していた。それは今働いている。それはLDAPクライアント可能性があるので

答えて

0

LDAP準拠のディレクトリ・サーバーでは、アクセス制御を提供する必要があります。

  • がエントリー
  • を検索することはできませんが、エントリ
  • から任意の属性を読み取ることができないいくつかを読み取ることができませんエントリの属性

LDAPクライアントが検索するエントリが存在しない可能性もあります。クライアントは、LDAPクライアントが検索したエントリが存在しない可能性があります。存在する。

アプリケーションコードは、認証が成功したかどうか、またはエントリが存在するかどうかに関する質問がある場合は、コマンドラインツールを使用して問題のエントリが存在することを確認する必要があります。コマンドラインldapsearchの詳細については、LDAP: using ldapsearchを参照してください。

関連する問題