RFC 3698

Lightweight Directory Access Protocol (LDAP): Additional Matching Rules

πŸ“… published February 2004, from ietf

Lightweight Directory Access Protocol (LDAP): Additional Matching Rules πŸŽ€

Bestie, this is RFC 3698!! ✨ Its full title is Lightweight Directory Access Protocol (LDAP): Additional Matching Rules. It's from the Network Working Group, numbered Request for Comments: 3698, and it was written by K. Zeilenga, Ed. of the OpenLDAP Foundation in February 2004. It's a Standards Track doc, and it updates RFC 2798 πŸ¦‹


Status of This Memo πŸ’…

Okay so this doc is an Internet standards track protocol for the Internet community, and it's asking everyone for discussion and suggestions to make it better 🫢 If you want to know where this protocol actually stands in standardization, check the current edition of "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited. 🌸

Copyright (C) The Internet Society (2004). All Rights Reserved.

Abstract πŸ’œ

This doc gives you a collection of matching rules for use with the Lightweight Directory Access Protocol (LDAP). Here's the tea: these rules are basically simple adaptations of matching rules already specified for the X.500 Directory, so most of them are already in wide use πŸ”₯

Table of Contents 🧚

1.  Background and Intended Use. . . . . . . . . . . . . . . . . .  2
2.  Matching Rules . . . . . . . . . . . . . . . . . . . . . . . .  2
    2.1.  booleanMatch . . . . . . . . . . . . . . . . . . . . . .  2
    2.2.  caseExactMatch . . . . . . . . . . . . . . . . . . . . .  2
    2.3.  caseExactOrderingMatch . . . . . . . . . . . . . . . . .  3
    2.4.  caseExactSubstringsMatch . . . . . . . . . . . . . . . .  3
    2.5.  caseIgnoreListSubstringsMatch. . . . . . . . . . . . . .  3
    2.6.  directoryStringFirstComponentMatch . . . . . . . . . . .  4
    2.7.  integerOrderingMatch . . . . . . . . . . . . . . . . . .  4
    2.8.  keywordMatch . . . . . . . . . . . . . . . . . . . . . .  4
    2.9.  numericStringOrderingMatch . . . . . . . . . . . . . . .  5
    2.10. octetStringOrderingMatch . . . . . . . . . . . . . . . .  5
    2.11. storedPrefixMatch. . . . . . . . . . . . . . . . . . . .  5
    2.12. wordMatch. . . . . . . . . . . . . . . . . . . . . . . .  6
3.  Security Considerations. . . . . . . . . . . . . . . . . . . .  6
4.  IANA Considerations. . . . . . . . . . . . . . . . . . . . . .  6
5.  Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . .  7
6.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  7
    6.1.  Normative References . . . . . . . . . . . . . . . . . .  7
    6.2.  Informative References . . . . . . . . . . . . . . . . .  7
7.  Author's Address . . . . . . . . . . . . . . . . . . . . . . .  8
8.  Full Copyright Statement . . . . . . . . . . . . . . . . . . .  9

1. Background and Intended Use ✨

Okay, so this doc adapts additional X.500 Directory [X.500] matching rules [X.520] so they can be used with the Lightweight Directory Access Protocol (LDAP) [RFC3377]. Most of these rules are already widely used across the Internet, for example to support the inetOrgPerson [RFC2798] and Policy Core Information Model [RFC3703] LDAP schemas. They're applicable to lots of other applications too 🌈

This doc supersedes the informational matching rules descriptions in RFC 2798 that are now provided here. Specifically, section 2 of this document replaces section 9.3.3 of RFC 2798. Main character energy, a clean handoff πŸ’…

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

2. Matching Rules πŸ’–

2.1. booleanMatch πŸ¦‹

The booleanMatch rule compares for equality an asserted Boolean value with an attribute value of BOOLEAN syntax. It returns TRUE if and only if the values are the same, meaning both are TRUE or both are FALSE. (Source: X.520) πŸ’œ

( 2.5.13.13 NAME 'booleanMatch'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )

The BOOLEAN (1.3.6.1.4.1.1466.115.121.1.7) syntax is described in [RFC2252].

2.2. caseExactMatch 🌸

The caseExactMatch rule compares for equality the asserted value with an attribute value of DirectoryString syntax. It's identical to the caseIgnoreMatch [RFC2252] rule, except that case is not ignored. (Source: X.520) 🫢

