Ruby net: LDAP retorna erro “code = 53 message = Unwilling to perform”

1

Estou recebendo este erro "code = 53, message = Unwilling to perform" enquanto estou percorrendo a treebase do eDirectory="ou = Users, o = MTC". Meu script ruby pode ler cerca de 126 entradas do eDirectory e, em seguida, ele para e imprime esse erro. Eu não tenho nenhuma idéia do porquê isso está acontecendo.

Estou usando a rede rubi: versão da biblioteca LDAP 0.0.4. O seguinte é um trecho do código.

require 'rubygems'
require 'net/ldap'

ldap = Net::LDAP.new :host => "10.121.121.112",
 :port => 389,
 :auth => {:method => :simple, :username => "cn=abc,ou=Users,o=MTC", :password => "123"
 }

filter = Net::LDAP::Filter.eq( "mail", "*mtc.ca.gov" )

treebase = "ou=Users,o=MTC"

attrs = ["mail", "uid", "cn", "ou", "fullname"]

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

puts "Total #{i} entries found."
p ldap.get_operation_result

Aqui está a saída e o erro no final. Muito obrigado pela sua ajuda.

DN: cn = uvogle, ou = Usuários, o = MTC

mail:

  --->[email protected]

nome completo:

  --->Ursula Vogler

ou:

  --->Legislation and Public Affairs

dn:

  --->cn=uvogle,ou=Users,o=MTC

cn:

  --->uvogle

Total de 126 entradas encontradas.

Código OpenStruct = 53, message="Pouco disposto a executar"

    
por Robert Munteanu 20.11.2009 / 21:14

3 respostas

1

Então, o problema é recuperar o UID para o usuário 126 (com base no que estou vendo aqui)? Ou você recebe UIDs para todos e depois para a saída completa para o usuário 126?

Em relação ao uid: Em uma instalação padrão do Novell eDirectory, "uid" (letras minúsculas) é mapeado para o identificador único da Novell, que é o mesmo que o CN. Se você está procurando um estilo numérico no estilo Unix, então você vai querer o atributo uidNumber. Pode ser que o administrador de sua instalação tenha feito alguns mapeamentos LDAP diferentes e que o uid não esteja presente para esse usuário (uidNumber não é um atributo obrigatório ou padrão no eDirectory, ele é adquirido por meio da classe auxiliar posixUser).

Por outro lado, se der todos os 126 e, em seguida, falhar, é possível que o administrador tenha colocado um Limite de entrada de pesquisa no objeto do servidor LDAP para esse servidor no eDirectory. Por padrão, não existe tal limite. Você é o admin? Você tem outras ferramentas (como o Java LDAP Browser, agora difícil de encontrar) para solucionar problemas de LDAP observando as entradas cruas?

    
por 20.01.2010 / 18:17
0

Isso é o que eu encontrei usando a Pesquisa de código do Google:

unwillingToPerform       (53), -- unable to sort

unwillingToPerform       (53)  -- server cannot process control
    
por 21.11.2009 / 09:11
0

Você tem acesso ao servidor do eDirectory? Ou seja Esta é uma instância do eDirectory de Dev ou de produção?

Se não, peça ao administrador para assistir no link com o comutador LDAP ativado na configuração de rastreamento. Observe a consulta e os resultados e veja se o eDirectory está exibindo um erro melhor nos logs do Dstrace.

Como exemplo do que você pode ver, trabalhei com o uso do LDAP do SAP GRC neste artigo: Solução de problemas da interface LDAP do SAP GRC e que mostra como uma consulta e uma resposta devem ficar, com alguns exemplos dela funcionando e outras falhas.

    
por 18.04.2010 / 22:50