home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1804.txt < prev    next >
Text File  |  1996-05-07  |  19KB  |  254 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                       G. Mansfield Request for Comments: 1804                              AIC Laboratories Category: Experimental                                         P. Rajeev                                                  Hughes Software Systems                                                              S. Raghavan                                   Indian Institute of Technology, Madras                                                                 T. Howes                                                   University of Michigan                                                                June 1995 
  8.  
  9.                    Schema Publishing in X.500 Directory 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo defines an Experimental Protocol for the Internet    community.  This memo does not specify an Internet standard of any    kind.  Discussion and suggestions for improvement are requested.    Distribution of this memo is unlimited. 
  14.  
  15. Abstract     The X.500 directory provides a powerful mechanism for storing and    retrieving information about objects of interest.  To interpret the    information stored in the directory, the schema must be known to all    the components of the directory. Presently, there are no means other    than ftp to distribute schema information across the Internet.  This    is proving to be a severe constraint as the Directory is growing.    This document presents a solution to the schema distribution problem    using the existing mechanisms of the directory. A naming scheme for    naming schema objects and a meta-schema for storing schema objects is    presented. The procedures for fetching unknown schema from the    directory at runtime are described. 
  16.  
  17. Table of Contents 
  18.  
  19.    1. Introduction                                         2    2. Schema Management                                    2    3. Storage of Schema Information in the Directory       3    4. Retrieval of Schema from the Directory               5    5. The Meta-Schema                                      6    6. References                                           9    7. Security Considerations                              9    8. Authors' Addresses                                  10 
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. Mansfield, et al              Experimental                      [Page 1] 
  28.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  29.  
  30.  1. Introduction 
  31.  
  32.    The X.500 Directory [1] is now used for a wide range of applications    from name/address lookup to network management, from restaurant    information to bibliographic information services. This information    is distributed and managed across a network of many autonomous sites.    In order to interpret the information stored in the directory, the    components of the directory must have knowledge about the structure    and representation (schema) of the information held within the    directory. 
  33.  
  34.    The distributed nature of the network and the relatively slow process    of standardization have given rise to the challenging task of making    accessible the information about the schema rules themselves.  A    mechanism for making the schema accessible to the functional    components of the directory is urgently required. 
  35.  
  36.    The 1993 X.500 Directory Standard [2] has attempted to address the    problem of schema management and distribution. The 1993 framework    does provide the means for storing and retrieving schema information    in the directory. However, the resolution of unknown OIDs will    require both the DUA and the DSA to be compliant with [2]. 
  37.  
  38.    In this document we propose a solution using the existing mechanisms    of the directory [1] itself. We present a naming scheme for naming    schema objects and a meta-schema for storing schema objects in the    directory.  The proposal allows the algorithmic resolution of unknown    objects in the directory and in the absence of 1993 X.500 Directory    Standard implementations provides an interim solution to the schema    publishing problem. 
  39.  
  40. 2. Schema Management 
  41.  
  42.    The storage and retrieval mechanism provided by the directory is    powerful and flexible.  However, the key to the directory is the    knowledge of the schema rules defined for the objects represented in    the directory.  To facilitate the diffusion of this knowledge    appropriate schema management mechanisms need to be designed.  Schema    management involves: 
  43.  
  44.         o Storage of schema information in the directory         o Algorithmic access to and retrieval of schema information           in the directory         o Definition of rules for schema modification         o Propagation of schema information from one component of the           directory to other components of directory 
  45.  
  46.  
  47.  
  48.  
  49.  
  50. Mansfield, et al              Experimental                      [Page 2] 
  51.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  52.  
  53.     In this document we concentrate on the aspect of schema    access/retrieval from the directory. Since schema objects are defined    and employed, the modification , addition and deletion of schema    objects can be carried out using existing directory mechanisms. But    the operational issue of synchronizing the schema with the DIB will    require further attention.  Similarly the issue of schema propagation    requires further work and is outside the scope of this document.  The    strategy proposed in this document has a very simple and workable    approach.  No added DAP/DSP functionality is envisaged. At the same    time by using the directory's distributed framework scalability    problems are avoided.  In essence, it allows the distributed storage    of schema objects and proposes a naming scheme which allows    algorithmic schema retrieval. Of course, on the down side, more than    one directory read operation may be required to retrieve the    information about an object and its attributes, as objects and    attributes are stored as separate entries in the directory. 
  54.  
  55.    As schema information of all objects in a naming context are stored    below the root entry of that naming context, the same DSA will be    able to supply the schema information stored in that DSA. Thus there    is no need to contact another DSA for resolving the schema of an    object stored in the local DSA. 
  56.  
  57. 3. Storage of Schema Information in the Directory 
  58.  
  59.    The schema information may be stored and distributed using mechanisms    external to the X.500 directory standard [5]. This document proposes    storing schema information in the directory.  It has the following    advantages: 
  60.  
  61.         o The components of the directory can access the schema           information using the standard directory protocols. 
  62.  
  63.         o The nature of the directory naturally allows the schema           to be distributed. Schema used locally can be kept in the           local DSA itself whereas schema for general objects like           person, organization etc can be made available to all           components of the directory by publishing it. 
  64.  
  65.    In the operational model, the schema information in the directory is    expected to complement the schema information held in central    repositories. 
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75. Mansfield, et al              Experimental                      [Page 3] 
  76.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  77.  
  78.  3.1  Naming Scheme for the Schema 
  79.  
  80.    The schema information is stored in a distributed manner.  We propose    a model in which each naming context stores the schema relevant to    it. 
  81.  
  82.                                  Root                                     \                                      \                         +-------------\----------------------+                         |            C=IN            DSA-1   |                         |          /      \                  |                         |         /        \                 |                         |        /          \                |                         |       /            \               |                         |      /          cn=subschema       |                         |     /           /  / | \ \ \       |                         |    /           /  /  |  \ \ \      |                         |   /          oid= oid=             |                         +--/---------------------------------+                           /   +----------------------/----------------------+   |                o=IIT, Madras      DSA-2     |   |                 /           \               |   |                /             \              |   |               /               \             |   |              /                 \            |   |         ou=CSE             cn=subschema     |   |         /    \             /   /| \ \ \     |   |        /      \           /   / |  \ \ \    |   |ipni=spark  cn=Rajeev oid=ipni  oid=         |   +---------------------------------------------+ 
  83.  
  84.          Figure 1: DIT with schema objects 
  85.  
  86.     To store the schema information, an object called subschema object is    defined. This object can come anywhere in the Directory Information    Tree (DIT). The subschema is defined as a subclass of Top.  The    subschema entry is stored below the root entry of a naming context.    The root entry of a naming context must contain a subschema subentry,    named {CN= Subschema}.  This standard naming methodology is necessary    so that the components of the directory can easily and    algorithmically locate the schema entries.  All schema information    relevant to that naming context is stored below the subschema entry.    Children of the subschema entry store information about objects,    attribute types, attribute syntaxes or matching rules. The DIT 
  87.  
  88.  
  89.  
  90. Mansfield, et al              Experimental                      [Page 4] 
  91.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  92.  
  93.     structure for storing schema information is shown in Figure 1.    Schema for these objects are given in section 5. 
  94.  
  95. 4. Retrieval of Schema from the Directory 
  96.  
  97.    When an unknown object is encountered by any component of directory    during a directory operation, it proceeds the following way to    resolve the schema. 
  98.  
  99.    The RDN component at the leaf-end of the name of the object whose    schema is to be resolved is replaced by the RDNs "oid=<object    identifier of the new object>, CN=subschema" and a read request is    initiated for the newly formed name.  If the entry is not found, two    RDN components from the leaf-end of the name of the object are    replaced by the RDNs "oid=<object identifier of the new object>,    CN=subschema" and another read is attempted. The process continues    until the read succeeds.  For example, while resolving the schema of    the object "IPNI=spark, OU=Department of Computer Science, O=Indian    Institute of Technology, Madras , C=IN", if the schema of the object    IPNI (IP Node Image) is not known to a component of the directory,    the following procedure will be adopted. 
  100.  
  101.    Let the object id for the object IPNI be ipni.  The RDN "IPNI=spark"    is removed from the distinguished name of the entry and the RDNs    "oid=ipni, CN= Subschema" is appended.  The name thus formed is    "oid=ipni, CN=subschema, OU=Department of Computer Science, O=Indian    Institute of Technology, Madras, C=IN" A read request is initiated on    this name.  If the distinguished name "OU= Department of Computer    Science, O=Indian Institute of Technology, Madras, C=IN" is the    context prefix of a naming context, this read request will result in    the directory returning the schema for the object IPNI. If it is not,    the read operation will fail. In that case, a read operation is    initiated with distinguished name "oid=ipni, CN= subschema, O=Indian    Institute of Technology, Madras, C=IN". For the DIT structure shown    in Figure-1, this query will succeed and the schema information will    be returned.  The schema for the requested object will always be    located below the starting entry of the naming context in which the    entry is located. 
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115. Mansfield, et al              Experimental                      [Page 5] 
  116.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  117.  
  118.  5. The Meta-Schema 
  119.  
  120. experimental = 1.3.6.1.3 
  121.  
  122. schema OBJECT IDENTIFIER         ::= {experimental 65} 
  123.  
  124. schemaObjectClass OBJECT IDENTIFIER         ::= {schema.1} 
  125.  
  126. schemaAttribute OBJECT IDENTIFIER         ::= {schema.2} 
  127.  
  128. subschema OBJECT CLASS     Subclass of TOP         MUST CONTAIN {             commonName             - -  For naming         }         ::= {schemaObjectClass.1} 
  129.  
  130. objectClass OBJECT CLASS     Subclass of TOP         MUST CONTAIN {             objectIdentifier                 - - This field stores the object identifier of object                 - - represented by an object class entry. This attribute                 - - is used for naming an object class entry.         }         MAY CONTAIN {             commonName,                  - - This field is used to store the name of the object             mandatoryNamingAttributes,             mandatoryAttributes,             optionalNamingAttibutes,             optionalAttributes,             obsolete,             description,             subClassOf         }         ::= {schemaObjectClass.2} 
  131.  
  132. attributeType OBJECT CLASS     Subclass of Top         MUST CONTAIN {             objectIdentifier         }         MAY CONTAIN { 
  133.  
  134.  
  135.  
  136. Mansfield, et al              Experimental                      [Page 6] 
  137.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  138.  
  139.               commonName,                 - - used to store the name of the attribute type              constraint,              attributeSyntax,              multivalued,              obsolete,              matchRules,              description         }         ::= {schemaObjectClass.3} 
  140.  
  141. matchingRule OBJECT CLASS      Subclass of Top         MUST CONTAIN {              objectIdentifier         }          MAY CONTAIN {              commonName,              matchtype,              description,              obsolete         }         ::= {schemaObjectClass.4} 
  142.  
  143. objectIdentifier ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             objectIdentifierSyntax        ::= {schemaAttribute.1} 
  144.  
  145. mandatoryNamingAttributes ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             SET OF OBJECT IDENTIFIER        ::= {schemaAttribute.2} 
  146.  
  147. mandatoryAttributes ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             SET OF OBJECT IDENTIFIER        ::= {schemaAttribute.3} 
  148.  
  149. optionalNamingAttibutes ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             SET OF OBJECT IDENTIFIER        ::= {schemaAttribute.4} 
  150.  
  151. optionalAttibutes ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             SET OF OBJECT IDENTIFIER        ::= {schemaAttribute.5} 
  152.  
  153.  
  154.  
  155. Mansfield, et al              Experimental                      [Page 7] 
  156.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  157.  
  158.  obsolete ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             BOOLEAN                            -- DEFAULT FALSE        ::= {schemaAttribute.6} 
  159.  
  160. subClassOf      ATTRIBUTE         WITH ATTRIBUTE-SYNTAX                 SET OF OBJECT IDENTIFIER        ::= {schemaAttribute.7} 
  161.  
  162. constraint ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             Constraint        ::= {schemaAttribute.8} 
  163.  
  164. Constraint ::=Choice {              StringConstraint,              IntegerConstraint         } 
  165.  
  166. StringConstraint ::= SEQUENCE {              shortest INTEGER,              longest  INTEGER         } 
  167.  
  168. IntegerConstraint ::= SEQUENCE {              lowerbound INTEGER,              upperbound INTEGER OPTIONAL         } 
  169.  
  170. attributeSyntax ATTRIBUTE        WITH ATTRIBUTE-SYNTAX               ASN1DataType        ::= {schemaAttribute.9} 
  171.  
  172. multivalued ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             BOOLEAN             -- DEFAULT FALSE        ::= {schemaAttribute.10} 
  173.  
  174. matchRules ATTRIBUTE        WITH ATTRIBUTE-SYNTAX             SET OF OBJECT IDENTIFIER        ::= {schemaAttribute.11} 
  175.  
  176. matchtype ATTRIBUTE        WITH ATTRIBUTE-SYNTAX 
  177.  
  178.  
  179.  
  180. Mansfield, et al              Experimental                      [Page 8] 
  181.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  182.  
  183.              INTEGER {              PRESENT                    (0),              EQUALITY                   (1),              ORDERING                   (2),              CASESENSITIVEMATCH         (3),              CASEINSENSITIVEMATCH       (4)             }        ::= {schemaAttribute.12} 
  184.  
  185.  6. References 
  186.  
  187.    [1] CCITT. "Data Communication Networks: Directory", Recommendations        X.500 - X.521 1988. 
  188.  
  189.    [2] CCITT. "Data Communication Networks: Directory", Recommendations        X.500 - X.525 1993. 
  190.  
  191.    [3] Barker, P., and S. Kille, "The COSINE and Internet X.500 Schema",        RFC 1274, University College London, November 1991. 
  192.  
  193.    [4] Howes, T., "Schema Information in the X.500 Directory", Work in        Progress, University of Michigan, July 1992. 
  194.  
  195.    [5] Howes, T., Rossen, K., Sataluri, S., and R. Wright, "Procedures        for Formalization, Evolution, and Maintenance of the Internet        X.500 Directory Schema", Work in Progress, June 1995. 
  196.  
  197. 7. Security Considerations 
  198.  
  199.    Security issues are not discussed in this memo. 
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  Mansfield, et al              Experimental                      [Page 9] 
  220.  RFC 1804          Schema Publishing in X.500 Directory         June 1995 
  221.  
  222.  8. Authors' Addresses 
  223.  
  224.    Glenn Mansfield    AIC Systems Laboratories,    6-6-3, Minami Yoshinari, Aoba-Ku, Sendai,    Japan 
  225.  
  226.    Phone: +81 (22) 279-3310    Fax: +81 (22) 279-3640    EMail: glenn@aic.co.jp 
  227.  
  228.     P. V. Rajeev    Hughes Software Systems,    2nd Floor, International Trade Tower,    Nehru Place, New Delhi,    India 
  229.  
  230.    EMail: rajeev%hss@lando.hns.com 
  231.  
  232.     S. V. Raghavan    Department of Computer Science and Engineering,    Indian Institute of Technology, Madras 600 036,    India 
  233.  
  234.    EMail: svr@iitm.ernet.in 
  235.  
  236.     Tim Howes    University of Michigan    ITD Research Systems    535 W William St.    Ann Arbor, MI 48103-4943, USA 
  237.  
  238.    Phone: +1 (313) 747-4454    EMail: tim@umich.edu 
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  Mansfield, et al              Experimental                     [Page 10] 
  253.  
  254.