INTERNET-DRAFT Editor: Kurt D. Zeilenga Intended Category: Standard Track OpenLDAP Foundation Expires: 15 April 2002 15 October 2001 Subentries in LDAP 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 . Please send editorial comments directly to the author . 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 . The list of Internet-Draft Shadow Directories can be accessed at . 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 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]