用于搜索用户和组的 ldap 查询
ldap query to search for a user and group
我正在尝试使用 ldapjs 节点库来搜索组内的用户,但这似乎不起作用。
这是 ldap 属性:
{
"dn": "CN=TOM H,OU=GLO_Users,OU=GLOBAL,OU=SITES,OU=Engineering,DC=example,DC=com",
"controls": [
],
"sAMAccountName": "toma",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user"
],
"cn": "TOM H",
"sn": "H",
"memberOf": [
"CN=g.some_group,OU=Distribution Groups,OU=Groups,OU=Corp,OU=Common,DC=example,DC=com",
]
....
....
我正在尝试搜索 sAMAccountName 为“toma”且属于“g.some_group”组成员的用户。
我为此编写了这个查询:
const opts = {
filter: '(&(sAMAccountName=toma)(memberOf=CN=g.some_group))',
scope: 'sub'
};
const client = ldap.createClient(url: 'some_ldap_server');
client.bind(...);
clinet.search("DC=example,DC=com", opts, (err, res) => {
res.on('serchEntry', (entry: any) => {
console.log("entry " + JSON.stringify(entry.object));
})
res.on('end', function(result: any) {
console.log('status: ' + result);
});
});
这不会产生任何结果。这只是打印:
status: {"messageID":2,"protocolOp":"LDAPResult","status":0,"matchedDN":"","errorMessage":"","referrals":[],"controls":[]}
看来我的查询有误:
const opts = {
filter: '(&(sAMAccountName=toma)(memberOf=CN=g.some_group))',
scope: 'sub'
};
谁能帮帮我。
您会注意到在对象的输出中,memberOf
属性包含组的完整可分辨名称 (DN)。这就是您需要包含在查询中的内容。您在查询中只包含了 CN 部分,这就是它不匹配的原因。
const opts = {
filter: '(&(sAMAccountName=toma)(memberOf=CN=g.some_group,OU=Distribution Groups,OU=Groups,OU=Corp,OU=Common,DC=example,DC=com))',
scope: 'sub'
};
我正在尝试使用 ldapjs 节点库来搜索组内的用户,但这似乎不起作用。 这是 ldap 属性:
{
"dn": "CN=TOM H,OU=GLO_Users,OU=GLOBAL,OU=SITES,OU=Engineering,DC=example,DC=com",
"controls": [
],
"sAMAccountName": "toma",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user"
],
"cn": "TOM H",
"sn": "H",
"memberOf": [
"CN=g.some_group,OU=Distribution Groups,OU=Groups,OU=Corp,OU=Common,DC=example,DC=com",
]
....
....
我正在尝试搜索 sAMAccountName 为“toma”且属于“g.some_group”组成员的用户。
我为此编写了这个查询:
const opts = {
filter: '(&(sAMAccountName=toma)(memberOf=CN=g.some_group))',
scope: 'sub'
};
const client = ldap.createClient(url: 'some_ldap_server');
client.bind(...);
clinet.search("DC=example,DC=com", opts, (err, res) => {
res.on('serchEntry', (entry: any) => {
console.log("entry " + JSON.stringify(entry.object));
})
res.on('end', function(result: any) {
console.log('status: ' + result);
});
});
这不会产生任何结果。这只是打印:
status: {"messageID":2,"protocolOp":"LDAPResult","status":0,"matchedDN":"","errorMessage":"","referrals":[],"controls":[]}
看来我的查询有误:
const opts = {
filter: '(&(sAMAccountName=toma)(memberOf=CN=g.some_group))',
scope: 'sub'
};
谁能帮帮我。
您会注意到在对象的输出中,memberOf
属性包含组的完整可分辨名称 (DN)。这就是您需要包含在查询中的内容。您在查询中只包含了 CN 部分,这就是它不匹配的原因。
const opts = {
filter: '(&(sAMAccountName=toma)(memberOf=CN=g.some_group,OU=Distribution Groups,OU=Groups,OU=Corp,OU=Common,DC=example,DC=com))',
scope: 'sub'
};