<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>

<!--
     ASCII to XML transformation by Invisible Worlds, Inc.
     http://invisible.net/
     Last transformation: 03-Feb-1999, 02:03:58

     Cannonical version of this document is at:
     http://info.internet.isi.edu/in-notes/rfc/files/rfc2120.txt

     Implementors should verify all content with
     cannonical version.  Failure to do so may result in
     protocol failures.
-->

<rfc number="2120"
     category="exp">
<front>
<title abbrev="X.500 Root Naming">Managing the X.500 Root Naming Context</title>
<author initials="D.W." surname="Chadwick" fullname="D W Chadwick">
<organization>IT Institute</organization>
<address>
<postal>
<street>University of Salford</street>
<street>Salford</street>
<street>M5 4WT</street>
<street>England</street>
</postal>
<phone>+44 161 745 5351</phone>
<facsimile>+44 161 745 8169</facsimile>
<email>D.W.Chadwick@iti.salford.ac.uk</email>
</address>
</author>
<date month="March" year="1997"/>
<area>Applications</area>
<keyword>X.500</keyword>
<keyword>ITU abstract syntax notation one</keyword>
<keyword>ITU directory service protocol</keyword>
<abstract>
<t>
   The X.500 Standard <xref target="_XREF_X.500.93"/> has the concept of first level DSAs,
   whose administrators must collectively manage the root naming context
   through bi-lateral agreements or other private means which are
   outside the scope of the X.500 Standard.
</t>
<t>
   The NameFLOW-Paradise X.500 service has an established procedure for
   managing the root naming context, which currently uses Quipu
   proprietary replication mechanisms and a root DSA. The benefits that
   derive from this are twofold:
<list>
<t>
      - firstly it is much easier to co-ordinate the management of the
      root context information, when there is a central point of
      administration,
</t>
<t>
      - secondly the performance of one-level Search operations is
      greatly improved because the Quipu distribution and replication
      mechanism does not have a restriction that exists in the 1988 and
      1993 X.500 Standard.
</t></list>
</t>
<t>
   The NameFLOW-Paradise project is moving towards 1993 ISO X.500
   Standard replication protocols and wants to standardise the protocol
   and procedure for managing the root naming context which will be
   based on 1993 X.500 Standard protocols. Such a protocol and procedure
   will be useful to private X.500 domains as well as to the Internet
   X.500 public domain. It is imperative that overall system performance
   is not degraded by this transition.
</t>
<t>
   This document describes the use of 1993 ISO X.500 Standard protocols
   for managing the root context. Whilst the ASN.1 is compatible with
   that of the X.500 Standard, the actual settings of the parameters are
   supplementary to that of the X.500 Standard.
</t>
</abstract>
</front>
<middle>
<!-- RFC original section: (1) -->
<section title="Introduction">
<t>
   The NameFLOW-Paradise service has a proprietary way of managing the
   set of first level DSAs and the root naming context. There is a
   single root DSA (Giant Tortoise) which holds all of the country
   entries, and the country entries are then replicated to every country
   (first level) DSA and other DSAs by Quipu replication <xref target="_XREF_RFC.1276"/> from
   the root DSA. In June 1996 there were 770 DSAs replicating this
   information over the Internet. The root DSA is not a feature of the
   X.500 Standard <xref target="_XREF_X.500.93"/>. It was introduced because of the non-
   standard nature of the original Quipu knowledge model (also described
   in RFC 1276). However, it does have significant advantages both in
   managing the root naming context and in the performance of one-level
   Searches of the root.  Performance is increased because each country
   DSA holds all the entry information of every country.
</t>
<t>
   By comparison, the 1988 X.500 Standard root context which is
   replicated to all the country DSAs, only holds knowledge information
   and a boolean (to say if the entry is an alias or not) for each
   country entry. This is sufficient to perform an insecure List
   operation, but not a one-level Search operation. When access controls
   were added to the 1993 X.500 Standard, the root context information
   was increased (erroneously as it happens - this is the subject of
   defect report 140 - see Annex 1) to hold the access controls for each
   country entry, but a note in the X.500 Standard restricted its use to
   the List operation, in order to remain compatible with the 1988
   edition of the X.500 Standard.
