Re: schema in the directory paper
Andrew Waugh <A.Waugh@mel.dit.csiro.au> Wed, 15 July 1992 07:17 UTC
Received: from ietf.nri.reston.va.us by IETF.NRI.Reston.VA.US id aa01387; 15 Jul 92 3:17 EDT
Received: from NRI.NRI.Reston.Va.US by IETF.NRI.Reston.VA.US id aa01383; 15 Jul 92 3:17 EDT
Received: from haig.cs.ucl.ac.uk by NRI.Reston.VA.US id aa01243; 15 Jul 92 3:19 EDT
Received: from bells.cs.ucl.ac.uk by haig.cs.ucl.ac.uk with local SMTP id <g.02201-0@haig.cs.ucl.ac.uk>; Wed, 15 Jul 1992 07:21:44 +0100
Received: from shark.mel.dit.CSIRO.AU by bells.cs.ucl.ac.uk with Internet SMTP id <g.01591-0@bells.cs.ucl.ac.uk>; Wed, 15 Jul 1992 07:21:31 +0100
Received: from squid.mel.dit.CSIRO.AU by shark.mel.dit.csiro.au with SMTP id AA17445 (5.65c/IDA-1.4.4/DIT-1.3 for <osi-ds@cs.ucl.ac.uk>); Wed, 15 Jul 1992 16:21:23 +1000
Received: by squid.mel.dit.CSIRO.AU (4.1/SMI-4.0) id AA18560; Wed, 15 Jul 92 16:21:04 EST
Message-Id: <9207150621.AA18560@squid.mel.dit.CSIRO.AU>
To: Colin Robbins <c.robbins@xtel.co.uk>
Cc: Tim Howes <tim@terminator.cc.umich.edu>, osi-ds@cs.ucl.ac.uk
Subject: Re: schema in the directory paper
In-Reply-To: Your message of "Mon, 13 Jul 92 09:06:30 +0100." <"155 Mon Jul 13 09:05:36 1992"@xtel.co.uk>
Date: Wed, 15 Jul 1992 16:21:03 +1000
From: Andrew Waugh <A.Waugh@mel.dit.csiro.au>
> I am not sure I really understand the purpose of this note. > For me, one of the key reasons for representing schema information in the > directory, is that a DUA/DSA can find out about attributes or > objectclasses it does not have knowledege of locally. > > For example, if a DUA reads an entry and gets the attribute type > "1.2.826.0.1004.0.2.1" how can it tell what the attribte value > represents. It cannot. I am sure that CCITT were thinking that the schema would be relatively fixed; so there would be no need for the DUAs to find out schema information. Now, it appears that the schema will not be quite so standardised after all... Apart from the DUA receiving attributes it doesn't know how to process, there is a real problem with indicating errors to the user. If, when you are modifying an entry, you end up with an entry that violates the schema, the DSA will refuse the modification. It won't tell you why it refused the modification. Indeed, it cannot tell you, as the protocol makes no provision for this information. An identical problem occurs if you try to add an entry with an object class which violates the tree structuring rules. > Section 5 of this paper says that without prior knowledge of which > organisation assigned the schema, this info can not be found out. > Why? The OID name space is hierarchical, and the OID tree below > "1.2.826.0.1004" is assigned to X-Tel, so it would seem below X-Tel in > the DIT is a good place to look for the schema definition. > > I suggest that there needs to be mechanisim for finding out that > "1.2.826.0.1004" belongs to "X-Tel", and this need to be the DIT > itself. There are a number of ways of doing this. One of the > simplest is to have an "OID tree", built from "Relative OID" > components - roids, so you could look for > roid=1 @ roid=2 @ roid=826 ... > in the tree. There are others ways too. An alternative is to put the schema information under the DMD entries. The DSA which holds the DMD from which the entry came from must know the schema of that DMD. (This what we did.) Another alternative is to associate the schema information with the entry itself. The last seems to be the approach taken by ISO and CCITT. > Back to what the paper does cover. With both the > "internetAttributeTypes" and "internetObjectClasses" attributes, the > OID assigned is buried in the syntax. Using this approach all the > schema details are held in one node. IF is then difficult to find > details of the oid "1.2.826.0.1004..." without reading the entire > entry, and wading through the result. > > I would like to suggest that the schema is held below a particular > node, with a different entry for each object. > One advantage of this is each entry can then have a seperate attribute > type, containing the OID of the defined attribute. Then I can do > something like > search -filter oid=1.2.826... > and find a definition of the object I am looking for. > > Finally, a more wild idea, that I am not really suggesting you > consider at this stage! But it would be really smart to have the ASN.1 > definition of attribute syntaxes in the directory. Then using the > "pepsy" ASN.1 compiler, a QUIPU syntax handler could be generated "on > the fly" by a DUA, and the attribute value presented to the user in a > user friendly way. All we need is an ASN.1 definition of ASN.1 !?! Jason Baragry and I had a go at putting Schema information into the directory last Christmas. I hacked Dish to work with this schema information and Jason hacked another DUA. The hacked dish used the schema information quite extensively. It used it to construct templates, check for object class violations (must/may contains), check single valued/multi values, and check the lengths of values. It also added the oid/syntax definitions to attrOIDTable[] so that (most of) oidtable.at was redundant. The dish worked fine (though I don't claim all the bugs were out :-). The main problem was speed; it took a significant amount of time to retrieve all of the information from the DSA. I put the work aside when I realised that 1992 X.500 stored (some? all?) of the schema information in entries or with the DMD. I intended to evaluate the new stuff, but just haven't got back to it. I've appended the Attributes and Object Classes at the end. Note, we didn't put all of this information in the directory! We also didn't quite implement it that way! The schema information is still under @c=AU@o=CSIRO@ou=Directory Management Domain, if you are curious. If you want more information, don't hesitate to holler. andrew waugh 1. Definitions of Object Classes and Attribute Syntaxes 1.1 DIT Structure The DIT Structure object class is used to represent the DIT structure rules. scDITStructure OBJECT-CLASS SUBCLASS OF top MUST CONTAIN { commonName, scOid} MAY CONTAIN { description, seeAlso, scSubordinateOf, scNamedBy } ::= {csiroObjectClass.2} 1.1 Object Class The Object Class object class is used to define entries representing the object class used by a DSA in a particular DMD. scObjectClass OBJECT-CLASS SUBCLASS OF top MUST CONTAIN { commonName, scOid} MAY CONTAIN { description, scSubclassOf, scMustContain, scMayContain } ::= {csiroObjectClass.3} 1.2 Attribute Set The Attribute Set object class is used to define entries representing the attribute sets used by in object class definitions. scAttributeSet OBJECT-CLASS SUBCLASS OF top MUST CONTAIN { commonName, scOid} MAY CONTAIN { description, scMayContain, } ::= {csiroObjectClass.4} 1.3 Attribute The Attribute object class is used to define entries representing the attributes known by a DSA. scAttribute OBJECT-CLASS SUBCLASS OF top MUST CONTAIN { commonName, scOid} MAY CONTAIN { description, scAttrSyntax, scMinRange, scMaxRange, scMultiValued, scMatches, scASN1defn } ::= {csiroObjectClass.5} 1.4 Attribute Syntax The Attribute Syntax object class is used to define entries representing the attribute syntaxes known by a DSA. scAttribute OBJECT-CLASS SUBCLASS OF top MUST CONTAIN { commonName, scOid} MAY CONTAIN { description, scMatches, scASN1defn } ::= {csiroObjectClass.6} 2.1 Schema Object Identifier The Schema Object Identifier attribute gives the object identifier associated with the schema element defined by the entry. scOid ATTRIBUTE WITH ATTRIBUTE SYNTAX objectIdentifierSyntax ::= {csiroAttribute.10} 2.2 Schema Subclass Of The Schema Subclass Of attribute contains the list of classes which the object class is a subclass of. scSubclassOf ATTRIBUTE WITH ATTRIBUTE SYNTAX caseIgnoreStringSyntax (SIZE(1..ub-sc-subclass-of)) ::= {csiroAttribute.11} 2.3 Schema Must Contain The Schema Must Contain attribute contains the list of attributes which the object class must contain. scMustContain ATTRIBUTE WITH ATTRIBUTE SYNTAX caseIgnoreStringSyntax (SIZE(1..ub-sc-must-contain)) ::= {csiroAttribute.12} 2.4 Schema May Contain The Schema May Contain attribute contains the list of attributes which the object class may contain. scMayContain ATTRIBUTE WITH ATTRIBUTE SYNTAX caseIgnoreStringSyntax (SIZE(1..ub-sc-may-contain)) ::= {csiroAttribute.13} 2.5 Schema Attribute Syntax The Schema Attribute Syntax attribute contains the oid of the attribute syntax which this attribute is scAttrSyntax ATTRIBUTE WITH ATTRIBUTE SYNTAX objectIdentifierSyntax ::= {csiroAttribute.14} 2.6 Schema Minimum Length The Schema Minimum Length attribute contains the minimum length of the attribute. If not present assumed to be 1. scMinLength ATTRIBUTE WITH ATTRIBUTE SYNTAX integerSyntax ::= {csiroAttribute.15} 2.7 Schema Maximum Length The Schema Maximum Length attribute contains the maximum length of the attribute. scMaxLength ATTRIBUTE WITH ATTRIBUTE SYNTAX integerSyntax ::= {csiroAttribute.16} 2.8 Schema Multivalued The Schema Multivalued attribute indicates whether the attribute may have multiple values. If not present, assumed to be TRUE. scMultiValued ATTRIBUTE WITH ATTRIBUTE SYNTAX booleanSyntax ::= {csiroAttribute.17} 2.9 Schema Matches The Schema Matches attribute contains the list of matching algorithms which can be used to match against the attribute. scMatches ATTRIBUTE WITH ATTRIBUTE SYNTAX Matches ::= {csiroAttribute.18} Matches ::= SET { Equality [0] BOOLEAN, Substrings [1] BOOLEAN, Ordering [2] BOOLEAN} 2.10 Schema ASN.1 Definition The Schema ASN.1 Definition attribute contains the ASN.1 specification of the attribute syntax. scASN1Defn ATTRIBUTE WITH ATTRIBUTE SYNTAX caseIgnoreStringSyntax (SIZE(1..ub-sc-asn1-defn)) ::= {csiroAttribute.19} 2.10 Schema Subordinate Of The Schema Subordinate Of attribute names the types of entry which the entry can be a subordinate of. scSubordinateOf ATTRIBUTE WITH ATTRIBUTE SYNTAX caseIgnoreStringSyntax (SIZE(1..ub-sc-sub-of-)) ::= {csiroAttribute.20} 2.10 Schema Named By The Schema Named By attribute contains the list of attributes which name this entry scNamedBy ATTRIBUTE WITH ATTRIBUTE SYNTAX caseIgnoreListSyntax (SIZE(1..ub-sc-asn1-defn)) ::= {csiroAttribute.21}
- schema in the directory paper Tim Howes
- Re: schema in the directory paper Colin Robbins
- Re: schema in the directory paper Andrew Waugh
- Re: schema in the directory paper Tim Howes
- Re: schema in the directory paper Sylvain Langlois