ldapopendj

OpenDJ create new schema elements object classes and attributes types on cmd line


There’re any tutorial to explain how can i create ‘object classes’ and ‘attributes types’ on DS 6.5 from command line?

I’d like to import by command line a ldif file which have the following structure:

dn: cn=schema
objectClass: subschema
objectClass: ldapSubentry
objectClass: top
cn: schema
objectClasses: ( test-user-oid NAME 'test-user' SUP inetOrgPerson STRUCTURAL MUST (test-status $ description) MAY ( test-lang $ ds-pwp-password-policy-dn $ test-modificationUserId  ) )
modifyTimestamp: 20130411155332Z
attributeTypes: ( test-visible-startDate-oid NAME 'test-visible-startDate' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE userApplications )
ds-sync-state: 00000131f62eceea0a4000000001
ds-sync-generation-id: 8408
modifiersName: cn=Directory Manager,cn=Root DNs,cn=config

On openLDAP we a ldap file like this:

attributetype ( 1.3.6.1.4.1.18060.0.4.3.2.1 
        NAME 'test-user' 
        DESC 'test'
        EQUALITY integerMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 
        SINGLE-VALUE 
 )

objectclass ( 1.3.6.1.4.1.18060.0.4.3.3.1 
        NAME 'ship'
        DESC 'test' 
        SUP top 
        STRUCTURAL 
        MUST cn 
        MAY ( test-user $ description ) 
 )

and apply the slaptest cmd.Is it similar on OpenDJ?


Solution

  • Extending schema over LDAP with OpenDJ and ForgeRock Directory Services is fully documented on https://backstage.forgerock.com/docs/ds. It is slightly different from openLDAP syntax and method: it’s a modify operation of the cn=schema suffix adding values of the attributeTypes and objectClasses attributes.

    Here’s the above example ready to be added over LDAP to OpenDJ, ForgeRock Directory Services, SunDSEE...

    dn: cn=schema
    changetype: modify
    add: attributeTypes
    attributeTypes: ( test-visible-startDate-oid NAME 'test-visible-startDate' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE userApplications )
    -
    add: objectClasses
    objectClasses: ( test-user-oid NAME 'test-user' SUP inetOrgPerson STRUCTURAL MUST (test-status $ description) MAY ( test-lang $ ds-pwp-password-policy-dn $ test-modificationUserId  ) )
    -
    

    Note that you will need to add all attributeTypes used in the test-user objectclass. And you should not add the ds-pwp-password-policy-dn which is an operational attribute and can be part of any entry.