如何将属性添加到LDAP架构

时间:2018-01-09 15:19:57

标签: active-directory ldap unboundid-ldap-sdk

我正在尝试将名为sAMAccountName的新属性添加到现有的LDAP架构定义中,IM-LDAP使用UnboundID LDAP SDK读取该定义。

我已经将一个attributeTypes条目和sAMAccountName添加到matchingRuleUse。

attributeTypes: ( 2.5.18.11 NAME 'sAMAccountName' DESC 'MS Sec Principal User' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )

matchingRuleUse: ( 2.5.13.1 NAME 'distinguishedNameMatch' APPLIES ( creatorsName $ ... $ sAMAccountName ) )

对于每个先前存在的属性,对com.unboundid.ldap.sdk.schema.Schema.getAttributeType("attrName")的调用将返回属性类型。但不是因为我的新属性。

我错过了什么?

在@jwilleke评论之后编辑10/11/18:

我想要实现的是使用IM-LDAP模拟Active Directory服务器的非常有限的功能。

在实际的AD生产环境中,有条目表示具有objectClass的用户:person,organizationalPerson,simulatedMicrosoftSecurityPrincipal。

在AD中,这些条目包含sAMAccountName和memberof属性。 但它们不在IM-LDAP附带的架构中。

身份验证Java代码首先在

上执行搜索
(&(objectClass=user)(sAMAccountName=userAccountName)

然后,如果找到了一个条目,它会检查多值属性成员中是否存在给定的安全组名称。

从生产AD服务器导出的条目如下所示:

dn: cn=Smith\,John,ou=User Accounts,dc=ACME,dc=CORE,dc=INT
changetype: add
objectClass: person
objectClass: organizationalPerson
objectClass: simulatedMicrosoftSecurityPrincipal
cn: Smith,John
sn: JohnS
sAMAccountName: JohnS
userPassword: johnspasswd
memberof: ou=Service Accounts,dc=ACME,dc=CORE,dc=INT

通过添加以下内容,将两个新属性添加到架构中的objectClass simulatedMicrosoftSecurityPrincipal:

objectClasses: ( 2.5.6.24 NAME 'simulatedMicrosoftSecurityPrincipal' DESC 'MSSecurityPrincipal' SUP top AUXILIARY MUST sAMAccountName MAY memberof )

但是当我尝试将这些条目导入LDAP模拟时,我收到一个错误,告诉我没有定义sAMAccountName和memberof。

编辑2

attributeTypes: ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )

Wokrked添加sAMAccountName,但仍试图找出如何添加memeberOf

Here 是完整的.ldif文件。

1 个答案:

答案 0 :(得分:1)

这最终对我有用

objectClasses: ( 1.2.840.113556.1.5.6 NAME 'microsoftSecurityPrincipal' DESC 'MS SecurityPrincipal' SUP top AUXILIARY MUST ( sAMAccountName $ memberOf ) )

attributeTypes: ( 1.2.840.113556.1.4.221 NAME 'sAMAccountName' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )
attributeTypes: ( 1.2.840.113556.1.2.102 NAME 'memberOf' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )