【问题标题】:Do we have any class schema available for OpenLDAP and ApacheDS for each object class?对于每个对象类,我们是否有任何可用于 OpenLDAP 和 ApacheDS 的类模式?
【发布时间】:2020-04-21 22:57:06
【问题描述】:
我们可以在活动目录中找到可用于每个对象类的classSchema。根据 ApacheDS 和 OpenLDAP 的文档,我们找不到任何类模式来查找类标识符、可能的属性、可能的父类和超类以及辅助类。
我们有可用于 OpenLDAP 和 ApacheDS 的类模式吗?如果没有,有没有办法找到 OpenLDAP 和 ApacheDS 的每个对象类的系统属性?
【问题讨论】:
标签:
active-directory
ldap
openldap
apacheds
【解决方案1】:
对于大多数 LDAP 服务器实现,rootDSE 都有一个属性值
在RFC 4512 section 4.4中定义,
发现持有子模式的子模式(子)条目的DN
控制特定条目,客户端读取该条目的
'subschemaSubentry' 操作属性。
通常这类似于 subschemaSubentry: cn=schema。
所以一个 ldapsearch 类似于:
ldapsearch -h yourLDAPDNS -b "cn=schema" -s base -D cn=admin,ou=...,dc=example,dc=com -w secretpassword "(objectclass=*)" > schema.ldif
应将架构定义放入 schema.ldif 文件中。
一些 ldapserver 实现对需要指定返回属性的 ldapsearch 使用稍微不同的格式:
ldapsearch -h yourLDAPDNS -b "cn=schema" -s base -D cn=admin,ou=...,dc=example,dc=com -w secretpassword "(objectclass=*)" attributeTypes objectClasses
【解决方案2】:
ObjectClass 是一个 LDAP Schema 元素 AttributeType,它们在 RFC 4512 中定义。
条目中的完整对象类集定义了
需要或允许存在的 AttributeTypes。这
STRUCTURAL 类也可用于将条目与 NameForm 链接,
dITContentRules 和/或 DITStructureRules。
每个 LDAP 条目必须只有一个 STRUCTURAL 对象类,并且它可能有零个或多个 AUXILIARY 类。
您可以在ldapwiki.com 浏览其中的大部分(如提到的 AD 的 classSchema)