Ruby net:LDAP 返回“代码 = 53 消息 = 不愿意执行”错误

Ruby net:LDAP 返回“代码 = 53 消息 = 不愿意执行”错误

当我遍历 eDirectory 树库 = “ou=Users,o=MTC” 时,我收到此错误“代码 = 53,消息 = 不愿意执行”。我的 ruby​​ 脚本可以从 eDirectory 读取大约 126 个条目,然后它停止并打印出此错误。我不知道为什么会发生这种情况。

我使用的是 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

邮件:

  --->[email protected]

全名:

  --->Ursula Vogler

欧:

  --->Legislation and Public Affairs

域名:

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

中国:

  --->uvogle

共找到 126 条条目。

OpenStruct 代码=53,消息=“不愿意执行”

答案1

那么,问题在于检索用户 126 的 UID(基于我在此处看到的内容)?还是您获取了每个人的 UID,然后在用户 126 的完整输出后停止?

关于 uid:在默认的 Novell eDirectory 安装中,“uid”(小写)映射到 Novell uniqueID,它与 CN 相同。如果您希望获得 Unix 样式的数字 uid,那么您将需要 uidNumber 属性。可能是您的安装管理员进行了一些不同的 LDAP 映射,并且该用户没有 uid(uidNumber 不是 eDirectory 中的必需或默认属性,它是通过 posixUser 辅助类获取的)。

另一方面,如果它给出了全部 126 个然后失败,那么管理员可能在 eDirectory 中为此服务器的 LDAP 服务器对象设置了搜索条目限制。默认情况下不存在这样的限制。您是管理员吗?您是否有其他工具(例如现在很难找到的 Java LDAP 浏览器)可以通过查看原始条目来排除 LDAP 故障?

答案2

这是我使用 Google 代码搜索找到的内容:

unwillingToPerform       (53), -- unable to sort

unwillingToPerform       (53)  -- server cannot process control

答案3

您有权访问 eDirectory 服务器吗?即这是开发版还是生产版 eDirectory 实例?

如果没有,请要求管理员观看https://服务器IP:8030/nds/trace在跟踪配置中启用 LDAP 开关。查看查询和结果,并查看 eDirectory 是否在 Dstrace 日志中显示更好的错误。

作为您可能看到的一个示例,我在本文中研究了 SAP GRC 对 LDAP 的使用: SAP GRC 的 LDAP 接口故障排除 这显示了查询和响应应该是什么样的,其中一些示例有效,另一些示例失败。

相关内容