Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

We want to store the schema into ADS as any other entries. We have to define the minimum set of ObjectClasses an AttributeTypes needed to be able to bootstrap the schema.

All the ObjectClass will depend on the MetaObjectClass element, which is hard wired in the server.
All the AttributeTypes will depend on the MetaAttributeType element, which is hard wired in the server.

Note

The new Syntaxes will use the OIDs

Wiki Markup
h1. Introduction We want to store the schema into ADS as any other entries. We have to define the minimum set of ObjectClasses an AttributeTypes needed to be able to bootstrap the schema. All the ObjectClass will depend on the *MetaObjectClass* element, which is hard wired in the server. All the AttributeTypes will depend on the *MetaAttributeType* element, which is hard wired in the server. {note} The new Syntaxes will use the OIDs

1.3.6.1.4.1.18060.1.1.0.1.N


The

new

MatchingRules

will

use

the

OIDs

1.3.6.1.4.1.18060.1.1.0.2.N


The

new

AttributesType

will

use

the

OIDs

1.3.6.1.4.1.18060.1.1.0.3.N


The

new

ObjectClasses

will

use

the

OIDs

1.3.6.1.4.1.18060.1.1.0.4.N

We

will

use OIDs 

use OIDs  1.3.6.1.4.1.18060.1.1.0.0.N

for

Meta

objects.

Here,

the

prefix

1.3.6.1.4.1.18060

is

the

one

declared

to

IANA

to

represent

the

Apache

Foundation

and

the

next

1.1

values

are

used

specifically

for

Apache

Directory.

{note} h1. Elements of the

Elements of the Meta-Schema

...

The

...

MetaSchema

...

will

...

be

...

presented

...

in

...

MetaSchema

...

schema

...

,

...

but

...

before,

...

we

...

must

...

define

...

some

...

elements

...

in

...

this

...

page.

Syntaxes

We must define the minimum set of syntaxes.

Those are following the following grammar (from RFC 4512 ) :

Code Block


h2. Syntaxes

We must define the minimum set of syntaxes.

Those are following the following grammar (from [RFC 4512] ) :
{code}
<SyntaxDescription> ::=
    <LPAREN> <WSP>
         <numericoid>
         ( <SP> "DESC" <SP> <qdstring> )?
         <extensions> <WSP>
    <RPAREN>
{code}

Only

...

one

...

is

...

already

...

defined:

...

in

...

http://www.rfc-archive.org/getrfc.php?rfc=4517

Code Block