</t>
</section>
<!-- RFC original section: (2) -->
<section title="Migration Plan">
<t>
   The NameFLOW-Paradise service is now migrating to X.500 Standard
   <xref target="_XREF_X.500.93"/> conforming products, and it is essential to replace the
   Quipu replication protocol with the 1993 shadowing and operational
   binding protocols, but without losing the performance improvement
   that has been gained for one-level Searches.
</t>
<t>
   It is still the intention of the NameFLOW-Paradise service to have
   one master root DSA. This root DSA will not support user Directory
   operations via the LDAP, the DAP or the DSP, but each country (first
   level) DSA will be able to shadow the root context from this root
   DSA, using the DISP. Each first level DSA then only needs to have one
   bi-lateral agreement, between itself and the root DSA. This agreement
   will ensure that the first level DSA keeps the root DSA up to date
   with its country level information, and in turn, that the root DSA
   keeps the first level DSA up to date with the complete root naming
   context. When a new first level DSA comes on line, it only needs to
   establish a bi-lateral agreement with the root DSA, in order to
   obtain the complete root context.
</t>
<t>
   This is a much easier configuration to manage than simply a set of
   first level DSAs without a root DSA, as suggested in the ISO X.500
   Standard. In the X.500 Standard case each first level DSA must have
   bi-lateral agreements with all of the other first level DSAs. When a
   new first level DSA comes on line, it must establish agreements with
   all the existing first level DSAs. As the number of first level DSAs
   grows, the process becomes unmanageable.
</t>
<t>
   However, it is also important to increase the amount of information
   that is held about every country entry, so that a one-level Search
   operation can be performed in each first level DSA, without it
   needing to chain or refer the operation to all the other first level
   DSAs (as is currently the case with a X.500 Standard conforming
   system.)
</t>
</section>
<!-- RFC original section: (3) -->
<section title="Technical Solutions">
<t>
   3.1 The solution at first appears to be relatively straight forward,
   and involves two steps. Firstly, create a root DSA, and establish
   hierarchical operational bindings using the DOP, between it and each
   master first level DSA. Secondly, each master first level DSA enters
   into a shadowing agreement with the root DSA, to shadow the enlarged
   root context information. In this way each first level DSA is then
   capable of independently performing List and one-level Search
   operations, and name resolving to all other first level DSAs.
</t>
<t>
   3.2 Unfortunately there are a number of complications that inhibit a
   quick implementation of this solution. Firstly, few DSA suppliers
   have implemented the DOP. Secondly there are several defects in the
   X.500 Standard that currently stop the above solution from working.
</t>
<t>
   3.3 At a meeting chaired by DANTE in the UK on 18 June 1996<xref target="_XREF_Mins"/>, at
   which several DSA suppliers were present, the following pragmatic
   technical solution was proposed. This comprises a fast track partial
   solution and a slower track fuller solution. Both the fast and slower
   tracks use the shadowing protocol (DISP) for both steps of the
   solution, and do not rely on the DOP to establish HOBs. The fast
   track solution, described in section 4, will support knowledge
   distribution of the root context, and the (insecure) List operation
   of the root&apos;s subordinates. The List operation will be insecure
   because access control information will not be present in the shadow
   DSEs. (However, since it is generally thought that first level
   entries, in particular country entries, are publicly accessible, this
   is not considered to be a serious problem.) Suppliers expect to have
   the fast track solution available before the end of 1996. The slower
   track solution, described in section 5, will in addition support
   fully secure one level Search and List operations of the root
   (without the need to chain to the master DSAs). Suppliers at the
   DANTE meeting did not realistically expect this to be in their
   products much sooner than mid 1998.
</t>
<t>
   3.4 The long term solution, which relies on the DOP to establish
   HOBs, is described in section 6 of this document.
</t>
<t>
   (Note. It is strongly recommended that non-specific subordinate
   references should not be allowed in the root context for efficiency
   reasons. This is directed by the European functional X.500 Standard
   <xref target="_XREF_ENV.41215"/> and the NADF standing document <xref target="_XREF_NADF.7"/>. It is also
   preferred by the International X.500 Standardized Profile [ISP
   10615-6].)
</t>
</section>
<!-- RFC original section: (4) -->
<section title="The Fast Track Solution">
<t>
   4.1 The fast track solution provides root knowledge collection and
   insecure List operations for first level DSAs, and will be of use to
   systems which do not yet support the DOP for managing hierarchical
   operational bindings. The fast track solution relies upon the DISP
   with very few changes to the 1993 edition of the X.500 Standard.
