7

我正在尝试在 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 条目的方式有什么问题吗?

4

3 回答 3

13

对于嵌入式 Apache Directory Server 之上的集成测试用例,我添加了在 Microsoft Active Directory 服务器中定义的memberOfsAMAccountName属性。

#########################################################
# 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
于 2015-12-28T23:35:48.873 回答
4

ApacheDS 团队意识到对memberOf 虚拟属性的需求。他们提到它将成为2.1.0 版本的一部分:

2013 年 5 月 20 日下午 5:53,Danielsen,Jay a écrit:

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

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

您可以创建 JIRA 来请求此类功能。

谢谢 !

-- 问候,Cordialement,Emmanuel Lécharny www.iktek.com

这是 JIRA 请求

于 2013-07-20T17:18:51.940 回答
1

You may need to add the schema that contains 'memberOf' into the ApacheDS configuration.

于 2012-06-24T08:21:55.960 回答