INTERNET-DRAFT                           Editor:  Kurt D. Zeilenga
Intended Category: Standard Track                 OpenLDAP Foundation
Expires: 15 April 2002                            15 October 2001



                            Subentries in LDAP
                  <draft-zeilenga-ldap-subentry-00.txt>


Status of this Memo

  This document is an Internet-Draft and is in full conformance with all
  provisions of Section 10 of RFC2026.

  This document is intended to be, after appropriate review and
  revision, submitted to the RFC Editor as a Informational document.
  Distribution of this memo is unlimited.  Technical discussion of this
  document will take place on the IETF LDAP Extension Working Group
  mailing list <ietf-ldapext@netscape.com>.  Please send editorial
  comments directly to the author <Kurt@OpenLDAP.org>.

  Internet-Drafts are working documents of the Internet Engineering Task
  Force (IETF), its areas, and its working groups.  Note that other
  groups may also distribute working documents as Internet-Drafts.
  Internet-Drafts are draft documents valid for a maximum of six months
  and may be updated, replaced, or obsoleted by other documents at any
  time.  It is inappropriate to use Internet-Drafts as reference
  material or to cite them other than as ``work in progress.''

  The list of current Internet-Drafts can be accessed at
  <http://www.ietf.org/ietf/1id-abstracts.txt>. The list of
  Internet-Draft Shadow Directories can be accessed at
  <http://www.ietf.org/shadow.html>.

  Copyright 2001, The Internet Society.  All Rights Reserved.

  Please see the Copyright section near the end of this document for
  more information.


Abstract

  Subentries are special entries used to hold information associated
  with a subtree or subtree refinement [X.501].  This document adapts
  X.500 subentries mechanisms for use with LDAP [LDAPTS].





Zeilenga             draft-zeilenga-ldap-subentry-00            [Page 1]


INTERNET-DRAFT             Subentries in LDAP            15 October 2001


Conventions

  Schema definitions are provided using LDAPv3 description formats
  [RFC2252].

  The key words ``MUST'', ``MUST NOT'', ``REQUIRED'', ``SHALL'', ``SHALL
  NOT'', ``SHOULD'', ``SHOULD NOT'', ``RECOMMENDED'',  and ``MAY'' in
  this document are to be interpreted as described in RFC 2119
  [RFC2119].


1. Overview

  From X.501 [X.501]:
      A subentry is a special kind of entry immediately subordinate to
      an administrative point.  It contains attributes that pertain to a
      subtree (or subtree refinement) associated with its administrative
      point.  The subentries and their administrative point are part of
      the same naming context.

      A single subentry may serve all or several aspects of
      administrative authority.  Alternatively, a specific aspect of
      administrative authority may be handled through one or more of its
      own subentries.

  LDAP subentries SHALL behave in accordance with X.501 unless noted
  otherwise in this specification.

  In absence of the subentries control (detailed in Section 4),
  subentries SHALL NOT be considered in one-level and subtree scope
  search operations (unlike X.501).  For all other operations, including
  base scope search operations, subentries SHALL be considered.


2. Subentry Schema

2.1. Subtree Specification Syntax

  This syntax is described in X.501, Section 11.3.  The ASN.1 data type
  definition is provided here for completeness.

      SubtreeSpecification ::= SEQUENCE {
          base                [0] LocalName DEFAULT { },
                                  COMPONENTS OF ChopSpecification,
          specificationFilter [4] Refinement OPTIONAL }


      ChopSpecification ::= SEQUENCE {



Zeilenga             draft-zeilenga-ldap-subentry-00            [Page 2]


INTERNET-DRAFT             Subentries in LDAP            15 October 2001


          specificExclusions  [1] SET OF CHOICE {
                                  chopBefore [0] LocalName,
                                  chopAfter [1] LocalName } OPTIONAL,
          minimum             [2] BaseDistance DEFAULT 0,
          maximum             [3] BaseDistance OPTIONAL}

      BaseDistance ::= INTEGER (0 .. MAX)

      Refinement ::= CHOICE {
          item                [0] OBJECT-CLASS.&id,
          and                 [1] SET OF Refinement,
          or                  [2] SET OF Refinement,
          not                 [3] Refinement }

  The LDAP syntax specification is:

      ( OID-TBD DESC 'SubtreeSpecification' )

  Values of this syntax are be encoded as strings using the rules
  described in Section 8 of [COMPONENT].


2.2 Administrative Role Attribute Type

  The Administrative Model defined in X.501, clause 10 requires that
  administrative entries contain an administrativeRole attribute to
  indicate that the associated administrative area is concerned with one
  or more administrative roles.

  The administrativeRole operational attribute is specified as follows:

      ( id-oa-administrativeRole
          NAME 'administrativeRole'
          EQUALITY objectIdentifierMatch
          USAGE directoryOperation
          SYNTAX OID
      )

  The values of this attribute defined in X.501 are:

       OID            NAME
       --------  -------------------------------
      2.5.23.1   autonomousArea
      2.5.23.2   accessControlSpecificArea
      2.5.23.3   accessControlInnerArea
      2.5.23.4   subschemaAdminSpecificArea
      2.5.23.5   collectiveAttributeSpecificArea
      2.5.23.6   collectiveAttributeInnerArea



