首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Ruby查询Active Directory OU中的对象列表

如何从Ruby查询Active Directory OU中的对象列表
EN

Stack Overflow用户
提问于 2021-02-10 05:07:59
回答 1查看 76关注 0票数 0

我正在尝试从基于Ruby的应用程序中从我们的组织Active Directory中查询特定OU中的服从列表。

从提供的基本示例开始,我一直在试用net/ldap gem (docs here)。以下是我编辑后的版本:

代码语言:javascript
复制
require 'rubygems'
require 'net/ldap'

ldap = Net::LDAP.new :host => <server_ip_address>,
     :port => 389,
     :auth => {
           :method => :simple,
           :username => <username>,
           :password => <password>
     }

filter = Net::LDAP::Filter.eq("OU", "ServerGroups")
treebase = "OU=ServerGroups,OU=Unix,OU=RBAC,OU=Role Groups,OU=Resource Administration,DC=corp,DC=our-company,DC=com"

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

puts("#{ldap.get_operation_result}")

我没有做正确的事情,因为我没有获得在ServerGroups OU中找到的对象列表。

我得到了:

代码语言:javascript
复制
 DN: OU=ServerGroups,OU=Unix,OU=RBAC,OU=Role Groups,OU=Resource Administration,DC=corp,DC=our-company,DC=com
    dn:
       --->OU=ServerGroups,OU=Unix,OU=RBAC,OU=Role Groups,OU=Resource Administration,DC=corp,DC=our-company,DC=com
    objectclass:
       --->top
       --->organizationalUnit
    ou:
       --->ServerGroups
    distinguishedname:
       --->OU=ServerGroups,OU=Unix,OU=RBAC,OU=Role Groups,OU=Resource Administration,DC=corp,DC=our-company,DC=com
    instancetype:
       --->4
    whencreated:
       --->20210119235409.0Z
    whenchanged:
       --->20210120000040.0Z
    usncreated:
       --->81770269
    usnchanged:
       --->81770269
    name:
       --->ServerGroups
    objectguid:
    objectcategory:
       --->CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=corp,DC=our-company,DC=com
    dscorepropagationdata:
       --->16010101000000.0Z

有没有人能发现我的错误或者建议一个更好的Ruby相关的解决方案?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 17:10:06

我认为这是因为您正在设置只与ServerGroups对象本身匹配的Net::LDAP::Filter.eq("OU", "ServerGroups")过滤器。

要获取所有对象,请尝试在不指定过滤器的情况下进行搜索。如果未指定筛选器,则将Net::LDAP uses Net::LDAP::Filter.eq("objectClass", "*")作为匹配所有对象的默认筛选器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66127170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档