我在这样的LDAP中有一个搜索查询.这个查询究竟是什么意思?
("CN=Dev-India,OU=Distribution Groups,DC=gp,DC=gl,DC=google,DC=com");
Run Code Online (Sandbox Code Playgroud) 如何使用搜索过滤器显示特定组的用户?
我尝试过以下方法:
(&
(objectCategory=user)
(memberOf=MyCustomGroup)
)
Run Code Online (Sandbox Code Playgroud)
还有这个:
(&
(objectCategory=user)
(memberOf=cn=SingleSignOn,ou=Groups,dc=tis,dc=eg,dc=ddd,D??C=com)
)
Run Code Online (Sandbox Code Playgroud)
但不显示特定组的用户.
如何通过sAMAccountName和Domain查询LDAP存储?在Active Directory或LDAP术语中命名的"域"属性是什么?
到目前为止,这就是我对过滤器的要求.我希望能够在域中添加:
(&(objectCategory=Person)(sAMAccountName=BTYNDALL))
Run Code Online (Sandbox Code Playgroud) 我想在ldap中执行以下查询
ldapsearch -h hostname -b dc=ernet,dc=in -x "(&(uid=w2lame)(objectClass=posixAccount))" gidnumber
ldapsearch -h hostname -b dc=ernet,dc=in -x "(&(gidNumber=1234)(objectClass=posixGroup))" cn
Run Code Online (Sandbox Code Playgroud)
并使用由此获得的变量.我怎样才能做到这一点?
我有一个LDAP查询,我用它来在C#中执行搜索.它使用两个字符串变量(用户名和域),出于安全原因需要对其进行转义.
我应该如何摆脱弦乐?C#.NET中是否有可用的功能来执行此操作?
示例LDAP搜索条件:
(objectCategory=person)
(userprincipalname=username@domain*)
(samaccountname=username)
Run Code Online (Sandbox Code Playgroud)
C#中的LDAP查询字符串示例:
string search = "(&(&(objectCategory=person)(userprincipalname="
+ username
+ "@"
+ domain
+ "*)(samaccountname="
+ username
+ ")))";
Run Code Online (Sandbox Code Playgroud)
编辑:我已经有LDAP查询工作,并返回结果.我想要的只是逃避参数.
我们有一个LDAP,其中包含许多遵循此模式的组:
Acme-MyApp-ABC-Admin Acme-MyApp-ABC-Bottlewasher Acme-MyApp-ABC-Cook Acme-MyApp-DEF-Admin Acme-MyApp-DEF-Bottlewasher Acme-MyApp-DEF-Cook等重复多次.
Acme-MyApp-ABC-Admin
Acme-MyApp-ABC-Bottlewasher
Acme-MyApp-ABC-Cook
Acme-MyApp-DEF-Admin
Acme-MyApp-DEF-Bottlewasher
Acme-MyApp-DEF-Cook
Run Code Online (Sandbox Code Playgroud)
正确返回Acme-MyApp-ABC-Admin组的成员.我们想找到所有管理员组的成员.
(&(objectClass=person)(memberOf=cn=Acme-MyApp-ABC-Admin,ou=Groups,dc=acme,dc=com))
Run Code Online (Sandbox Code Playgroud)
是否可以在DN中放置通配符?
我在WildFly 9.0.2服务器上运行Web应用程序,该服务器具有自定义登录领域(需要以递归方式查询为组织单位B查询的组织单位B的多个组织单位A,该组织单位为独立配置).像这样的xml:
<security-realm name="LoginRealm">
<authentication>
<ldap connection="EC2" base-dn="ou=users,dc=test,dc=de">
<username-filter attribute="uid"/>
</ldap>
</authentication>
</security-realm>
...
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="de.test.LoginModule" flag="required">
<module-option name="principalDNPrefix" value="uid="/>
<module-option name="principalDNSuffix" value=",ou=users,dc=test,dc=de"/>
<module-option name="rolesCtxDN" value="ou=groups,dc=test,dc=de"/>
<module-option name="roleAttributeID" value="cn"/>
<module-option name="roleAttributeIsDN" value="false"/>
...
Run Code Online (Sandbox Code Playgroud)
用户通过提供他的用户名(例如testA),密码(例如,无论如何)并从下拉菜单(例如UserGroupA)中选择UserGroup来登录网站.然后,扩展LdapLoginModule的自定义登录模块(de.test.LoginModule.class)通过从独立xml中获取前缀并在之后添加后缀来构建主体字符串来执行角色查找,
例如前缀:uid=
Build by LoginModule:testA,ou=UserGroupA
后缀:,ou=users,dc=test,dc=de
导致:uid=testA,ou=UserGroupA,ou=users,dc=test,dc=de
现在完美无缺.从角色ou=groups,dc=test,dc=de中检索在web.xml定义与根据角色和安全性约束被执行.
<security-constraint>
<display-name>Test-Service</display-name>
<web-resource-collection>
<web-resource-name>Test</web-resource-name>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>Only Project Processors may see this</description>
<role-name>Project Processor</role-name>
</auth-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)
现在,组织单元"ProjectControlCenter"已添加到LDAP树结构中,如下所示:
dc=test,dc=de
|-- ou=applications
| |-- ou=ProjectControlCenter
| | |-- …Run Code Online (Sandbox Code Playgroud) 我正在使用LDAP Active Directory并尝试列出所有用户.我有这个完美的过滤器:
(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
Run Code Online (Sandbox Code Playgroud)
不幸的是,我们还有AD中的计算机单元和其他设备与对象类"用户",所以使用以前的过滤器,我得到了所有用户,计算机,设备,房间等.
这些计算机和设备还有一个对象类"计算机",因此我需要使用objectclass!="computer"扩展过滤器,以便仅列出真实用户.到目前为止,我尝试过这些过滤器,它们都没有工作(没有数据返回!):
(&(objectclass=user)(!objectclass=computer)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(&(objectclass=user)(!(objectclass=computer))(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(!(objectclass=computer))(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(!objectclass=computer)(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
Run Code Online (Sandbox Code Playgroud)
(真实用户没有对象类"计算机").
我正在使用PHP ldap实现,所以使用ldap_search()方法.
"不等于"语法在此处找到:http://technet.microsoft.com/en-us/library/aa996205%28EXCHG.65%29.aspx或此处:http://msdn.microsoft.com/ EN-US /库/ aa746475%28V = vs.85%29.aspx
也许我可以尝试过滤DN中的用户(!CN = Computers),但首先我想过滤(!objectclass = computer),因为它对我来说更合乎逻辑.
objectclass!="computer"表达式的正确语法是什么?
在我的LDAP客户端程序中,有时我必须在搜索过滤器中包含DN值.但是这个DN经常变化,我必须在代码中更改此过滤器.
当我用谷歌搜索它时,我得到了类似的东西
假设您想从研发和人力资源中提取ObjectType = Person的所有用户,而不是来自Marketing和PM的任何用户.过滤器将是:
(&(objectClass=person)(|(ou:dn:=ResearchAndDevelopment)(ou:dn:=HumanResources)))
Run Code Online (Sandbox Code Playgroud)
任何人都可以更详细地解释这一点吗?
在'uid'属性上执行不区分大小写的匹配的语法是什么?如果属性定义很重要,那将如何改变?特别是我将ApacheDS用于我的LDAP存储.