2016-06-29 6 views
1

Ruby를 사용하여 Novell eDirectory에 연결하려고하지만 'open_connection'에 TimeOut이 있습니다.Ruby LDAP 쿼리 Novell eDirectory

당신은 어떻게 생각하십니까?

require 'net/ldap' 

    ldap = Net::LDAP.new :host => "172.21.45.60", 
     :port => 686, 
     :encrytion => :simple_tls, 
     :auth => { 
       :method => :simple, 
       :username => "cn=XXX,ou=XXX,ou=XXX,o=XXX", 
       :password => "XXX" 
     } 

    filter = Net::LDAP::Filter.eq("cn", "paul*") 
    treebase = "ou=XXX,ou=XXX,o=XXX" 
    attrs = ["mail", "cn", "sn", "objectclass", "loginTime"] 

    ldap.search(:base => treebase, :filter => filter, :attributes => attrs) do |entry| 
     puts "DN: #{entry.dn}" 
     entry.each do |attribute, values| 
     puts " #{attribute}:" 
     values.each do |value| 
      puts "  --->#{value}" 
     end 
     end 
    end 

    p ldap.get_operation_result 

오류

C:/Ruby23/lib/ruby/gems/2.3.0/gems/net-ldap-0.14.0/lib/net/ldap/connection.rb:63 :in `open_connection': Se produjo un error durante el intento de conexi¾n ya que la parte conectada no respondi¾ adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexi¾n establecida ya que el host conectado no ha p odido responder. - user specified timeout (Net::LDAP::Error) 
+0

포트가 "686"입니다. 나는 이것이 636 (ssl을 위해) 또는 389이어야한다고 생각한다. – user3441151

답변

1

당신은 포트에 "172.21.45.60"는 conenction을하지 않는 686 당신이 처음에 일반 텍스트 때의 연결을 만들기 위해 노력하고 제안

테스트.

그래서 정말 간단 시작 : 그 작동되면

require 'rubygems' 
require 'net/ldap' 

ldap = Net::LDAP.new :host => server_ip_address, 
    :port => 389, 
    :auth => { 
      :method => :simple, 
      :username => "cn=manager,dc=example,dc=com", 
      :password => "opensesame" 
    } 

filter = Net::LDAP::Filter.eq("cn", "George*") 
treebase = "dc=example,dc=com" 

ldap.search(:base => treebase, :filter => filter) do |entry| 
    puts "DN: #{entry.dn}" 
    entry.each do |attribute, values| 
    puts " #{attribute}:" 
    values.each do |value| 
     puts "  --->#{value}" 
    end 
    end 
end 

은 다음 TLS를 추가합니다.

내가 보는 것처럼 Ruby documentation (나는 루비 전문가 아니다) 인 예를 보여줍니다

{ 
    :method => :start_tls, 
    :tls_options => { :ca_file => "/etc/cafile.pem", :ssl_version => "TLSv1_1" } 
} 

- 짐