</t>
<t>
   4.2 Each master first level DSA administrator will make available to
   the administrator of the root DSA, sufficient information to allow
   the root DSA to configure a subordinate reference to their DSA. In
   the simplest case, this can be via a telephone call, and the
   information comprises the access point of their DSA and the RDNs of
   the first level entries that they master.
</t>
<t>
   4.3 Each master first level DSA enters into a shadowing agreement
   with the root DSA, for the purpose of shadowing the root naming
   context.
</t>
<t>
   The 1993 edition of the X.500 Standard explicitly recognises that
   there can be master and shadow first level DSAs (X.501 Section 18.5).
   (The 1988 edition of the X.500 Standard does not explicitly recognise
   this, since it does not recognise shadowing.) A shadow first level
   DSA holds a copy of the root context, provided by a master first
   level DSA. In addition it holds shadow copies of the (one or more)
   country entries that the master first level DSA holds. There is
   currently an outstanding defect report <xref target="_XREF_UK.142"/> on the 1993 X.500
   Standard to clarify how a shadowing agreement is established between
   first level DSAs. Once this has been ratified, the only additional
   text needed in order to establish a shadowing agreement between the
   root DSA and a master first level DSA is as follows:
</t>
<t>
   &quot;When clause 9.2 of ISO/IEC 9594-9:1993 is applied to the
   shadowing of the root context by a first level DSA from the root
   DSA of a domain, then UnitOfReplication shall be set as follows:
</t>
<figure><artwork>
   contextPrefix of AreaSpecification shall be null,

   replicationArea of AreaSpecification shall be set to
                       SEQUENCE {
        specificExclusions  [1]  SET OF {
             chopBefore          [0]  FirstLevelEntry},
        maximum             [3]  1 }
</artwork></figure>
<t>
   where FirstLevelEntry is the RDN of a first level entry (e.g.
   country, locality or international organisation) held by the
   master first level DSA. specificExclusions shall contain one
</t>
<t>
   FirstLevelEntry for each first level entry mastered by this DSA,
</t>
<t>
   attributes of UnitofReplication shall be an empty SET OF SEQUENCE,
</t>
<t>
   knowledge of UnitofReplication shall be set to both (shadow and
   master).
</t>
<t>
   In other words, the information that will be replicated will be an
   empty root entry plus all the attributes of the complete set of
   subordinate DSEs of the root that are held in the root DSA excluding
   the DSEs that the first level DSA already masters, plus a complete
   set of subordinate reference.&quot;
</t>
<t>
   Note that the maximum component of replicationArea, although not
   strictly necessary, is there for pragmatic reasons, for example,
   where a community of users wish to use the root DSA to hold some
   country specific entries.
</t>
</section>
<!-- RFC original section: (5) -->
<section title="The Slower Track Solution">
<t>
   5.1 The slower track solution provides support for fully secure one
   level Search and List operations of the root in first level DSAs, and
   comprises of two steps for HOB establishment between the root DSA and
   master first level DSAs, using the DISP instead of the DOP. Step one,
   described in 5.3, allows the root DSA to shadow first level entries
   from a master first level DSA. Step two, described in 5.4, requires
   either the root DSA administrator or the root DSA implementation to
   massage the shadow first level entries so that they appear to have
   been created by a HOB.  Managing the root context then continues as
   in 4.3 above.
</t>
<t>
   5.2 This solution requires two significant defects in the ISO X.500
   Standard to be corrected. Firstly, access control information needs
   to be added to subordinate references in the DISP to allow the List
   operation to work securely in a shadowed DSA. (The ACI are held in
   both the subr DSE and in its subentry.) This requires a defect report
   on the 93 X.500 Standard to be submitted. The text of this defect
   report (that has been submitted to ISO) is given in Annex 2.
</t>
<t>
   Secondly, a new type of shadowing agreement will need to be
   established between the supplier and consumer DSAs, to copy
   subordinate entries rather than simply subordinate references, so
   that one level Search operations can work in the shadowing DSA.  This
   procedure should have been part of the 1997 edition of the X.500
   Standard, but due to an omission is not. Consequently  a defect
   report on the 1997 X.500 Standard has been submitted. The text of
   this defect report is given in Annex 3.