|RFC 4517]
{code}
3.3.3.  Boolean

   A value of the Boolean syntax is one of the Boolean values, true or
   false.  The LDAP-specific encoding of a value of this syntax is
   defined by the following ABNF:

      Boolean = "TRUE" / "FALSE"

   The LDAP definition for the Boolean syntax is:

      ( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' )

   This syntax corresponds to the BOOLEAN ASN.1 type from [ASN.1].
{code}

They

...

are

...

the

...

new

...

one

...

described

...

in

...

the

...

following

...

table

...

:

...

Desc

OID

Extensions

rules

m-oid

1.3.6.1.4.1.18060.1.1.0.1.1

...

-

Must be a valid OID

m-nameOrOid

1.3.6.1.4.1.18060.1.1.0.1.2

...

-

Must be a valid Name or a valid OID

m-typeObjectClass

1.3.6.1.4.1.18060.1.1.0.1.3

...

-

Should be one of those 3 strings :

  • ABSTRACT
  • STRUCTURAL
  • AUXILIARY

m-usage

1.3.6.1.4.1.18060.1.1.0.1.4

-

Should be one of those 4 strings :

  • userApplications
  • directoryOperation
  • distributedOperation
  • dSAOperation

MatchingRules

The Matching rules are deifned in RFC 4512 :

Code Block
 | \- | Should be one of those 4 strings :
* userApplications
* directoryOperation
* distributedOperation
* dSAOperation |

h2. MatchingRules

The Matching rules are deifned in RFC 4512 :
{code}
<MatchingRuleDescription> ::= <LPAREN> <WSP>
         <numericoid> <MRParameters>
         <SP> "SYNTAX" <SP> <numericoid>
         <extensions> <WSP> <RPAREN>

<MRParameters> ::=
    ( <SP> "NAME" <SP> <qdstrings> |
    <SP> "DESC" <SP> <qdstring> |
    <SP> "OBSOLETE" )+
{code}

Here

...

are

...

the

...

new

...

MatchingRules

...

:

Name

OID

Desc

Obsolete

Syntax

Extensions

OidMatch

1.3.6.1.4.1.18060.1.1.0.2.1

...

Match

...

an

...

OID

no

OID

-

BooleanMatch

1.3.6.1.4.1.18060.1.1.0.2.2

...

Match

...

a

...

Boolean

no

Boolean

-

NameOrOidMatch

1.3.6.1.4.1.18060.1.1.0.2.3

...

Match

...

a

...

name

...

or

...

an

...

OID

...

no

NameOrOid

-

TypeMatch

1.3.6.1.4.1.18060.1.1.0.2.4

...

Match

...

a

...

type

...

of

...

ObjectClass

...

no

Type

-

UsageMatch

1.3.6.1.4.1.18060.1.1.0.2.5

...

Match

...

an

...

attributeType

...

Usage

no

Usage

-

ObjectClasses

The ObjectClass element is described in RFC 4512 :

Code Block
 | no | *{_}Usage{_}* | \- |

h2. ObjectClasses

The ObjectClass element is described in RFC 4512 :
{code}
<ObjectClassDescription> ::=
          <LPAREN> <SP> <numericoid> <ocparameters> <extensions> <WSP> <RPAREN>

// Each parameters should not be seen more than once
<ocparameters>  ::=
    ( <SP> "NAME" <SP> <qdescrs>
    | <SP> "DESC" <SP> <qdstring>
    | <SP> "OBSOLETE"
    | <SP> "SUP" <SP> <oids>
    | <SP> ( "ABSTRACT" | "STRUCTURAL" | "AUXILIARY" )
    | <SP> "MUST" <SP> <oids>
    | <SP> "MAY" <SP> <oids> )+
{code}

Here

...

we

...

have

...

some

...

elements

...

which

...

are

...

already

...

in

...

the

...

schema

...

:

{
Code Block
}
attributetype ( 2.5.4.0
	NAME 'objectClass'
	DESC 'RFC2256: object classes of the entity'
	EQUALITY objectIdentifierMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
 )
{code}
{code
Code Block
}
attributetype ( 2.5.4.13
	NAME 'description'
	DESC 'RFC2256: descriptive information'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
 )
{
Code Block

attributetype}
{code}
attributetype ( 2.5.4.41
	NAME 'name'
	DESC 'RFC2256: common supertype of name attributes'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768}
 )
{code}

The

...

other

...

ones

...

must

...

be

...

defined.

...

Here

...

is

...

a

...

table

...

grouping

...

all

...

the

...

missing

...

elements

...

:

...

Name

OID

Desc

Sup

Equality

Ordering

Substr

Syntax

SingleValue

Collective

NoUserModification

Usage

m-oid

1.3.6.1.4.1.18060.1.1.0.3.1

...

The

...

Object

...

Identifier

-

OidMatch

-

-

OID

yes

-

yes

dSAOperation

m-name

1.3.6.1.4.1.18060.1.1.0.3.2

...

The

...

Object

...

name

-

caseIgnoreMatch

-

caseIgnoreSubstringsMatch

1.3.6.1.4.1.1466.115.121.1.15{32768}

...


no

-

yes

dSAOperation

m-description

1.3.6.1.4.1.18060.1.1.0.3.3

...

The

...

object

...

description

-

caseIgnoreMatch

-

caseIgnoreSubstringsMatch

1.3.6.1.4.1.1466.115.121.1.15

...

{1024

...

}

...


yes

-

yes

dSAOperation

m-obsolete

1.3.6.1.4.1.18060.1.1.0.3.4

...

The

...

type

...

is

...

obsolete

-

BooleanMatch

-

-

Boolean

yes

-

yes

dSAOperation

m-supObjectClass

1.3.6.1.4.1.18060.1.1.0.3.5

...

The

...

list

...

of

...

superiors

...

-

NameOrOidMatch

-

-

NameOrOid

no

-

yes

dSAOperation

m-must

1.3.6.1.4.1.18060.1.1.0.3.6

...

The

...

list

...

of

...

mandatory

...

ATs

...

-

NameOrOidMatch

-

-

NameOrOid

no

-

yes

dSAOperation

m-may

1.3.6.1.4.1.18060.1.1.0.3.7

...

The

...

list

...

of

...

authorized

...

ATs

...

-

NameOrOidMatch

-

-

NameOrOid

no

-

yes

dSAOperation

m-typeObjectClass

1.3.6.1.4.1.18060.1.1.0.3.8

