You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

Introduction

This page is used to describe the MetaSchema using OpenLdap schema syntx, so that it can be loaded into the ou=schema special partition

The MetaSchema schema

This part expose the elements we have to declare to be able to store the schema using a standard schema

Meta top level elements

MetaTop OjectClass

This Meta object is used as the top-level class which will be the mother of all MetaObjects

ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.1
    NAME MetaTop
    DESC 'Top level ObjectClass of all Meta objects'
    SUP top
    ABSTRACT
    MUST ( m-oid $ m-description )
)

MetaTop AttributeTypes

We also need to describe all the meta attributeTypes we will use :

name

ldif form

m-oid

dn: m-name=m-oid,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid:  1.3.6.1.4.1.18060.0.4.0.2.1
m-name: m-oid
m-description: The Object Identifier
m-equality: OidMatch
m-syntax: NumericOid
m-singleValue: true 

m-name

dn: m-name=m-name,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.2
m-name: m-name
m-description: The Object name
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768}

m-description

dn: m-name=m-description,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.3
m-name: m-description
m-description: Meta descriptive information
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{1024}
m-single-value: true 

m-obsolete

dn: m-name=m-obsolete,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.4
m-name: m-obsolete
m-description: The type is obsolete
m-equality: BooleanMatch
m-syntax: Boolean
m-singleValue: true 

m-supObjectClass

dn: m-name=m-supObjectClass,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.5
m-name: m-sup-objectclass
m-description: The list of superiors
m-equality: NameOrOidMatch
m-syntax: Oid

m-must

dn: m-name=m-must,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.6
m-name: m-must
m-description: The list of mandatory ATs
m-equality: NameOrOidMatch
m-syntax: Oid

m-may

dn: m-name=m-may,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.7
m-name: m-may
m-description: The list of authorized ATs
m-equality: NameOrOidMatch
m-syntax: Oid

m-typeObjectClass

dn: m-name=m-typeObjectClass,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.8
m-name: m-type-object-class
m-description: The ObjectClass type
m-equality: TypeObjectClassMatch
m-syntax: TypeObjectClass
m-singleValue: true 

m-extensionObjectClass

dn: m-name=m-extensionObjectClass,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.9
m-name: m-extension-object-class
m-description: An objectclass extension
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768} 

m-supAttributeType

dn: m-name=m-supAttributeType,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.10
m-name: m-sup-attribute-type
m-description: The list of superior
m-equality: nameOrOidMatch
m-syntax: Oid
m-singleValue: true 

m-equality

dn: m-name=m-equality,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.11
m-name: m-equality
m-description: Equality matching rule
m-equality: nameOrOidMatch
m-syntax: Oid
m-singleValue: true 

m-ordering

dn: m-name=m-ordering,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.12
m-name: m-ordering
m-description: Ordering matching rule
m-equality: nameOrOidMatch
m-syntax: Oid
m-singleValue: true 

m-substr

dn: m-name=m-substr,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.13
m-name: m-substr
m-description: Substring matching rule
m-equality: nameOrOidMatch
m-syntax: Oid
m-singleValue: true 

m-attributeTypeSyntax

dn: m-name=m-attributeTypeSyntax,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.14
m-name: m-attributeTypeSyntax
m-description: The attributeType syntax
m-equality: OidLenMatch
m-syntax: OidLen
m-singleValue: true 

m-matchingRuleSyntax

dn: m-name=m-matchingRuleSyntax,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.14
m-name: m-matchingRuleSyntax
m-description: The matchingRule attribute syntax
m-equality: NumericOidMatch
m-syntax: NumericOid
m-singleValue: true

m-singleValue

dn: m-name=m-singleValue,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.15
m-name: m-singleValue
m-description: The attribute is single valued
m-equality: BooleanMatch
m-syntax: Boolean
m-singleValue: true 

m-collective

dn: m-name=m-collective,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.16
m-name: m-collective
m-description: The attribute is collective
m-equality: BooleanMatch
m-syntax: Boolean
m-singleValue: true 

m-noUserModification

dn: m-name=m-noUserModification,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.17
m-name: m-noUserModification
m-description: The attribute is protected
m-equality: BooleanMatch
m-syntax: Boolean
m-singleValue: true 

m-usage

dn: m-name=m-usage,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.18
m-name: m-usage
m-description: Type of operation
m-equality: UsageMatch
m-syntax: AttributeTypeUsage
m-single-value: true 

m-extensionAttributeType

dn: name=m-extensionAttributeType,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.19
m-name: m-extensionAttributeType
m-description: Extension for attributeType
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768}

m-ruleId

dn: name=mruleId,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.20
m-name: m-ruleId
m-description: The rule ID
m-equality: ruleIDMatch
m-syntax: Number

m-form

dn: name=m-form,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.21
m-name: m-form
m-description: The name form associated with this DITStructure rule
m-equality: caseIgnoreMatch
m-syntax: Oid

m-supDITStructureRule

dn: name=m-supDITStructureRule,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.22
m-name: m-supDITStructureRule
m-description: The list of superiors
m-equality: Match
m-syntax: NumericString 

m-extensionDITStructureRule

dn: name=m-extensionDITStructureRule,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.23
m-name: m-extensionDITStructureRule
m-description: Extensions for DITStructureRule
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768}

m-oc

