Назад | Перейти на главную страницу

Ruby net: LDAP возвращает ошибку «код = 53 сообщение = нежелание выполнять»

Я получаю сообщение об ошибке «code = 53, message = Unwilling to perform» при просмотре базы данных eDirectory treebase = «ou = Users, o = MTC». Мой сценарий ruby ​​может прочитать около 126 записей из eDirectory, а затем останавливается и выводит эту ошибку. Я понятия не имею, почему это происходит.

Я использую ruby ​​net: библиотека LDAP версии 0.0.4. Ниже приводится отрывок из кода.

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

Вот результат и ошибка в конце. Спасибо большое за помощь.

DN: cn = uvogle, ou = Пользователи, o = MTC

почта:

  --->UVogler@mtc.ca.gov

ФИО:

  --->Ursula Vogler

ОУ:

  --->Legislation and Public Affairs

dn:

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

сп:

  --->uvogle

Всего найдено 126 записей.

Код OpenStruct = 53, сообщение = "Не желает выполнять"

Итак, проблема заключается в получении UID для пользователя 126 (исходя из того, что я здесь вижу)? Или вы получаете UID для всех, а затем он останавливается после полного вывода для пользователя 126?

Что касается uid: при установке Novell eDirectory по умолчанию «uid» (нижний регистр) сопоставляется с уникальным идентификатором Novell, который совпадает с CN. Если вы хотите получить числовой uid в стиле Unix, вам понадобится атрибут uidNumber. Возможно, администратор вашей установки выполнил несколько разных сопоставлений LDAP и uid не указан для этого пользователя (uidNumber не является обязательным или атрибутом по умолчанию в eDirectory, он получается через вспомогательный класс posixUser).

С другой стороны, если он дает все 126, а затем терпит неудачу, то возможно, что администратор установил предел поиска для объекта сервера LDAP для этого сервера в eDirectory. По умолчанию такого ограничения нет. Вы админ? Есть ли у вас другие инструменты (например, труднодоступный Java LDAP Browser) для устранения неполадок LDAP путем просмотра исходных записей?

Вот что я нашел с помощью Google Code Search:

unwillingToPerform       (53), -- unable to sort

unwillingToPerform       (53)  -- server cannot process control

У вас есть доступ к серверу eDirectory? Т.е. Это рабочий или рабочий экземпляр eDirectory?

Если нет, попросите админа посмотреть https: // serverIP: 8030 / nds / trace с включенным переключателем LDAP в конфигурации трассировки. Посмотрите на запрос и результаты и посмотрите, показывает ли eDirectory лучшую ошибку в журналах Dstrace.

В качестве примера того, что вы можете увидеть, в этой статье я рассмотрел использование LDAP в SAP GRC: Устранение неполадок интерфейса LDAP SAP GRC и это показывает, как должны выглядеть запрос и ответ, на некоторых примерах его работы и сбоя в других.