...

The

...

ObjectClass

...

type

-

TypeMatch

-

-

Type

yes

-

yes

dSAOperation

AttributeType

The AttributeType element is described in RFC 4512 :

Code Block
 | \- | *{_}TypeMatch{_}* | \- | \- | *{_}Type{_}* | yes | \- | yes | dSAOperation |

h2. AttributeType

The AttributeType element is described in RFC 4512 :
{code}
<AttributeTypeDescription> = <LPAREN> <WSP> <numericoid> <atparameters> <extensions> <WSP> <RPAREN>

// Each parameters should not be seen more than once
<atparameters>  ::=
    (<SP> "NAME" <SP> <qdescrs>
    | <SP> "DESC" <SP> qdstring
    | <SP> "OBSOLETE"
    | <SP> "SUP" <SP> <oid>
    | <SP> "EQUALITY" <SP> <oid>
    | <SP> "ORDERING" <SP> <oid>
    | <SP> "SUBSTR" <SP> <oid>
    | <SP> "SYNTAX" <SP> <noidlen>
    | <SP> "SINGLE-VALUE"
    | <SP> "COLLECTIVE"
    | <SP> "NO-USER-MODIFICATION"
    | <SP> "USAGE" <SP> <usage>)+
{code}

Here

...

we

...

have

...

some

...

elements

...

which

...

are

...

already

...

in

...

the

...

schema

...

:

{
Code Block
}
attributetype ( 2.5.4.13
	NAME 'description'
	DESC 'RFC2256: descriptive information'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1024}
 )
{code}
{code
Code Block
}
attributetype ( 2.5.4.41
	NAME 'name'
	DESC 'RFC2256: common supertype of name attributes'
	EQUALITY caseIgnoreMatch
	SUBSTR caseIgnoreSubstringsMatch
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768}
 )
{code}

The

...

other

...

ones

...

must

...

be

...

defined.

...

Here

...

is

...

a

...

table

...

grouping

...

all

...

the

...

missing

...

elements

...

:

...

Name

OID

Desc

Sup

Equality

Ordering

Substr

Syntax

SingleValue

Collective

NoUserModification

Usage

m-obsolete

1.3.6.1.4.1.18060.1.1.0.3.9

...

The

...

type

...

is

...

obsolete

...

-

BooleanMatch

-

-

Boolean

yes

-

yes

dSAOperation

m-supAttributeType

1.3.6.1.4.1.18060.1.1.0.3.10

...

The

...

list

...

of

...

superior

...

-

nameOrOidMatch

-

-

NameOrOid

yes

-

yes

dSAOperation

m-equality

1.3.6.1.4.1.18060.1.1.0.3.11

...

Equality

...

matching

...

rule

...

-

nameOrOidMatch

-

-

NameOrOid

yes

-

yes

dSAOperation

m-ordering

1.3.6.1.4.1.18060.1.1.0.3.12

...

Ordering

...

matching

...

rule

...

-

nameOrOidMatch

-

-

NameOrOid

yes

-

yes

dSAOperation

m-substr

1.3.6.1.4.1.18060.1.1.0.3.13

...

Substring

...

matching

...

rule

...

-

nameOrOidMatch

-

-

NameOrOid

yes

-

yes

dSAOperation

m-syntax

1.3.6.1.4.1.18060.1.1.0.3.14

...

The

...

attribute

...

syntax

...

-

nameOrOidMatch

-

-

NameOrOid

yes

-

yes

dSAOperation

m-single-value

...

1.3.6.1.4.1.18060.1.1.0.3.15

...

The

...

attribute

...

is

...

single

...

valued

...

-

BooleanMatch

-

-

Boolean

yes

-

yes

dSAOperation

m-collective

1.3.6.1.4.1.18060.1.1.0.3.16

...

The

...

attribute

...

is

...

collective

...

-

BooleanMatch

-

-

Boolean

yes

-

yes

dSAOperation

m-no-user-modification

...

1.3.6.1.4.1.18060.1.1.0.3.17

...

The

...

attribute

...

is

...

protected

...

-

BooleanMatch

-

-

Boolean

yes

-

yes

dSAOperation

m-usage

1.3.6.1.4.1.18060.1.1.0.3.18

...

Type

...

of

...

operation

...

-

UsageMatch

-

-

Usage

yes

-

yes

dSAOperation

Ordering is useless, so is Substr.

Description of currently existing schemas

All the current schemas objects are described with the new syntax in those pages :