( 2.5.13.5 NAME 'caseExactMatch'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

The DirectoryString (1.3.6.1.4.1.1466.115.121.1.15) syntax is described in [RFC2252].

2.3. caseExactOrderingMatch 🧚

The caseExactOrderingMatch rule compares the collation order of the asserted string with an attribute value of DirectoryString syntax. It's identical to the caseIgnoreOrderingMatch [RFC2252] rule, except that letters are not folded. (Source: X.520) πŸ‘‘

( 2.5.13.6 NAME 'caseExactOrderingMatch'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

The DirectoryString (1.3.6.1.4.1.1466.115.121.1.15) syntax is described in [RFC2252].

2.4. caseExactSubstringsMatch πŸ’…

The caseExactSubstringsMatch rule figures out whether the asserted value(s) are substrings of an attribute value of DirectoryString syntax. It's identical to the caseIgnoreSubstringsMatch [RFC2252] rule, except that case is not ignored. (Source: X.520) ✨

( 2.5.13.7 NAME 'caseExactSubstringsMatch'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )

The SubstringsAssertion (1.3.6.1.4.1.1466.115.121.1.58) syntax is described in [RFC2252].

2.5. caseIgnoreListSubstringsMatch 🌈

The caseIgnoreListSubstringMatch rule compares the asserted substring with an attribute value that's a sequence of DirectoryStrings, where case (upper or lower) doesn't matter for comparison. The asserted value matches a stored value if and only if it matches the string formed by concatenating the strings of the stored value. This matching is done according to the caseIgnoreSubstringsMatch [RFC2252] rule. However, none of the initial, any, or final values of the asserted value are considered to match a substring of the concatenated string that spans more than one of the strings of the stored value. (Source: X.520) πŸ”₯

( 2.5.13.12 NAME 'caseIgnoreListSubstringsMatch'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )

The SubstringsAssertion (1.3.6.1.4.1.1466.115.121.1.58) syntax is described in [RFC2252].

2.6. directoryStringFirstComponentMatch πŸŽ€

The directoryStringFirstComponentMatch rule compares for equality the asserted DirectoryString value with an attribute value of type SEQUENCE whose first component is mandatory and of type DirectoryString. It returns TRUE if and only if the attribute value has a first component whose value matches the asserted DirectoryString using the rules of caseIgnoreMatch [RFC2252]. A value of the assertion syntax is derived from a value of the attribute syntax by using the value of the first component of the SEQUENCE. (Source: X.520) πŸ’–

( 2.5.13.31 NAME 'directoryStringFirstComponentMatch'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

The DirectoryString (1.3.6.1.4.1.1466.115.121.1.15) syntax is described in [RFC2252].

4. IANA Considerations ✨

IANA has updated the LDAP descriptors registry [RFC3383] πŸ—‚οΈ, and this is the template they used for it. It's giving official paperwork energy πŸ’…

    Subject: Request for LDAP Descriptor Registration Update
    Descriptor (short name): see comment
    Object Identifier: see comments
    Person & email address to contact for further information:
        Kurt Zeilenga <kurt@OpenLDAP.org>
    Usage: see comments
    Specification: RFC 3698
    Author/Change Controller: IESG
    Comments:

    The following descriptors have been added:

      NAME                               Type OID
      ------------------------           ---- ---------
      booleanMatch                       M    2.5.13.13
      caseExactMatch                     M    2.5.13.5
      caseExactOrderingMatch             M    2.5.13.6
      caseExactSubstringsMatch           M    2.5.13.7
      caseIgnoreListSubstringsMatch      M    2.5.13.12
      directoryStringFirstComponentMatch M    2.5.13.31
      integerOrderingMatch               M    2.5.13.15
      keywordMatch                       M    2.5.13.33
      numericStringOrderingMatch         M    2.5.13.9
      octetStringOrderingMatch           M    2.5.13.18
      storedPrefixMatch                  M    2.5.13.41
      wordMatch                          M    2.5.13.32

    where Type M is Matching Rule.

So basically, this doc isn't making up any new OIDs πŸ™…β€β™€οΈ It just attaches LDAP matching rule descriptions to X.500 matching rules that already exist. Bestie, that's a glow-up with zero new numbers 🌸

5. Acknowledgments 🫢

This document borrows from [X.520], an ITU-T Recommendation. Thank you, ITU-T πŸ’œ

6. References πŸ“š

6.1. Normative References

  • [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.

6.2. Informative References

  • [RFC2798] Smith, M., "The LDAP inetOrgPerson Object Class", RFC 2798, April 2000.
  • [RFC3383] Zeilenga, K., "IANA Considerations for LDAP", BCP 64 RFC 3383, September 2002.
  • [RFC3703] Strassner, J., Moore, B., Moats, R. and E. Ellesson, "Policy Core LDAP Schema", RFC 3703, February 2004.
  • [X.500] International Telecommunication Union - Telecommunication Standardization Sector, "The Directory -- Overview of concepts, models and services," X.500(1993) (also ISO/IEC 9594-1:1994).
  • [X.520] International Telecommunication Union - Telecommunication Standardization Sector, "The Directory: Selected Attribute Types", X.520(1997).

7. Author's Address πŸ–ŠοΈ

Kurt D. Zeilenga OpenLDAP Foundation

EMail: Kurt@OpenLDAP.org

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78 and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.

Intellectual Property πŸ”

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

Acknowledgement 🌈

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

πŸ“¦ where this page comes from