我正在经历使用LDAP授权设置RabbitMQ的过程,但我没有太多运气......有人知道,请看看我告诉我我做错了什么?我能够使用以下代码查询LDAP以获取用户对象:
var entry = new DirectoryEntry("LDAP://ourldapbox.ourcompany.co.uk:636/CN=Mark Twain,OU=Development,OU=OurCompany Employees,DC=OurCompany,DC=co,DC=uk");
Run Code Online (Sandbox Code Playgroud)
配置尝试1
[
{rabbit, [{auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}]},
{rabbitmq_auth_backend_ldap,
[ {servers, ["ourldapbox.ourcompany.co.uk"]},
{user_dn_pattern, "CN=${username},OU=Development,OU=OurCompany Employees,DC=OurCompany,DC=co,DC=uk"},
{use_ssl, false},
{port, 636},
{log, true}
]
}
].
Run Code Online (Sandbox Code Playgroud)
配置尝试2
[
{rabbit, [{auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}]},
{rabbitmq_auth_backend_ldap,
[ {servers, ["ourldapbox.ourcompany.co.uk"]},
{dn_lookup_attribute, "sAMAccountName"},
{dn_lookup_base, "DC=ourcompany,DC=co,DC=uk"},
{user_dn_pattern, "${username}@ourcompany.co.uk"},
{other_bind, anon},
{use_ssl, false},
{port, 636},
{log, true}
]
}
].
Run Code Online (Sandbox Code Playgroud)
配置尝试3
[
{rabbit, [{auth_backends, [rabbit_auth_backend_ldap, rabbit_auth_backend_internal]}]},
{rabbitmq_auth_backend_ldap,
[ {servers, ["ourldapbox.ourcompany.co.uk"]},
{dn_lookup_attribute, "userPrincipalName"},
{dn_lookup_base, "dc=ourcompany,dc=co,dc=uk"},
{user_dn_pattern, "${username}@ourcompany.co.uk"},
{use_ssl, false},
{port, 636},
{log, true}
] …Run Code Online (Sandbox Code Playgroud) 我正在尝试检索有关 LDAP 组的数据。由于我需要对结果进行分页,因此我需要运行范围查询。我的设置使用 JNDI 连接到 LDAP。我正在尝试运行此查询
(&(objectclass=group)(range=1-500))
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我知道 LDAP 有基于范围的查询,如何修改此查询以获得相同的查询?
如果我正在寻找所有东西Groups,我会得到太多的垃圾。
如果我试图缩小基数,我会得到的太少。
这是一个例子:
CN=A Team,OU=Groups,OU=Americas,DC=example,DC=com
CN=B TEAM,OU=Groups,OU=EMEA,DC=example,DC=com
CN=C Team,OU=Legacy Groups,DC=example,DC=com
CN=D Team,OU=Groups,OU=Bangalore,OU=APAC,DC=example,DC=com
CN=E Team,OU=Common Groups,DC=example,DC=com
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个filter返回ABDE(不带C)的LDAP- 主要的逻辑是让我拥有所有最后一个OU=Groups或最后一个的组OU=Common Groups
我当前的搜索正在使用:
Search base: CN=Users,DC=citrite,DC=net
Filter: (objectCategory=Group)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用net-ldap库为ruby查询ldap服务器以获取任何组的详细信息
require 'rubygems'
require 'net/ldap'
username = "user1"
password = "pass1"
host = 'server.address'
ldap = Net::LDAP.new :host => host, :port => 389
ldap.auth username, password
filter = Net::LDAP::Filter.eq("cn", "*group*")
ldap.search(:base => treebase, :filter => filter, :return_result => true) do |entry|
puts "DN: #{entry.dn}"
entry.each do |attr, values|
puts ".......#{attr}:"
values.each do |value|
puts " #{value}"
end
end
end
Run Code Online (Sandbox Code Playgroud)
我得到有关该组的详细信息,但不是该组的所有者.
什么是错的任何想法?以及如何做到这一点
我为Active Directory中的搜索用户创建了以下过滤器:
(&(objectClass=*)(|(sAMAccountName=u)(userPrincipalName=u))
Run Code Online (Sandbox Code Playgroud)
可以创建更多合格的过滤器:
(&(objectClass=person)(|(sAMAccountName=u)(userPrincipalName=u))
Run Code Online (Sandbox Code Playgroud)
问题是为什么?
使用指定类有什么好处person?
是否可能同一目录包含的对象objectClass不是,person但以下是真的(|(sAMAccountName=u)(userPrincipalName=u))?
并不总是(objectClass=*)在LDAP搜索过滤器中使用?
在活动目录中,我可以使用以下过滤器执行子树和一级ldap搜索:
base dn: CN=Users,DC=local,DC=tld
filter: (sAMAccountName=dummyaccount)
Run Code Online (Sandbox Code Playgroud)
dummyaccount位于Users容器中.有人可以向我解释为什么单级和子树的工作,而基础不工作?我有什么办法可以找到对象吗?
我想curl在命令行上使用a检查是否$USER是LDAP组的成员$GROUP。
这有效:
curl --user $CREDS \
"ldaps://ldap.foo.com/DC=ads,DC=foo,DC=com??sub?(sAMAccountName=$USER)" \
| grep -a "memberOf: CN=$GROUP,OU=Distribution,OU=Groups,DC=ads,DC=foo,DC=com"
Run Code Online (Sandbox Code Playgroud)
不幸的是,该呼叫需要花费一些时间,并且返回许多我不感兴趣的信息。您知道是否存在更有效的方法吗?
我使用unboundid ldap sdk来执行ldap查询.我在运行ldap搜索查询时遇到了一个奇怪的问题.当我对包含50k条目的组运行查询时,我收到异常.我的例外:
LDAPException(resultCode=4 (size limit exceeded), errorMessage='size limit exceeded')
at com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPSearchResults.nextElement(LDAPSearchResults.java:254)
at com.unboundid.ldap.sdk.migrate.ldapjdk.LDAPSearchResults.next(LDAPSearchResults.java:279)
Run Code Online (Sandbox Code Playgroud)
现在奇怪的是我已经在搜索约束中将maxResultSize设置为100k,而不是我收到此错误的原因?我的代码是
ld = new LDAPConnection();
ld.connect(ldapServer, 389);
LDAPSearchConstraints ldsc = new LDAPSearchConstraints();
ldsc.setMaxResults(100000);
ld.setSearchConstraints(ldsc);
Run Code Online (Sandbox Code Playgroud)
有人有什么想法吗?
DC=abc,DC=COM
OU=ABC
OU=Users
CN=User1
CN=User2
CN=User3
OU=Computers
OU=ABC1
OU=Users
CN=User4
CN=User5
CN=User6
OU=Computers
OU=ABC2
OU=Users
CN=User7
CN=User8
CN=User9
OU=Computers
Run Code Online (Sandbox Code Playgroud)
有一个名为employeeID的用户属性employeeID记录中可以存在两种类型的值,一种是纯整数,另一种是以NE开头的字符
我想提取所有员工 ID 是数字的用户。
什么应该是 LDAP 查询,可以用来实现相同的
我正在开发一个 ASP.NET MVC WebApi 项目,其中一种方法需要进行 LDAP 搜索。搜索从 LDAP 服务器检索的信息量确保调用至少需要 7 秒才能完成。调用,因为它使用System.DirectoryServices.Protocols类和方法,是同步和不可修改的。
此 API 将接收的流量相当大(即使 API 位于内部网络中),因此每次调用 LDAP 服务器 7 秒并不是一个好主意。所以我想知道这个:
await Task.Run(() => Search(params))一种可以接受的方式吗?)我需要在 FreeIPA 上检查用户是否是某个组的成员。(目前我正在命令行上测试以在 Node 中编写实际代码之前正确进行搜索)。根据搜索,我使用以下查询:
ldapsearch -x -b "uid=testuser,cn=users,cn=accounts,dc=smnet,dc=com" '(memberof=cn=testgroup,cn=groups,cn=accounts,dc=smnet,dc=com)'
Run Code Online (Sandbox Code Playgroud)
但我得到的结果是:
# extended LDIF
#
# LDAPv3
# base <uid=testuser,cn=users,cn=accounts,dc=smnet,dc=com> with scope subtree
# filter: (memberof=cn=testgroup,cn=groups,cn=accounts,dc=smnet,dc=com)
# requesting: ALL
#
# search result
search: 2
result: 0 Success
# numResponses: 1`
Run Code Online (Sandbox Code Playgroud)
但是,如果我不使用过滤器:
ldapsearch -x -b "uid=testuser,cn=users,cn=accounts,dc=smnet,dc=com"
Run Code Online (Sandbox Code Playgroud)
我得到:
# extended LDIF
#
# LDAPv3
# base <uid=testuser,cn=users,cn=accounts,dc=smnet,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# testuser, users, accounts, smnet.com
dn: uid=testuser,cn=users,cn=accounts,dc=smnet,dc=com
givenName: test
sn: user
uid: testuser
cn: …Run Code Online (Sandbox Code Playgroud) 我遇到过这样的情况:Active Directory 组以唯一代码为前缀。例如
我目前正在使用 LDAP 来获取所有组,但我想将其限制为仅包含以 id 为前缀的组。
有效获取以 12345 开头的组。
如何使用 LDAP 实现这一目标?
我编写了以下 ldap 命令来测试 ldap 连接
ldapsearch -x -h ldap.com -b "uid=user1,ou=people,dc=domain,dc=com"
Run Code Online (Sandbox Code Playgroud)
我得到以下输出
# extended LDIF
#
# LDAPv3
# base <uid=user1,ou=people,dc=domain,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C0907C2, comment: In order to perform this opera
tion a successful bind must be completed on the connection., data 0, v2580
# numResponses: 1
Run Code Online (Sandbox Code Playgroud)
请建议如何解决绑定错误