openldap - 无法从架构文件创建 ldif 文件

openldap - cannot create ldif file from schema file

我正在尝试将自己的模式添加到 OpenLDAP,但是当我使用 slaptest 转换 .schema -> .ldif 时,目标目录中除了一些默认模式外什么都没有。我的没有被创建。我将路径添加到 slapd.conf。我正在通过 Apache Directory Studio 创建 .schema 文件:

attributetype ( 2.0.0.0.1 
    NAME 'objectName'
    DESC ''
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
attributetype ( 2.0.0.0.2 
    NAME 'editableObject'
    DESC ''
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    USAGE userApplications )
attributetype ( 2.0.0.0.3 
    NAME 'mailDesc'
    DESC ''
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    USAGE userApplications )
attributetype ( 2.0.0.0.4 
    NAME 'visibleObject'
    DESC ''
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    USAGE userApplications )
attributetype ( 2.0.0.0.5 
    NAME 'objectDesc'
    DESC ''
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
    USAGE userApplications )
objectclass ( 2.0.0.1.1 
    NAME 'myObject'
    DESC ''
    SUP top
    AUXILIARY
    MAY ( objectName $ objectDesc ) )
objectclass ( 2.0.0.1.2 
    NAME 'myRole'
    DESC ''
    AUXILIARY
    MAY ( editableObject $ visibleObject ) )
objectclass ( 2.0.0.1.3 
    NAME 'myUser'
    DESC ''
    AUXILIARY
    MAY ( editableObject $ visibleObject $ mailDesc ) )

您知道为什么没有 .ldif 文件吗?

I'm trying to add my own schema to OpenLDAP, but when I convert .schema -> .ldif using slaptest, there's nothing in the destination directory except for some default schemas.

slaptest 完全按照您的描述进行操作:将模式转换为 ldif。您从未将 ldif 添加到目录中。 (无论如何slaptest都可以把ldif添加到目录中,如命令名所暗示的,是做测试,不是修改目录)

Mine is not being created.

LDIF已经创建,只是没有添加到目录

I added the path to slapd.conf

多年来没有 slapd.conf 用于 OpenLDAP 配置。你必须使用 cn=config 分支来这样做

I'm creating the .schema file via Apache Directory Studio

如上所述,.schema 文件被旧的 OpenLDAP 配置系统使用。现在你必须使用 cn=config 分支

更多信息:

  • 模式存储在 cn=config 分支内:cn=schema,cn=config
  • 要添加架构,您必须添加如下条目: cn={x}myschema,cn=schema,cn=config 其中包含一个 ldif,例如:
    dn: cn={4}myschema,cn=schema,cn=config
    objectClass: olcSchemaConfig
    cn: {4}myschema
    olcAttributeTypes: {0}( 0.0.0.0.0.1.1 NAME 'code' DESC 'Some code identificati
     on' SUP description )
    olcAttributeTypes: {1}( 0.0.0.0.0.1.2 NAME ( 'latitude' 'lat' ) DESC 'Latitude
     ' SUP description )
    olcObjectClasses: {5}( 0.0.0.0.0.2.6 NAME 'groupCustom' DESC 'A group of nam
     es (DNs) with optionnal member attribute' SUP top STRUCTURAL MUST ( cn ) MAY 
     ( member $ seeAlso $ owner $ description ) )
    olcObjectClasses: {6}( 0.0.0.0.0.2.7 NAME 'groupDynamic' DESC 'A DYNAMIC g
     roup of names (DNs) with optionnal member attribute' SUP top STRUCTURAL MUST 
     ( cn $ dynListURL ) MAY ( member $ seeAlso $ owner $ description  ) )

注意:此示例是 slapcat 的结果,绝不是 LDIF 描述要执行的 ldapadd 操作以将架构添加到目录。但是如果您不想编写 LDIF 以用于 ldapadd 操作

,您仍然可以使用 Apache Directory Studio 导入它

有关更多信息,请考虑阅读 http://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-schemas