gpt4 book ai didi

ruby-on-rails - 如何使用 Ruby 从 Active Directory 中检索已删除的对象?

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:56 25 4
gpt4 key购买 nike

根据我所做的研究,我似乎需要在请求中发送一个特殊的 OID (1.2.840.113556.1.4.417) 才能访问已删除对象容器。

我找不到使用“net-ldap”gem 发送带有请求的特定控件的方法。有谁知道这是否可能?

还有另一个 gem,ruby-ldap,它看起来更灵活,我似乎可以发送带有我的请求的控件(例如使用 search_ext2() 方法)。

但是,无论我尝试什么,我都没有取回任何对象,即使我知道它们还没有被垃圾回收。

我也在我的请求中包含过滤器“isDeleted=TRUE”。

最佳答案

好吧,我终于明白了。需要使用 ruby-ldap gem。未发送我的控件的原因是 LDAP 协议(protocol)版本 (LDAP::LDAP_OPT_PROTOCOL_VERSION) 默认为 v2,显然它必须是 v3。

以下是一个有效的片段:

require 'ldap'

conn = LDAP::Conn.new('yourserver.example.com', 389)
conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
conn.bind("CN=Administrator,CN=Users,DC=example,DC=com", "sekritpass")

# controlType: 1.2.840.113556.1.4.417 (LDAP_SERVER_SHOW_DELETED_OID)
control = LDAP::Control.new('1.2.840.113556.1.4.417')

conn.search_ext2('CN=Deleted Objects,DC=example,DC=com', LDAP::LDAP_SCOPE_SUBTREE, "(isDeleted=*)", nil, false, [control], nil)

过滤器 (isDeleted=*) 不是必需的,您也可以简单地使用 (objectClass=*)。如果需要,您还可以使用范围 LDAP::LDAP_SCOPE_ONELEVEL

关于ruby-on-rails - 如何使用 Ruby 从 Active Directory 中检索已删除的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30615986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com