在'uid'属性上执行不区分大小写的匹配的语法是什么?如果属性定义很重要,那将如何改变?特别是我将ApacheDS用于我的LDAP存储.
在Liferay的LDAP身份验证设置中使用时,b/n memberOf属性和groupMembership属性有何区别?
用户已成功导入.这些组也成功导入.
但是用户不会自动分配到组.当我将组变量从'groupMembership'更改为'memberOf'时,多个用户无法登录Liferay.
memberOf和groupMembership变量究竟是什么?

我在这里使用LDAP开箱即用,所以如果我以完全错误的方式做这件事,请告诉我.
我正在使用bhLDAPAuthPlugin插件使用Symfony 1.4
我正在验证用户使用LDAP登录.但是,我希望使用用户名查询LDAP表中的更多数据.所以我写这个搜索功能来根据用户名过滤结果:
function user_values($username) {
if (!$username) {
die ("Username is not there man!");
}
if (!$this->_conn) {
die ("No Connection.");
}
if (!$this->_base_dn) {
die ("No Base.");
}
$filter="samaccountname=".$username;
$attributes_ad = array("name");
$result = ldap_search($this->_conn, $this->_base_dn, $filter, $attributes_ad)
or die ("Error in search query");
$entries = ldap_get_entries($this->_conn, $result);
return($entries);
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
警告:ldap_search():搜索:错误的搜索过滤器/ ...搜索查询错误
当我运行查询.
前三个"if"是为了确保我获得了正确的搜索参数.实际搜索条件失败.
有什么建议?
UPDATE
用户名变量是jtesting
在将它放入搜索参数之前,我从函数中提取了$ username.它实际上是(jtesting).我将删除括号,看看是否可以解决问题.
背景
我正在创建一些SQL来协助安全审计; 这将从各种系统数据库和Active Directory获取安全信息,并将生成所有异常的列表(即帐户在一个系统中关闭但不在其他系统中关闭的情况.
现行守则
要获取属于安全组成员的用户列表,请运行以下SQL:
if not exists(select 1 from sys.servers where name = 'ADSI')
EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADSDSOObject', 'adsdatasource'
SELECT sAMAccountName, displayName, givenName, sn, isDeleted --, lastLogonTimestamp --, lastLogon (Could not convert the data value due to reasons other than sign mismatch or overflow.)
FROM OPENQUERY(ADSI
, 'SELECT sAMAccountName, displayName, givenName, sn, isDeleted
FROM ''LDAP://DC=myDomain,DC=myCompany,DC=com''
WHERE objectCategory = ''Person''
AND objectClass = ''user''
AND memberOf = ''CN=mySecurityGroup,OU=Security Groups,OU=UK,DC=myDomain,DC=myCompany,DC=com''
')
order by sAMAccountName
Run Code Online (Sandbox Code Playgroud)
问题/问题
我希望这段代码能够递归地工作; …
我使用以下代码成功查询用户的Active Directory:
$filter = (&(objectCategory=person)(samaccountname=someusername));
$fields = array("samaccountname","mail","manager","department","displayname","objectGUID");
$user = ldap_search($ldapconnection, $baseDn, $filter, $fields);
Run Code Online (Sandbox Code Playgroud)
结果数组为manager属性提供此值:
CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com
Run Code Online (Sandbox Code Playgroud)
这看起来像是一个尊贵的名字给我.但是当我试图查询经理的记录时,
$filter = (&(objectCategory=person)(dn='CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com'));
$manager = ldap_search($ldapconnection, $baseDn, $filter, $fields);
Run Code Online (Sandbox Code Playgroud)
查询失败 PHP Warning: ldap_search(): Search: Bad search filter
我尝试了很多种可能性,包括不同的引用,更多的括号,使用distinguishedName而不是dn等等.
我做错了什么,以及获得经理记录的正确方法是什么?
是否可以通过一行推荐从 LDAP 中删除所有条目?
我试过:
ldapdelete -r 'cn=*,dc=domain,dc=com' -w
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我没有更好的想法;/
我使用spring-ldap-core-2.3.1.RELEASE.jar了JDK 1.8与Tomcat 8.0通过访问AD信息LdapTemplate.属性如title,department&company不被返回的ldapTemplate.search(..,.,..)方法.
我正在使用以下代码行进行搜索: -
LdapQuery ldapQuery = LdapQueryBuilder.query()
.where("objectclass").is("user")
.and("objectcategory").is("person")
.and("cn").like(strWildcardText+"*");
ldapTemplate.search(ldapQuery, new ADUserAttributesMapper());
Run Code Online (Sandbox Code Playgroud)
以下是ADUserAttributesMapper班级: -
public class ADUserAttributesMapper implements AttributesMapper<ADUserBean> {
@Override
public ADUserBean mapFromAttributes(Attributes attributes) throws NamingException {
if(attributes==null) {
return null;
}
adUserBean.setName((attributes.get("name")!=null) ? attributes.get("name").get().toString() : null);
adUserBean.setCommonName((attributes.get("cn")!=null) ? attributes.get("cn").get().toString() : null);
adUserBean.setDisplayName((attributes.get("displayname")!=null) ? attributes.get("displayname").get().toString() : null);
adUserBean.setGivenName((attributes.get("givenname")!=null) ? attributes.get("givenname").get().toString() : null); // for FIRST NAME
adUserBean.setMiddleName((attributes.get("initials")!=null) ? …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spring LDAP(版本2.3.2)获取LDAP服务器上的所有条目.在我的代码中,我使用了PagedResultsDirContextProcessor对所有结果进行分页.这在支持的服务器上工作正常PagedResultsControl.
但是,我现在需要连接到不支持的LDAP服务器PagedResultsControl.如何在不使用的情况下获取所有条目PagedResultsControl?
我的应用程序每天进行一次LDAP查询,并获取给定容器中的所有用户和组.一旦获取,我的应用程序将遍历组的用户列表,仅将新的用户添加到我的应用程序的数据库(它只添加用户名).
如果有50,000个用户,我的应用程序服务器每天忙于执行此操作45分钟.
有没有办法在我的LDAP查询中指定我需要"delta",以便我只检索自上次LDAP查询以来添加/修改/删除的用户?
我想针对LDAP目录查询员工在部门和组中的分布情况......
类似于:" 给我一个组的所有成员的部门名称 ",然后使用R进行频率分析,但我找不到任何关于如何使用R连接和运行LDAP查询的示例.
RCurl似乎有某种支持(http://cran.r-project.org/web/packages/RCurl/index.html):
此外,底层实现是健壮和广泛的,支持FTP/FTPS/TFTP(上传和下载),SSL/HTTPS,telnet,dict,ldap,还支持cookie,重定向,身份验证等.
但我不是R的专家,并且无法找到使用RCurl(或任何其他R库)的单个示例来执行此操作.
现在我正在使用这样的CURL来获取一个组的成员:
curl "ldap://ldap.replaceme.com/o=replaceme.com?memberuid?sub?(cn=group-name)"
Run Code Online (Sandbox Code Playgroud)
这里的任何人都知道如何在RC中使用RCurl做同样的事情吗?
ldap-query ×10
ldap ×8
jndi ×2
php ×2
spring-ldap ×2
adsi ×1
apacheds ×1
java ×1
liferay ×1
liferay-6 ×1
openldap ×1
r ×1
rcurl ×1
spring-mvc ×1
statistics ×1
symfony-1.4 ×1
t-sql ×1