我正在尝试在Apache Directory中模拟Active Directory的memberOf属性。我已将memberOf的以下条目添加到我的LDIF文件中:
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条目的方式有什么问题吗?
答案 0 :(得分:9)
对于嵌入式Apache Directory Server上的集成测试用例,我添加了Microsoft Active Directory服务器中定义的 memberOf 和 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: EmployeeABC@megacorp.com
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
答案 1 :(得分:4)
ApacheDS团队了解memberOf
虚拟属性的需求。他们提到它将成为2.1.0 release:
Le 5/20/13 5:53 PM,Danielsen,Jayaécrit:
我从2013年1月的档案中看到,还不支持memberOf虚拟属性。 在即将发布的版本中是否有任何计划或工作正在支持memberOf? Morst肯定在2.1.0。
我们目前正在忙着清理剩余的150个问题 2.0.0-RC1发布,所以我认为这是我们在未来6个月内可以拥有的。
您可以创建JIRA来请求此类功能。
谢谢!
- 问候,Cordialement,EmmanuelLécharnywww.iktek.com
here是JIRA请求。
答案 2 :(得分:1)
您可能需要将包含“memberOf”的架构添加到ApacheDS配置中。
答案 3 :(得分:-3)
不是您的问题的答案,实际上不是一个好的做法,但您可以使用其他现有属性来模拟此问题。
我们仅使用ApacheDS进行测试,因此可能没问题。我们使用了“标题”属性,但可能还有另一个可以无风险地使用。