mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
508 lines
17 KiB
Plaintext
508 lines
17 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
Network Working Group K. Zeilenga, Ed.
|
||
Request for Comments: 3698 OpenLDAP Foundation
|
||
Updates: 2798 February 2004
|
||
Category: Standards Track
|
||
|
||
|
||
Lightweight Directory Access Protocol (LDAP):
|
||
Additional Matching Rules
|
||
|
||
Status of this Memo
|
||
|
||
This document specifies an Internet standards track protocol for the
|
||
Internet community, and requests discussion and suggestions for
|
||
improvements. Please refer to the current edition of the "Internet
|
||
Official Protocol Standards" (STD 1) for the standardization state
|
||
and status of this protocol. Distribution of this memo is unlimited.
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (C) The Internet Society (2004). All Rights Reserved.
|
||
|
||
Abstract
|
||
|
||
This document provides a collection of matching rules for use with
|
||
the Lightweight Directory Access Protocol (LDAP). As these matching
|
||
rules are simple adaptations of matching rules specified for use with
|
||
the X.500 Directory, most 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
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 1]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
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
|
||
|
||
This document adapts additional X.500 Directory [X.500] matching
|
||
rules [X.520] for use with the Lightweight Directory Access Protocol
|
||
(LDAP) [RFC3377]. Most of these rules are widely used today on the
|
||
Internet, such as in support of the inetOrgPerson [RFC2798] and
|
||
Policy Core Information Model [RFC3703] LDAP schemas. The rules are
|
||
applicable to many other applications.
|
||
|
||
This document supersedes the informational matching rules
|
||
descriptions provided in RFC 2798 that are now provided in this
|
||
document. Specifically, section 2 of this document replaces section
|
||
9.3.3 of RFC 2798.
|
||
|
||
Schema definitions are provided using LDAP description formats
|
||
[RFC2252]. Definitions provided here are formatted (line wrapped)
|
||
for readability.
|
||
|
||
2. Matching Rules
|
||
|
||
2.1. booleanMatch
|
||
|
||
The booleanMatch rule compares for equality a asserted Boolean value
|
||
with an attribute value of BOOLEAN syntax. The rule returns TRUE if
|
||
and only if the values are the same, i.e., 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. The rule is identical
|
||
to the caseIgnoreMatch [RFC2252] rule except that case is not
|
||
ignored. (Source: X.520)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 2]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
( 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.
|
||
The rule is 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 determines whether the asserted
|
||
value(s) are substrings of an attribute value of DirectoryString
|
||
syntax. The rule is 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 which is a sequence of DirectoryStrings, but
|
||
where the case (upper or lower) is not significant for comparison
|
||
purposes. The asserted value matches a stored value if and only if
|
||
the asserted value 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 which 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 )
|
||
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 3]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
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. The rule 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].
|
||
|
||
2.7. integerOrderingMatch
|
||
|
||
The integerOrderingMatch rule compares the ordering of the asserted
|
||
integer with an attribute value of INTEGER syntax. The rule returns
|
||
True if the attribute value is less than the asserted value. (Source:
|
||
X.520)
|
||
|
||
( 2.5.13.15 NAME 'integerOrderingMatch'
|
||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
|
||
|
||
The INTEGER (1.3.6.1.4.1.1466.115.121.1.27) syntax is described in
|
||
[RFC2252].
|
||
|
||
2.8. keywordMatch
|
||
|
||
The keywordMatch rule compares the asserted string with keywords in
|
||
an attribute value of DirectoryString syntax. The rule returns TRUE
|
||
if and only if the asserted value matches any keyword in the
|
||
attribute value. The identification of keywords in an attribute
|
||
value and of the exactness of match are both implementation specific.
|
||
(Source: X.520)
|
||
|
||
( 2.5.13.33 NAME 'keywordMatch'
|
||
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].
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 4]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
2.9. numericStringOrderingMatch
|
||
|
||
The numericStringOrderingMatch rule compares the collation order of
|
||
the asserted string with an attribute value of NumericString syntax.
|
||
The rule is identical to the caseIgnoreOrderingMatch [RFC2252] rule
|
||
except that all space characters are skipped during comparison (case
|
||
is irrelevant as characters are numeric). (Source: X.520)
|
||
|
||
( 2.5.13.9 NAME 'numericStringOrderingMatch'
|
||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 )
|
||
|
||
The NumericString (1.3.6.1.4.1.1466.115.121.1.36) syntax is described
|
||
in [RFC2252].
|
||
|
||
2.10. octetStringOrderingMatch
|
||
|
||
The octetStringOrderingMatch rule compares the collation order of the
|
||
asserted octet string with an attribute value of OCTET STRING syntax.
|
||
The rule compares octet strings from first octet to last octet, and
|
||
from the most significant bit to the least significant bit within the
|
||
octet. The first occurrence of a different bit determines the
|
||
ordering of the strings. A zero bit precedes a one bit. If the
|
||
strings are identical but contain different numbers of octets, the
|
||
shorter string precedes the longer string. (Source: X.520)
|
||
|
||
( 2.5.13.18 NAME 'octetStringOrderingMatch'
|
||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
|
||
|
||
The OCTET STRING (1.3.6.1.4.1.1466.115.121.1.40) syntax is described
|
||
in [RFC2252].
|
||
|
||
2.11. storedPrefixMatch
|
||
|
||
The storedPrefixMatch rule determines whether an attribute value,
|
||
whose syntax is DirectoryString is a prefix (i.e., initial substring)
|
||
of the asserted value, without regard to the case (upper or lower) of
|
||
the strings. The rule returns TRUE if and only if the attribute
|
||
value is an initial substring of the asserted value with
|
||
corresponding characters identical except possibly with regard to
|
||
case. (Source: X.520)
|
||
|
||
( 2.5.13.41 NAME 'storedPrefixMatch'
|
||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 5]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
Note: This rule can be used, for example, to compare values in the
|
||
Directory which are telephone area codes with a purported value
|
||
which is a telephone number.
|
||
|
||
The DirectoryString (1.3.6.1.4.1.1466.115.121.1.15) syntax is
|
||
described in [RFC2252].
|
||
|
||
2.12. wordMatch
|
||
|
||
The wordMatch rule compares the asserted string with words in an
|
||
attribute value of DirectoryString syntax. The rule returns TRUE if
|
||
and only if the asserted word matches any word in the attribute
|
||
value. Individual word matching is as for the caseIgnoreMatch
|
||
[RFC2252] matching rule. The precise definition of a "word" is
|
||
implementation specific. (Source: X.520)
|
||
|
||
( 2.5.13.32 NAME 'wordMatch'
|
||
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].
|
||
|
||
3. Security Considerations
|
||
|
||
General LDAP security considerations [RFC3377] is applicable to the
|
||
use of this schema. Additional considerations are noted above where
|
||
appropriate.
|
||
|
||
4. IANA Considerations
|
||
|
||
The Internet Assigned Numbers Authority (IANA) has updated the LDAP
|
||
descriptors registry [RFC3383] as indicated in the following
|
||
template:
|
||
|
||
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:
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 6]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
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.
|
||
|
||
This document makes no new OID assignments. It only associates LDAP
|
||
matching rule descriptions with existing X.500 matching rules.
|
||
|
||
5. Acknowledgments
|
||
|
||
This document borrows from [X.520], an ITU-T Recommendation.
|
||
|
||
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.
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 7]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules 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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 8]
|
||
|
||
RFC 3698 LDAP: Additional Matching Rules February 2004
|
||
|
||
|
||
8. Full Copyright Statement
|
||
|
||
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.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Zeilenga Standards Track [Page 9]
|
||
|