如何在LDAP3中创建新的objectClass?

时间:2016-10-04 20:36:27

标签: ldap openldap spring-ldap ldap-query ldap3

我正在尝试将条目添加到我创建的“策略”容器中:

ldap_connection.add('OU=Policy, DC=BERT, DC=LOCAL', 'organizationalUnit'))

并且找不到有关如何创建新的objectClass以容纳这些条目的任何好文档。如果我尝试使用已存在的objectClass添加条目,如下所示:

ldap_connection.add('CN=policy1, OU=Policy, DC=BERT, DC=LOCAL',attributes={'objectClass': 'person'})

有效。但是我想做这样的事情:

ldap_connection.add('CN=policy1, OU=Policy, DC=BERT, DC=LOCAL',attributes={'objectClass': 'policy'})

我尝试过使用MODIFY_ADD:

ldap_connection.modify('OU=Policy1, DC=BERT, DC=LOCAL',{'organizationalUnit': (MODIFY_ADD, ['policy'])})

但是这会返回“属性中的无效属性类型”错误,无论我为“organizationalUnit”切换出什么值,它似乎都会持续存在。我在互联网上搜索了一些有关此问题的帮助,但LDAP3上的文档非常稀少。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:3)

在OpenLDAP中,您无法通过ldap请求创建新的对象类 - 您必须将它们添加到服务器配置中。

有关架构更改的文档,请参阅http://www.openldap.org/doc/admin24/schema.html以获取OpenLDAP 2.4的文档。

创建自己的objectClass需要仔细规划:

  • 它应该是一个抽象的,一个STRUCTURAL还是一个​​AUXILIARY objectClass?
  • 您的objectClass提供哪些属性?
  • 需要哪些属性?