如何获取LDAP组中的用户列表,即使该组恰好是某些用户的主要组?
例如,假设"Domain Users"是德语中的"Domain Leute".我想要"CN = Domain Leute,DC = mycompany,DC = com"的所有成员.我怎么知道这是众所周知的"域用户"组?
或者如果某些用户的主要组被更改为"CN = rebels,DC = mycompany,DC = com",我想获得该组的成员呢?用户的主要组没有memberOf属性,主要组没有列出它们的成员属性.
这是我通过LDAP查看时看到的(即没有MS扩展):

到目前为止,我已经能够在LDAP中找到用户,但是我不知道如何启用或禁用它们。
第二个问题,如果我的帐户具有“域管理员”权限,是否可以通过LDAP启用或禁用帐户?
注意:这是关于在Windows 2003上运行的Microsoft Active Directory。
我知道我可以通过以下方式查看活动用途:
(!(useraccountcontrol:1.2.840.113556.1.4.803:=2))
Run Code Online (Sandbox Code Playgroud)
残疾人使用:
(useraccountcontrol:1.2.840.113556.1.4.803:=2)
Run Code Online (Sandbox Code Playgroud)
问题是我该如何设置属性,使其不会丢失内部的其他二进制标志。
当我拥有的唯一参数是用户 ID 时,我正在尝试获取用户的 DN(可能不止一个)
正如您所看到的,我也在使用 UnboundID LDAP SDK:
public String getCustomerAdminDN(String uid)
{
String result =null;
String filter = "uid=" +uid;
try {
SearchResult searchResult = this.ldapConnection.search("",SearchScope.SUB,filter);
result = searchResult.getMatchedDN();
} catch (LDAPSearchException e) {
throw new RuntimeException("Error in the searching query :" + e.getMessage());
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
让我们假设我的 uid 属于以下 DN
一个人的感谢
我有一个经典的 ASP 网站(对不起!)。它的某些部分需要启用 NT 身份验证。
理想情况下,我想向用户提供一个漂亮的登录表单(而不是浏览器提示),然后我对 AD 进行身份验证,然后执行通常的“如果成功则登录,如果失败则显示错误”
这甚至可能吗?我已经在本地计算机上尝试了以下操作,但不确定如何正确测试是否成功,或者是否扩展到针对 AD 进行搜索
<html>
<head>
</head>
<body>
<form action="test.asp" method="post">
Username:
<input type="text" name="strUserName"><br>
Password:
<input type="password" name="strPassword"><br>
<input type="submit" name="btnSubmit">
</form>
<%
If Request.Form("strUsername") <> "" Then
Dim strADsPath
strADsPath = "WinNT://ARIA"
strUserName = Request.Form("strUserName")
strPassword = Request.Form("strPassword")
'Set adObject = GetObject("WinNT:")
'Set userObject = adObject.OpenDSObject("WinNT://" & domainName, userName, password, ADS_SECURE_AUTHENTICATION)
if (not strADsPath= "") then
Dim oADsObject
Set oADsObject = GetObject(strADsPath)
response.write "Authenticating...<br><br>"
Dim strADsNamespace
Dim oADsNamespace
strADsNamespace = left(strADsPath, …Run Code Online (Sandbox Code Playgroud) 我想使用 ldapsearch 搜索用户。
但是托管服务提供商提供了一些证书(CA)。我在 ldapconf 中添加了该证书。所以在执行 ldapsearch 命令之前我运行 openssl 如下
openssl s_client -connect 主机名 -CAfile /certificate.pem
通过 openssl 连接后,我在另一个终端中执行以下命令
ldapsearch -h hostname -p portno -D uid=mailid@domain.con, dc=global,dc=example,dc=net
Run Code Online (Sandbox Code Playgroud)
现在我想知道在执行 ldapsearch 命令时有什么方法可以使用证书
我通过LDAP为特定应用程序添加用户,使用spring制作.
虽然这适用于大多数情况,但在某些情况下,它不起作用......
检索我使用的用户:
public class LdapUserServiceImpl implements ILdapUserService {
@Override
public List<LdapUserVO> getUserNamesByQuery(String query) {
return ldapTemplate.search(
query().countLimit(15)
.where("objectClass").is("user")
.and("sAMAccountName").isPresent()
.and(query()
.where("sAMAccountName").like("*" + query + "*")
.or("sAMAccountName").is(query)
.or("displayName").like("*" + query + "*")
.or("displayName").is(query))
,
new AttributesMapper<LdapUserVO>() {
public LdapUserVO mapFromAttributes(Attributes attrs) throws NamingException {
LdapUserVO ldapUser = new LdapUserVO();
Attribute attr = attrs.get(ldapUserSearch);
if (attr != null && attr.get() != null) {
ldapUser.setUserName(attr.get().toString());
}
attr = attrs.get("displayName");
if (attr != null && attr.get() != null) {
ldapUser.setDisplayName(attr.get().toString());
}
return ldapUser; …Run Code Online (Sandbox Code Playgroud) 我在通过 LDAP 检索我具有 DistinguishedName 的某些组的信息时遇到问题。\n该问题似乎与它们具有特殊字符有关。
\n\n这里有两个例子,一个有效,一个无效:
\nAll in Test Group
\nAll in 463\\"567y\\\\22\\"\xc2\xa4&/2#%&! 测试组
及其 DN:
\nCN=测试组中的所有内容、OU=Groups、DC=some、DC=test、DC=com
\nCN=463\\"567y\\\\22\\"\xc2 中的所有内容\xa4&/2#%&! 测试组、OU=组、DC=某些、DC=测试、DC=com
我知道 dn\ 是正确的,因为我从用户的 ManagedObjects 属性中检索它们,并已在 AD 中验证它们并使用 ADSI 编辑。
\n\n现在,看看我使用什么代码来检索信息,请注意,此代码在没有特殊字符的组上运行良好:
\n\nDim strGroupdisplayName, strGroupsAMAccountname, strGroupmail\n\n\nFunction GetGroupInfofromDN(group_str)\non error resume next\nDIM objGroup, objDNNamespace, strLDAPGroup\nstrLDAPGroup = "LDAP://" + group_str\nSet objDNNamespace = GetObject("LDAP:")\nSet objGroup = objDNNamespace.OpenDSObject(strLDAPGroup, strADUsername, strADPassword,0)\nobjGroup.GetInfo\nstrGroupdisplayName = ""\nstrGroupsAMAccountname = ""\nstrGroupmail = ""\nstrGroupdisplayName = ObjGroup.Get("displayName")\nstrGroupsAMAccountname = ObjGroup.Get("sAMAccountname")\nstrGroupmail = ObjGroup.Get("mail")\nset objGroup = Nothing\nEnd Function\nRun Code Online (Sandbox Code Playgroud)\n\n至于我尝试过的...我尝试将组编码为 URI 格式,我尝试用转义的等效字符替换特殊字符:
\n\nstrTemp …Run Code Online (Sandbox Code Playgroud) 我有一个如下查询
(|(distinguishedName=cn=Game_BI_CHARGE_BACK,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_Compliance,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_Finance,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_GP,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_MANAGED_CARE,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_MEDICAID,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_PowerUser,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_TRADE,ou=Groups,ou=FC,dc=na,dc=company,dc=com)(distinguishedName=cn=Game_BI_TRICARE,ou=Groups,ou=FC,dc=na,dc=company,dc=com))
Run Code Online (Sandbox Code Playgroud)
我想使用通配符缩短它,所有组名称都以 Game_BI 开头。上面的查询有效,我只是想让它简短一些。
谢谢沙什
我正在使用 python ldap3 模块。我能够连接到我公司的 LDAP 服务。我想使用用户名进行查询并获取该用户的名字/姓氏+电子邮件地址。
我说:
results = conn.search('DC=corp,DC=XXXXXX,DC=com',
"(&(objectClass=person)(sAMAccountName=" + user_id + "))")
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到一个匹配:
[DN: CN=YYYY\, ZZZZ,OU=Workers,DC=amr,DC=corp,DC=XXXXXX,DC=com - STATUS: Read - READ TIME: 2020-01-14T20:43:16.146874]
Run Code Online (Sandbox Code Playgroud)
YYYY姓氏也是如此,ZZZZ名字也是如此。但电子邮件不存在。我如何检索它?谢谢。
我正在尝试使用 SSL 连接支持 LDAP 的 Active Directory。
但对一些术语感到困惑。帮助我以非常简单的方式理解。
请纠正我
Domain Name or Host Name or DNS:这是运行 Active Directory 服务的服务器地址或名称。
DC or Domain Component or Domain Controller:这是 Active Directory 中的文件夹名称。例如,如果我给出DC=gp,DC=gl,DC=google,DC=com",则gp是 文件夹内部google且google是 文件夹内部com。
CN=Dev-India,OU=Distribution Groups:CN是属于 的用户名OU group。该用户将在文件夹结构中查找某些内容 DC=gp,DC=gl,DC=google,DC=com"。
主机名可以类似于顶级 DC(文件夹)名称吗?
LDAP 中的 DC 和 AD 域名和主机名有什么区别?
ldap-query ×10
ldap ×9
asp-classic ×2
adsi ×1
java ×1
ldap-client ×1
linux ×1
member ×1
python ×1
spring ×1
spring-ldap ×1