Zeilenga             draft-zeilenga-ldap-subentry-00            [Page 3]


INTERNET-DRAFT             Subentries in LDAP            15 October 2001


  Other values may be defined by in other specifications.  Names
  associated with each administrative role are Object Identifier
  Descriptors [LDAPIANA].

  The administrativeRole operational attribute is also used to regulate
  the subentries permitted to be subordinate to an administrative entry.
  A subentry not of a class permitted by the administrativeRole
  attribute cannot be subordinate to the administrative entry.


2.3. Subtree Specification Attribute Type

  The subtreeSpecification operational attribute is defined as follows:

      ( id-oa-subtreeSpecification
          NAME 'subtreeSpecification'
          SINGLE-VALUE
          USAGE directoryOperation
          SYNTAX subtreeSpecification
      )

  This attribute is present in all subentries.  See X.501, clause 10.


2.4. Subentry Object Class

  The subentry object class is a structural object class.

      ( id-sc-subentry
          NAME 'subentry'
          SUP top STRUCTURAL
          MUST ( cn $ subtreeSpecification ) )


3.   Subentries Control

  The subentries control may be sent with a searchRequest to control the
  visibility of subentries which are within scope.  Non-visible entries
  or subentries are not returned in response to the request.

  The subentries control is an LDAPv3 Control whose controlType is
  OID.TDB, criticality is True or False (hence absent), and controlValue
  is absent or contains a zero-length octet string.  An absent
  controlValue indicates that normal entries are visible and subentries
  are not.  An empty controlValue indicates that subentries are visible
  and normal entries are not.  A non-empty controlValue SHALL be treated
  as a protocol error.




Zeilenga             draft-zeilenga-ldap-subentry-00            [Page 4]


INTERNET-DRAFT             Subentries in LDAP            15 October 2001


  In absence of this control, subentries are not visible to one-level
  and subtree scope search requests but are visible to base scope search
  requests.

  This control is not appropriate for non-search operations.


4. Security Considerations

  Subentries often hold administrative information or other sensitive
  information and should be protected from unauthorized access and
  disclosure as described in [RFC2829][RFC2830].


5. Acknowledgment

  This document is based on engineering done by LDUP and LDAPext Working
  Groups including the "LDAP Subentry Schema" by Ed Reeds.  This
  document also borrows from a number of ITU documents including X.501.


6. Author's Address

  Kurt D. Zeilenga
  OpenLDAP Foundation
  <Kurt@OpenLDAP.org>


References

  [X.501]   "The Directory -- Models," ITU-T Rec. X.501(1993).

  [RFC2219] S. Bradner, "Key words for use in RFCs to Indicate
            Requirement Levels", RFC 2119, March 1997.

  [RFC2251] M. Wahl, T. Howes, S. Kille, "Lightweight Directory Access
            Protocol (v3)", RFC 2251, December 1997.

  [RFC2252] M. Wahl, A. Coulbeck, T. Howes, S. Kille, "Lightweight
            Directory Access Protocol (v3):  Attribute Syntax
            Definitions", RFC 2252, December 1997.

  [RFC2829] M. Wahl, H. Alvestrand, J. Hodges, R. Morgan,
            "Authentication Methods for LDAP", RFC 2829, May 2000

  [RFC2830] J. Hodges, R. Morgan, M. Wahl, "Lightweight Directory Access
            Protocol (v3): Extension for Transport Layer Security", RFC
            2830, May 2000.



Zeilenga             draft-zeilenga-ldap-subentry-00            [Page 5]


INTERNET-DRAFT             Subentries in LDAP            15 October 2001


  [LDAPTS]  J. Hodges, R.L. Morgan, "Lightweight Directory Access
            Protocol (v3): Technical Specification", draft-ietf-ldapbis-
            ldapv3-ts-00.txt, a work in progress.


Full Copyright

  Copyright 2001, The Internet Society.  All Rights Reserved.

  This document and translations of it may be copied and furnished to
  others, and derivative works that comment on or otherwise explain it
  or assist in its implementation may be prepared, copied, published and
  distributed, in whole or in part, without restriction of any kind,
  provided that the above copyright notice and this paragraph are
  included on all such copies and derivative works.  However, this
  document itself may not be modified in any way, such as by removing
  the copyright notice or references to the Internet Society or other
  Internet organizations, except as needed for the  purpose of
  developing Internet standards in which case the procedures for
  copyrights defined in the Internet Standards process must be followed,
  or as required to translate it into languages other than English.

  The limited permissions granted above are perpetual and will not be
  revoked by the Internet Society or its successors or assigns.

  This document and the information contained herein is provided on an
  "AS IS" basis and THE AUTHORS, THE INTERNET SOCIETY, AND THE INTERNET
  ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
  INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
  INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
  WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.




















Zeilenga             draft-zeilenga-ldap-subentry-00            [Page 6]