1

我使用 ApacheDS 服务器作为 LDAP 服务器。我创建了一个自定义属性以在我定义的 LDAP 结构中使用。我创建了一个模式,并在该模式内定义了一个 ObjectClass 和一个名为 dateOfBirth 的属性。我导出了 Schema 并将其导入到 ApacheDS 的 DIT 中。架构已导入,可以查看 dateOfBirth 属性。

但是,当我尝试添加它时,我收到一条警告:

Warning according to the schema attribute dateOfBirth is not allowed.

Do you still want to add the new value?

dateOfBirth 用于存储有关 Person 的信息。LDAP 中的 Person 对象类称为 inetOrgPerson ObjectClass。添加 dateOfBirth 以使用它的最佳方法是什么?

4

2 回答 2

3

您可以使用 Apache directory studio 在 Apache DS 中添加自定义对象和属性(不应存在)。

步骤是

  1. 打开 Apache 目录工作室。
  2. 转到模式编辑器透视图。
  3. 右键单击项目窗格并创建新的模式项目。
  4. 选择离线/在线并给出项目名称。
  5. 打开连接
  6. 右键单击模式窗格并创建具有唯一名称的新模式(例如 test123)。
  7. 在架构下可以为这些属性创建新的属性和对象。(查看现有对象以供参考)
  8. 完成所有操作后,可以导出为 .ldif 文件(比如说 test.ldif)
  9. 现在转到LDAP Browser透视图。
  10. ou=schema对象上右键,然后单击 import as LDIF。
  11. 导入从模式项目中导出的 LDIF 文件(步骤 8)。
  12. 成功完成并刷新 ou=schema 对象即可看到添加的对象。
于 2013-10-25T15:30:51.127 回答
2

无需定义dateOfBirth属性。RFC2985naturalPerson中描述的辅助 objectClass已经允许使用. 将objectClass 添加到您的条目中,然后添加符合.generalizedTimeSyntaxnaturalPersondateOfBirthgeneralizedTimeSyntax

dn: cn=myPerson,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
objectClass: naturalPerson
dateOfBirth: 20121115121912.810Z

等等。

更新:来自 RC2985 的示例 objectClass 定义。

dn: cn=schema
objectClass: top
objectClass: ldapSubentry
objectClass: subSchema
objectClasses: ( 1.2.840.113549.1.9.24.2 NAME 'naturalPerson'
  SUP top
  AUXILIARY
  MAY ( emailAddress $
    unstructuredName $
    unstructuredAddress $
    dateOfBirth $
    placeOfBirth $
    gender $
    countryOfCitizenship $
    countryOfResidence $
    pseudonym $
    serialNumber )
  X-ORIGIN 'RFC 2985' ) 
于 2012-11-14T17:20:37.380 回答