RFC 3674

Feature Discovery in Lightweight Directory Access Protocol (LDAP)

๐Ÿ“… published December 2003, from ietf

RFC 3674: Feature Discovery in LDAP ๐Ÿ’–

Okay bestie, so this is RFC 3674, titled Feature Discovery in Lightweight Directory Access Protocol (LDAP) ๐ŸŽ€ It was written by K. Zeilenga from the OpenLDAP Foundation, dated December 2003, and it's on the Standards Track ๐Ÿ‘‘ The original doesn't list anything it obsoletes or updates, so there's no drama there โœจ


Status of this Memo ๐Ÿ“‹

This document specifies an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements ๐Ÿซถ For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ๐ŸŒธ

Copyright (C) The Internet Society (2003). All Rights Reserved. ๐Ÿ’œ

Abstract ๐Ÿฆ‹

LDAP is an extensible protocol with a bunch of elective features, and this doc introduces a general mechanism for discovering elective features and extensions that existing mechanisms can't find ๐Ÿงš

1. Background and Intended Use ๐ŸŒˆ

Okay so LDAP (the Lightweight Directory Access Protocol) [RFC3377] is extensible and has tons of elective features ๐Ÿ’… LDAP already lets a client find out supported protocol versions, controls, extended operations, Simple Authentication and Security Layer (SASL) mechanisms, and subschema information. But those mechanisms weren't built for general feature discovery, so ngl they're not enough ๐Ÿ˜ญ

This document describes a simple, general-purpose mechanism that clients can use to discover the set of elective features a server supports โœจ For example, a client could use it to find out whether the server supports requests for all operational attributes, e.g., "+" [RFC3673]. Another example: it could discover absolute true, e.g., (&), and false, e.g., (|), search filters [T-F] support ๐Ÿ“

This document also extends the LDAP Protocol Mechanism registry [RFC3383] so values of the supportedFeatures attribute can be registered ๐ŸŽ€ That registry is managed by the Internet Assigned Numbers Authority (IANA) ๐ŸŒธ

Schema definitions are written using LDAP description formats [RFC2252]. The definitions in this doc are line wrapped so they're easier to read ๐Ÿ’–

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] ๐Ÿซถ

2. Discovery of supported features ๐Ÿ”

Each elective feature whose support may be discovered SHALL be identified by an Object Identifier (OID) ๐Ÿ”ฅ A server advertises that it supports a feature by providing the OID for that feature as a value of the 'supportedFeatures' attribute in the root DSE. A client can look at the values of this attribute to see whether a particular feature is supported by the server. A client MUST ignore any values it doesn't recognize, since those refer to elective features it doesn't implement ๐Ÿ’…

Features tied to Standard Track protocol mechanisms MUST be registered ๐Ÿ‘‘ Features tied to other protocol mechanisms SHOULD be registered ๐ŸŒˆ Procedures for registering protocol mechanisms are described in BCP 64 [RFC3383]. The word "Feature" should be placed in the usage field of the submitted LDAP Protocol Mechanism template โœจ

The 'supportedFeatures' attribute type is described like this:

   ( 1.3.6.1.4.1.4203.1.3.5
     NAME 'supportedFeatures'
     DESC 'features supported by the server'
     EQUALITY objectIdentifierMatch
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
     USAGE dSAOperation )

Servers MUST be able to recognize this attribute type by the name 'supportedFeatures'. Servers MAY recognize the attribute type by other names too ๐Ÿงš

3. Security Considerations ๐Ÿ”

Okay, real talk, this one is important ๐Ÿšจ Rogue clients can already find out a server's features by other means (like trial and error), so this feature discovery mechanism is not believed to introduce any new security risk to LDAP ๐Ÿ™ˆ

4. IANA Considerations ๐Ÿ›๏ธ

4.1. Registration of Features as Protocol Mechanisms ๐ŸŽ€

Future specifications that detail LDAP features are to register each feature as an LDAP Protocol Mechanism, following the guidance in BCP 64 [RFC3383]. A usage of "Feature" in a Protocol Mechanism registration template means the value being registered is associated with an LDAP feature ๐Ÿ’œ

4.2. Registration of the supportedFeatures descriptor ๐Ÿฆ‹

The IANA has registered the LDAP 'supportedFeatures' descriptor ๐ŸŒธ The following registration template is suggested:

   Subject: Request for LDAP Descriptor Registration
   Descriptor (short name): supportedFeatures
   Object Identifier: 1.3.6.1.4.1.4203.1.3.5
   Person & email address to contact for further information:
       Kurt Zeilenga <kurt@OpenLDAP.org>
   Usage: Attribute Type
   Specification: RFC 3674
   Author/Change Controller: IESG

This OID was assigned [ASSIGN] by the OpenLDAP Foundation under its IANA assigned private enterprise allocation [PRIVATE] for use in this specification ๐Ÿ’–

5. Acknowledgment ๐Ÿซถ

This document is based on input from the IETF LDAPEXT working group ๐ŸŒท

6. Intellectual Property Statement โš–๏ธ

The IETF takes no position on the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described here, or on whether any license under such rights might be available. It also doesn't claim to have made any effort to identify such rights. Information on the IETF's procedures for rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication, and any assurances of licenses to be made available, or the results of an attempt to get a general license or permission for implementers or users of this specification to use such proprietary rights, can be obtained from the IETF Secretariat ๐Ÿ“„

The IETF invites any interested party to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that may cover technology required to practice this standard. Please send that information to the IETF Executive Director ๐Ÿ’Œ

7. References ๐Ÿ“š

7.1. Normative References ๐ŸŒŸ

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC2252] Wahl, M., Coulbeck, A., Howes, T. and S. Kille, "Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions", RFC 2252, December 1997.
  • [RFC3377] Hodges, J. and R. Morgan, "Lightweight Directory Access Protocol (v3): Technical Specification", RFC 3377, September 2002.
  • [RFC3383] Zeilenga, K., "Internet Assigned Numbers Authority (IANA) Considerations for Lightweight Directory Access Protocol (LDAP)", BCP 64, RFC 3383, September 2002.

7.2. Informative References ๐Ÿ’ก

8. Author's Address ๐Ÿ“ฎ

Kurt D. Zeilenga OpenLDAP Foundation

EMail: Kurt@OpenLDAP.org ๐Ÿ’Œ

Copyright (C) The Internet Society (2003). 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 assignees โœจ

This document and the information contained herein is provided on an "AS IS" basis, and 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 ๐Ÿฆ‹

Acknowledgement ๐Ÿซถ

Funding for the RFC Editor function is currently provided by the Internet Society ๐Ÿ’–

๐Ÿ“ฆ where this page comes from