2012-06-24 107 views
6

我试图模拟Apache目录中的Active Directory的memberOf属性。我已经添加了的memberOf以下条目添加到我的LDIF文件:将'memberOf'属性添加到ApacheDS

dn: m-oid=1.3.6.1.4.1.18060.0.4.3.2.1,ou=attributeTypes,cn=other,ou=schema 
m-usage: USER_APPLICATIONS 
m-equality: distinguishedNameMatch 
objectClass: metaAttributeType 
objectClass: metaTop 
objectClass: top 
m-name: memberOf 
m-oid: 1.3.6.1.4.1.18060.0.4.3.2.1 
m-obsolete: FALSE 
m-noUserModification: FALSE 
m-syntax: 1.3.6.1.4.1.1466.115.121.1.27 

当我开始ApacheDS中会记录以下警告:

WARN [ContainerBackgroundProcessor[StandardEngine[Catalina]]] entry.ServerStringValue - Cannot normalize the value :Encountered name based id of memberOf which was not found in the OID registry 

这会导致问题以后,因为我的应用程序试图用户的memberOf属性作为搜索过滤器。

我指定LDIF条目的方式有什么问题吗?

回答

1

您可能需要将包含'memberOf'的模式添加到ApacheDS配置中。

3

ApacheDS团队知道对虚拟属性的memberOf的渴望。他们提到,这将是2.1.0 release的一部分:

乐13年5月20日17:53,丹尼尔森,周杰伦一écrit:

我从2013年1月档案馆看到的memberOf虚拟属性尚不支持。 在即将发布的版本中是否有任何计划或正在进行的工作来支持memberOf?当然在2.1.0中。

我们目前正忙于一个 2.0.0-RC1发布之前清理剩余的150层的问题,所以我认为这是我们可以在未来6个月。

您可以创建一个JIRA来请求这样的功能。

谢谢!

- 问候,Cordialement,灵光Lécharnywww.iktek.com

而且here是JIRA请求。

+2

应该碰撞请求 – codenamezero

+0

@codenamezero是的,当然。大约4年过去了,ApacheDS中仍然没有'memberOf'属性... – Lion

-2

不是你的问题的答案,也不是一个好的做法,但你可以使用另一个现有的属性来模拟这个。

我们只使用ApacheDS进行测试,所以它可能没问题。我们使用“标题”属性,但可能会有另一个您可以使用而没有风险。

8

对于我的集成测试用例嵌入式Apache目录服务器之上我已经添加了两个的memberOf和Microsoft Active Directory服务器定义sAMAccountName赋属性。

######################################################### 
# MICROSOFT SCHEMA for sAMAccountName and memberOf 
# these two attributes are not defined in Apache Directory Server 
######################################################### 

dn: cn=microsoft, ou=schema 
objectclass: metaSchema 
objectclass: top 
cn: microsoft 

dn: ou=attributetypes, cn=microsoft, ou=schema 
objectclass: organizationalUnit 
objectclass: top 
ou: attributetypes 

dn: m-oid=1.2.840.113556.1.4.221, ou=attributetypes, cn=microsoft, ou=schema 
objectclass: metaAttributeType 
objectclass: metaTop 
objectclass: top 
m-oid: 1.2.840.113556.1.4.221 
m-name: sAMAccountName 
m-equality: caseIgnoreMatch 
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15 
m-singleValue: TRUE 

dn: m-oid=1.2.840.113556.1.4.222, ou=attributetypes, cn=microsoft, ou=schema 
objectclass: metaAttributeType 
objectclass: metaTop 
objectclass: top 
m-oid: 1.2.840.113556.1.4.222 
m-name: memberOf 
m-equality: caseIgnoreMatch 
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15 
m-singleValue: FALSE 

dn: ou=objectclasses, cn=microsoft, ou=schema 
objectclass: organizationalUnit 
objectclass: top 
ou: objectClasses 

dn: m-oid=1.2.840.113556.1.5.6, ou=objectclasses, cn=microsoft, ou=schema 
objectclass: metaObjectClass 
objectclass: metaTop 
objectclass: top 
m-oid: 1.2.840.113556.1.5.6 
m-name: simulatedMicrosoftSecurityPrincipal 
m-supObjectClass: top 
m-typeObjectClass: AUXILIARY 
m-must: sAMAccountName 
m-may: memberOf 

####################################################### 
# Megacorp employees 
####################################################### 

dn: cn=EmployeeABC,ou=nl_users,DC=corp,DC=megacorp,DC=COM 
objectClass: top 
objectClass: person 
objectClass: organizationalPerson 
objectClass: inetOrgPerson 
objectclass: simulatedMicrosoftSecurityPrincipal 
cn: EmployeeABC 
sn: EmployeeABC 
givenName: EmployeeABC 
mail: [email protected] 
MEMBEROF: CN=just-users,OU=mc_groups,DC=corp,DC=megacorp,DC=com 
MEMBEROF: CN=best-users,OU=mc_groups,DC=corp,DC=megacorp,DC=com 
SAMACCOUNTNAME: employeeabc 
+0

我在Apache Directory Studio中将结构作为LDIF导入。但是当我理解你的代码的时候,我没有一个名为'simulatedMicrosoftSecurityPrincipal'的类型,它应该在那里。另外inetOrgPerson没有属性'memberOf'。 – Lion

+0

您是否收到任何错误或警告? –

+0

我的错,作为一名初学者,我不知道我必须重新启动服务器。现在它可以工作。我还有其他问题,但我认为他们太长了以便发表评论,所以我将创建一个新的问题。 – Lion