</t>
<t>
   5.3 The hierarchical operational binding between the root DSA and a
   master first level DSA can be replaced by a set of &quot;spot&quot; shadowing
   agreements, in which the first level DSA acts as the supplier, and
   the root DSA as the consumer. Each &quot;spot&quot; shadowing agreement
   replicates a first level entry which is mastered by the first level
   DSA. The UnitOfReplication shall be set as follows:
</t>
<figure><artwork>
   contextPrefix of AreaSpecification shall be FirstLevelEntry,

   replicationArea of AreaSpecification shall be set to
                       SEQUENCE {
        specificExclusions  [1]  SET OF {
                       chopAfter [1]  {null} } }
</artwork></figure>
<t>
   where FirstLevelEntry is the Distinguished Name of a first level
   entry (e.g. country, locality or international organisation) held by
   the master first level DSA.
</t>
<t>
   attributes of UnitofReplication shall be an empty SET OF SEQUENCE,
</t>
<t>
   knowledge of UnitofReplication shall be absent.
</t>
<t>
   5.4 The root DSA administrator, or the root DSA implementation
   (suitably tailored) must then administratively update each shadowed
   first level entry, so that they appear to have been created by a HOB,
   i.e. it is necessary to add a subordinate reference to each one of
   them. The subordinate reference will point to the respective master
   first level DSA, and will comprise of a specific knowledge attribute,
   and the DSE bit of type subr being set. The contents of the specific
   knowledge attribute can be created from the contents of the supplier
   knowledge attribute already present in the first level entry and
   created by the &quot;spot&quot; shadowing agreement.
</t>
</section>
<!-- RFC original section: (6) -->
<section title="The Long Term Solution">
<t>
   6.1 Each master first level DSA will have a hierarchical operational
   binding with the root DSA of the domain. Each master first level DSA
   will master one or more first level entries. The hierarchical
   operational binding will keep the appropriate subordinate
   reference(s) (of category shadow and master) up to date, as well as
   the other entry information that is needed for one-level Search
   operations (such as access controls, and attributes used in
   filtering).
</t>
<t>
   Whilst hierarchical agreements are standardised, this particular
   novel use of a HOB is not specifically recognised in the X.500
   Standard.  Although the ASN.1 will support it, there is no supporting
   text in the X.500 Standard. The following text supplements that in
   the X.500 Standard, and describes how a first level DSA may have a
   hierarchical operational binding with the root DSA of its domain.
</t>
<t>
   &quot;Clause 24 of ISO/IEC 9594-4:1993 shall also apply when a first level
   DSA is a subordinate DSA, and the root DSA of the domain is the
   superior DSA. The naming context held by the superior (root) DSA is
   the root naming context (or root context - the terms are synonymous)
   of the domain. The root context consists of the root entry of the DIT
   (which is empty) plus a complete set of subordinate DSEs (i.e. first
   level DSEs), one for each first level naming context in the domain,
   and their corresponding subentries.  The first level DSEs and their
   subentries will contain, in addition to specific knowledge attribute
   values of category master and shadow, sufficient attributes and
   collective attributes, including access control information, to allow
   List and one-level Search operations to be performed on them.
</t>
<t>
   In clause 24.1.2, the DistinguishedName of the immediateSuperior
   component of HierarchicalAgreement shall be null.&quot;
</t>
<t>
   6.2 The ASN.1 of hierarchical operational bindings already allows any
   attributes to be passed from the subordinate DSA to the superior DSA
   (SubordinateToSuperior parameter in clause 24.1.4.2 of X.518).
   However, a note in the 1993 edition of the X.500 Standard limits this
   to those which are required to perform a List operation. In the 1997
   edition of the X.500 Standard <xref target="_XREF_DAM.User"/> this restriction has been
   removed, so that the attributes may also be used for a one-level
   Search operation.
</t>
<t>
   1993 implementations of X.500 conforming to this RFC, shall also
   remove this restriction.
</t>
</section>
<!-- RFC original section: (7) -->
<section title="Security Considerations">
<t>
   Security considerations are discussed in this memo in relation to
   List and one-level Search operations. Each DSE has access control
   information associated with it, and these must be adhered to when the
   operations are performed.
</t>
</section>
<!-- RFC original section: (8) -->
<section title="Acknowledgments">
<t>
   The author would like to thank DANTE, without whose funding this work
   would not have been possible.