dn: name=m-oc,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.24
m-name: m-oc
m-description: The structural ObjectClass
m-equality: numericOidMatch
m-syntax: Oid
m-singleValue: true

m-extensionNameForm

dn: name=m-extensionNameForm,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.25
m-name: m-extensionNameForm
m-description: Extensions for NameForm
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768}

m-aux

dn: name=m-aux,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.26
m-name: m-aux
m-description: List of auxiliary ObjectClasses
m-equality: numericOidMatch
m-syntax: Oid

m-not

dn: name=m-not,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.27
m-name: m-not
m-description: List of precluded attribute types
m-equality: numericOidMatch
m-syntax: Oid

m-extensionDITContentRule

dn: name=m-extensionDITContentRule,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.28
m-name: m-extensionDITContentRule
m-description: Extensions for DITContentRule
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768}

m-applies

dn: name=m-applies,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.29
m-name: m-applies
m-description: List of attribute types the matching rule applies to
m-equality: numericOidMatch
m-syntax: Oid

m-extensionMatchingRuleUse

dn: name=m-extensionMatchingRuleUse,ou=meta,ou=schema
objectclass: meta-attributeType
objectclass: meta-top
objectclass: top
m-oid: 1.3.6.1.4.1.18060.0.4.0.2.30
m-name: m-extensionMatchingRuleUse
m-description: Extensions for DITContentRule
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.15{32768}

MetaTop ObjectClasses instances

MetaObjectClass

The following text is the description of the MetaObjectClass :

ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.2
    NAME MetaObjectClass
    DESC 'Meta definition of the ObjectClass object'
    SUP MetaTop
    STRUCTURAL
    MUST m-name
    MAY ( m-sup-object-class $ m-must $ m-may $ m-type-object-class $ m-obsolete $ m-extension )
)

MetaAttributeType

The following text is the description of the MetaAttributeType :

ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.3
    NAME MetaAttributeType
    DESC 'Meta definition of the AttributeType object'
    SUP MetaTop
    STRUCTURAL
    MUST ( m-name $ m-syntax )
    MAY ( m-sup-attribute-type $ m-type-attribute-type $ m-obsolete $ m-equality $ m-ordering $ m-substr $ m-single-value $ m-collective $ m-no-user-modification $ m-usage $ m-extension )
)

MetaSyntax

The following text is the description of the MetaSyntax :

ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.4
    NAME MetaSyntax
    DESC 'Meta definition of the Syntax object'
    SUP MetaTop
    STRUCTURAL
)

MetaMatchingRule

The following text is the description of the MatchingRule :

ObjectClass ( 1.3.6.1.4.1.18060.0.4.0.3.5
    NAME MetaMatchingRule
    DESC 'Meta definition of the MatchingRule object'
    SUP MetaTop
    STRUCTURAL
    MUST m-syntax
    MAY ( m-obsolete $ m-extensions )
)

MetaDITStructureRule

The following text is the description of the DITStructureRule :

ObjectClass (  1.3.6.1.4.1.18060.0.4.0.3.6
    NAME MetaDITStructureRule
    DESC 'Meta definition of the DITStructureRule object'
    SUP top
    STRUCTURAL
    MUST ( m-ruleId $ m-form )
    MAY ( m-obsolete $ m-supDITStructureRule $ m-extensionDITStructureRule )
)

MetaNameForm

The following text is the description of the NameForm :

ObjectClass (  1.3.6.1.4.1.18060.0.4.0.3.7
    NAME MetaNameForm
    DESC 'Meta definition of the NameForm object'
    SUP top
    STRUCTURAL
    MUST ( m-oc $ m-must )
    MAY ( m-obsolete $ m-may $ m-extensionNameForm )
)

MetaMatchingRuleUse

The following text is the description of the MatchingRuleUse :

ObjectClass (  1.3.6.1.4.1.18060.0.4.0.3.8
    NAME MetaMatchingRuleUse
    DESC 'Meta definition of the MatchingRuleUse object'
    SUP top
    STRUCTURAL
    MUST ( m-applies )
    MAY ( m-obsolete $ m-extensionMatchingRuleUse )
)

MetaDITContentRule

The following text is the description of the DITContentRule :

ObjectClass (  1.3.6.1.4.1.18060.0.4.0.3.9
    NAME MetaDITContentRule
    DESC 'Meta definition of the DITContentRule object'
    SUP top
    STRUCTURAL
    MAY ( m-obsolete $ m-aux $ m-must $ m-may $ m-not $ m-extensionDITContentRule )
)

Application to Core Schema

We will express the Core schema using the previously defined Ldap objects :

Country

The country ObjectClass in OpenLdap format :

objectclass ( 2.5.6.2 NAME 'country'
    DESC 'RFC2256: a country'
    SUP top
    STRUCTURAL
    MUST c
    MAY ( searchGuide $ description )
)

The Country ObjectClass using the MetaObjectClass definition will be inserted as an entry into the ou=schema partition. As it is declared in core, we use a DN which describe this relationship with the original filer :

dn: name=country, dc=core, ou=schema
objectclass: MetaObjectClass
objectclass: MetaTop
objectClass: top
m-oid: 2.5.6.2
m-name: country
m-desc: RFC2256: a country
m-sup-objectClass: top
m-type-objectClass: STRUCTURAL
m-must: c
m-may: searchGuide
m-may: description
  • No labels