</t>
<t>
   The author would also like to thank Nexor, who reviewed the first
   version of this document in detail and provided valuable comments,
   and who first suggested the use of the DISP as a pragmatic solution
   for HOB establishment until the DOP becomes widely implemented.
</t>
<t>
   The author would also like to thank John Farrell from the ISODE
   Consortium, Andrew Palk   from Digital and Keith Richardson from ICL
   who attended the DANTE meeting, and contributed to the technical
   contents of the defect reports in Annexes 2 and 3.
</t>
</section>
<!-- RFC original section: (9) -->
<section title="References (BOILERPLATE)">
<t>
This RFC contained boilerplate in this section which has been moved
to the RFC2223-compliant unnumbered section &quot;References.&quot;
</t>
</section>
<!-- RFC original section: (10) -->
<section title="Author&apos;s Address (BOILERPLATE)">
<t>
This RFC contained boilerplate in this section which has been moved
to the RFC2223-compliant unnumbered section &quot;Author&apos;s Address.&quot;
</t>
</section>
</middle>
<back>
<!-- BEGIN INCLUDE REFERENCES ** DO NOT REMOVE -->
<references>
<reference anchor="_XREF_DAM.User">
<front>
<title abbrev="Draft Amendments on Minor Extensions to OSI">Draft Amendments on Minor Extensions to OSI Directory Service to support User Requirements</title>
<author>
<organization/>
</author>
<date month="August" year="1995"/>
</front>
</reference>
<reference anchor="_XREF_ENV.41215">
<front>
<title abbrev="Behaviour of DSAs for Distributed">Behaviour of DSAs for Distributed Operations, &quot;, European X.500 Pre-Standard</title>
<author>
<organization/>
</author>
<date month="December" year="1992"/>
</front>
</reference>
<reference anchor="_XREF_ISP.10615.6">
<front>
<title abbrev="DSA Support of Distributed Operations">DSA Support of Distributed Operations, &quot;, 5th draft pDISP</title>
<author>
<organization/>
</author>
<date month="October" year="1994"/>
</front>
</reference>
<reference anchor="_XREF_Mins">
<front>
<title abbrev="Notes of DANTE meeting to discuss">Notes of DANTE meeting to discuss Managing the Root Naming Context. 18,&quot; D W Chadwick, circulated to IDS mailing list</title>
<author>
<organization/>
</author>
<date month="June" year="1996"/>
</front>
</reference>
<reference anchor="_XREF_NADF.7">
<front>
<title abbrev="SD-7 Mapping the North American DIT onto Directory">SD-7 &quot;Mapping the North American DIT onto Directory Management Domains&quot;, North American Directory Forum, V 8.0</title>
<author>
<organization/>
</author>
<date month="January" year="1993"/>
</front>
</reference>
<reference anchor="_XREF_RFC.1276">
<front>
<title abbrev="Replication and Distributed Operations">Replication and Distributed Operations extensions to provide an Internet Directory using X.500, &quot;, UCL</title>
<author initials="S." surname="Kille" fullname="S. Kille">
<organization/>
</author>
<date month="November" year="1991"/>
</front>
</reference>
<reference anchor="_XREF_UK.142">
<front>
<title abbrev="Defect report number 142">Defect report number 142, submitted by the UK to ISO, (Proposed solution text included in Annex 1</title>
<author>
<organization/>
</author>
<date month="March" year="1995"/>
</front>
</reference>
<reference anchor="_XREF_X.500.93">
<front>
<title abbrev="X.500 | 9594.Part 1 Overview of Concepts">X.500 | 9594.Part 1 Overview of Concepts, Models and Services X.501 | 9594.Part 2 Models X.511 | 9594.Part 3 Abstract Service Definition X.518 | 9594.Part 4 Procedures for Distributed Operations X.519 | 9594.Part 5 Protocol Specifications X.520 | 9594.Part 6 Selected Attribute Types X.521 | 9594.Part 7 Selected Object Classes X.509 | 9594.Part 8 Authentication Framework X.525 | 9594.Part 9 Replication</title>
<author>
<organization/>
</author>
<date month="" year=""/>
</front>
</reference>
</references>
<!-- END INCLUDE REFERENCES ** DO NOT REMOVE -->
<section title="Annex">
<t>
Annex's were stripped out during transformation and will be replaced.
Refer to the text version at <eref target="http://memory.palace.org/public/rfcs/txt/rfc2120.txt"/>.
</t>
</section>
</back>
</rfc>
