source: vendor/current/source4/ldap_server/devdocs/rfc4517.txt@ 414

Last change on this file since 414 was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 111.6 KB
Line 
1
2
3
4
5
6
7Network Working Group S. Legg, Ed.
8Request for Comments: 4517 eB2Bcom
9Obsoletes: 2252, 2256 June 2006
10Updates: 3698
11Category: Standards Track
12
13
14 Lightweight Directory Access Protocol (LDAP):
15 Syntaxes and Matching Rules
16
17
18Status of This Memo
19
20 This document specifies an Internet standards track protocol for the
21 Internet community, and requests discussion and suggestions for
22 improvements. Please refer to the current edition of the "Internet
23 Official Protocol Standards" (STD 1) for the standardization state
24 and status of this protocol. Distribution of this memo is unlimited.
25
26Copyright Notice
27
28 Copyright (C) The Internet Society (2006).
29
30Abstract
31
32 Each attribute stored in a Lightweight Directory Access Protocol
33 (LDAP) directory, whose values may be transferred in the LDAP
34 protocol, has a defined syntax that constrains the structure and
35 format of its values. The comparison semantics for values of a
36 syntax are not part of the syntax definition but are instead provided
37 through separately defined matching rules. Matching rules specify an
38 argument, an assertion value, which also has a defined syntax. This
39 document defines a base set of syntaxes and matching rules for use in
40 defining attributes for LDAP directories.
41
42Table of Contents
43
44 1. Introduction ....................................................3
45 2. Conventions .....................................................4
46 3. Syntaxes ........................................................4
47 3.1. General Considerations .....................................5
48 3.2. Common Definitions .........................................5
49 3.3. Syntax Definitions .........................................6
50 3.3.1. Attribute Type Description ..........................6
51 3.3.2. Bit String ..........................................6
52 3.3.3. Boolean .............................................7
53 3.3.4. Country String ......................................7
54 3.3.5. Delivery Method .....................................8
55
56
57
58Legg Standards Track [Page 1]
59
60
61RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
62
63
64 3.3.6. Directory String ....................................8
65 3.3.7. DIT Content Rule Description ........................9
66 3.3.8. DIT Structure Rule Description .....................10
67 3.3.9. DN .................................................10
68 3.3.10. Enhanced Guide ....................................11
69 3.3.11. Facsimile Telephone Number ........................12
70 3.3.12. Fax ...............................................12
71 3.3.13. Generalized Time ..................................13
72 3.3.14. Guide .............................................14
73 3.3.15. IA5 String ........................................15
74 3.3.16. Integer ...........................................15
75 3.3.17. JPEG ..............................................15
76 3.3.18. LDAP Syntax Description ...........................16
77 3.3.19. Matching Rule Description .........................16
78 3.3.20. Matching Rule Use Description .....................17
79 3.3.21. Name and Optional UID .............................17
80 3.3.22. Name Form Description .............................18
81 3.3.23. Numeric String ....................................18
82 3.3.24. Object Class Description ..........................18
83 3.3.25. Octet String ......................................19
84 3.3.26. OID ...............................................19
85 3.3.27. Other Mailbox .....................................20
86 3.3.28. Postal Address ....................................20
87 3.3.29. Printable String ..................................21
88 3.3.30. Substring Assertion ...............................22
89 3.3.31. Telephone Number ..................................23
90 3.3.32. Teletex Terminal Identifier .......................23
91 3.3.33. Telex Number ......................................24
92 3.3.34. UTC Time ..........................................24
93 4. Matching Rules .................................................25
94 4.1. General Considerations ....................................25
95 4.2. Matching Rule Definitions .................................27
96 4.2.1. bitStringMatch .....................................27
97 4.2.2. booleanMatch .......................................28
98 4.2.3. caseExactIA5Match ..................................28
99 4.2.4. caseExactMatch .....................................29
100 4.2.5. caseExactOrderingMatch .............................29
101 4.2.6. caseExactSubstringsMatch ...........................30
102 4.2.7. caseIgnoreIA5Match .................................30
103 4.2.8. caseIgnoreIA5SubstringsMatch .......................31
104 4.2.9. caseIgnoreListMatch ................................31
105 4.2.10. caseIgnoreListSubstringsMatch .....................32
106 4.2.11. caseIgnoreMatch ...................................33
107 4.2.12. caseIgnoreOrderingMatch ...........................33
108 4.2.13. caseIgnoreSubstringsMatch .........................34
109 4.2.14. directoryStringFirstComponentMatch ................34
110 4.2.15. distinguishedNameMatch ............................35
111 4.2.16. generalizedTimeMatch ..............................36
112
113
114
115Legg Standards Track [Page 2]
116
117
118RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
119
120
121 4.2.17. generalizedTimeOrderingMatch ......................36
122 4.2.18. integerFirstComponentMatch ........................36
123 4.2.19. integerMatch ......................................37
124 4.2.20. integerOrderingMatch ..............................37
125 4.2.21. keywordMatch ......................................38
126 4.2.22. numericStringMatch ................................38
127 4.2.23. numericStringOrderingMatch ........................39
128 4.2.24. numericStringSubstringsMatch ......................39
129 4.2.25. objectIdentifierFirstComponentMatch ...............40
130 4.2.26. objectIdentifierMatch .............................40
131 4.2.27. octetStringMatch ..................................41
132 4.2.28. octetStringOrderingMatch ..........................41
133 4.2.29. telephoneNumberMatch ..............................42
134 4.2.30. telephoneNumberSubstringsMatch ....................42
135 4.2.31. uniqueMemberMatch .................................43
136 4.2.32. wordMatch .........................................44
137 5. Security Considerations ........................................44
138 6. Acknowledgements ...............................................44
139 7. IANA Considerations ............................................45
140 8. References .....................................................46
141 8.1. Normative References ......................................46
142 8.2. Informative References ....................................48
143 Appendix A. Summary of Syntax Object Identifiers ..................49
144 Appendix B. Changes from RFC 2252 .................................49
145
1461. Introduction
147
148 Each attribute stored in a Lightweight Directory Access Protocol
149 (LDAP) directory [RFC4510], whose values may be transferred in the
150 LDAP protocol [RFC4511], has a defined syntax (i.e., data type) that
151 constrains the structure and format of its values. The comparison
152 semantics for values of a syntax are not part of the syntax
153 definition but are instead provided through separately defined
154 matching rules. Matching rules specify an argument, an assertion
155 value, which also has a defined syntax. This document defines a base
156 set of syntaxes and matching rules for use in defining attributes for
157 LDAP directories.
158
159 Readers are advised to familiarize themselves with the Directory
160 Information Models [RFC4512] before reading the rest of this
161 document. Section 3 provides definitions for the base set of LDAP
162 syntaxes. Section 4 provides definitions for the base set of
163 matching rules for LDAP.
164
165 This document is an integral part of the LDAP technical specification
166 [RFC4510], which obsoletes the previously defined LDAP technical
167 specification, RFC 3377, in its entirety.
168
169
170
171
172Legg Standards Track [Page 3]
173
174
175RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
176
177
178 Sections 4, 5, and 7 of RFC 2252 are obsoleted by [RFC4512]. The
179 remainder of RFC 2252 is obsoleted by this document. Sections 6 and
180 8 of RFC 2256 are obsoleted by this document. The remainder of RFC
181 2256 is obsoleted by [RFC4519] and [RFC4512]. All but Section 2.11
182 of RFC 3698 is obsoleted by this document.
183
184 A number of schema elements that were included in the previous
185 revision of the LDAP technical specification are not included in this
186 revision of LDAP. Public Key Infrastructure schema elements are now
187 specified in [RFC4523]. Unless reintroduced in future technical
188 specifications, the remainder are to be considered Historic.
189
190 The changes with respect to RFC 2252 are described in Appendix B of
191 this document.
192
1932. Conventions
194
195 In this document, the key words "MUST", "MUST NOT", "REQUIRED",
196 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
197 and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119
198 [RFC2119].
199
200 Syntax definitions are written according to the <SyntaxDescription>
201 ABNF [RFC4234] rule specified in [RFC4512], and matching rule
202 definitions are written according to the <MatchingRuleDescription>
203 ABNF rule specified in [RFC4512], except that the syntax and matching
204 rule definitions provided in this document are line-wrapped for
205 readability. When such definitions are transferred as attribute
206 values in the LDAP protocol (e.g., as values of the ldapSyntaxes and
207 matchingRules attributes [RFC4512], respectively), then those values
208 would not contain line breaks.
209
2103. Syntaxes
211
212 Syntax definitions constrain the structure of attribute values stored
213 in an LDAP directory, and determine the representation of attribute
214 and assertion values transferred in the LDAP protocol.
215
216 Syntaxes that are required for directory operation, or that are in
217 common use, are specified in this section. Servers SHOULD recognize
218 all the syntaxes listed in this document, but are not required to
219 otherwise support them, and MAY recognise or support other syntaxes.
220 However, the definition of additional arbitrary syntaxes is
221 discouraged since it will hinder interoperability. Client and server
222 implementations typically do not have the ability to dynamically
223 recognize new syntaxes.
224
225
226
227
228
229Legg Standards Track [Page 4]
230
231
232RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
233
234
2353.1. General Considerations
236
237 The description of each syntax specifies how attribute or assertion
238 values conforming to the syntax are to be represented when
239 transferred in the LDAP protocol [RFC4511]. This representation is
240 referred to as the LDAP-specific encoding to distinguish it from
241 other methods of encoding attribute values (e.g., the Basic Encoding
242 Rules (BER) encoding [BER] used by X.500 [X.500] directories).
243
244 The LDAP-specific encoding of a given attribute syntax always
245 produces octet-aligned values. To the greatest extent possible,
246 encoding rules for LDAP syntaxes should produce character strings
247 that can be displayed with little or no translation by clients
248 implementing LDAP. However, clients MUST NOT assume that the LDAP-
249 specific encoding of a value of an unrecognized syntax is a human-
250 readable character string. There are a few cases (e.g., the JPEG
251 syntax) when it is not reasonable to produce a human-readable
252 representation.
253
254 Each LDAP syntax is uniquely identified with an object identifier
255 [ASN.1] represented in the dotted-decimal format (short descriptive
256 names are not defined for syntaxes). These object identifiers are
257 not intended to be displayed to users. The object identifiers for
258 the syntaxes defined in this document are summarized in Appendix A.
259
260 A suggested minimum upper bound on the number of characters in an
261 attribute value with a string-based syntax, or the number of octets
262 in a value for all other syntaxes, MAY be indicated by appending the
263 bound inside of curly braces following the syntax's OBJECT IDENTIFIER
264 in an attribute type definition (see the <noidlen> rule in
265 [RFC4512]). Such a bound is not considered part of the syntax
266 identifier.
267
268 For example, "1.3.6.1.4.1.1466.115.121.1.15{64}" in an attribute
269 definition suggests that the directory server will allow a value of
270 the attribute to be up to 64 characters long, although it may allow
271 longer character strings. Note that a single character of the
272 Directory String syntax can be encoded in more than one octet, since
273 UTF-8 [RFC3629] is a variable-length encoding. Therefore, a 64-
274 character string may be more than 64 octets in length.
275
2763.2. Common Definitions
277
278 The following ABNF rules are used in a number of the syntax
279 definitions in Section 3.3.
280
281 PrintableCharacter = ALPHA / DIGIT / SQUOTE / LPAREN / RPAREN /
282 PLUS / COMMA / HYPHEN / DOT / EQUALS /
283
284
285
286Legg Standards Track [Page 5]
287
288
289RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
290
291
292 SLASH / COLON / QUESTION / SPACE
293 PrintableString = 1*PrintableCharacter
294 IA5String = *(%x00-7F)
295 SLASH = %x2F ; forward slash ("/")
296 COLON = %x3A ; colon (":")
297 QUESTION = %x3F ; question mark ("?")
298
299 The <ALPHA>, <DIGIT>, <SQUOTE>, <LPAREN>, <RPAREN>, <PLUS>, <COMMA>,
300 <HYPHEN>, <DOT>, <EQUALS>, and <SPACE> rules are defined in
301 [RFC4512].
302
3033.3. Syntax Definitions
304
3053.3.1. Attribute Type Description
306
307 A value of the Attribute Type Description syntax is the definition of
308 an attribute type. The LDAP-specific encoding of a value of this
309 syntax is defined by the <AttributeTypeDescription> rule in
310 [RFC4512].
311
312 For example, the following definition of the createTimestamp
313 attribute type from [RFC4512] is also a value of the Attribute
314 Type Description syntax. (Note: Line breaks have been added for
315 readability; they are not part of the value when transferred in
316 protocol.)
317
318 ( 2.5.18.1 NAME 'createTimestamp'
319 EQUALITY generalizedTimeMatch
320 ORDERING generalizedTimeOrderingMatch
321 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
322 SINGLE-VALUE NO-USER-MODIFICATION
323 USAGE directoryOperation )
324
325 The LDAP definition for the Attribute Type Description syntax is:
326
327 ( 1.3.6.1.4.1.1466.115.121.1.3 DESC 'Attribute Type Description' )
328
329 This syntax corresponds to the AttributeTypeDescription ASN.1 type
330 from [X.501].
331
3323.3.2. Bit String
333
334 A value of the Bit String syntax is a sequence of binary digits. The
335 LDAP-specific encoding of a value of this syntax is defined by the
336 following ABNF:
337
338 BitString = SQUOTE *binary-digit SQUOTE "B"
339 binary-digit = "0" / "1"
340
341
342
343Legg Standards Track [Page 6]
344
345
346RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
347
348
349 The <SQUOTE> rule is defined in [RFC4512].
350
351 Example:
352 '0101111101'B
353
354 The LDAP definition for the Bit String syntax is:
355
356 ( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'Bit String' )
357
358 This syntax corresponds to the BIT STRING ASN.1 type from [ASN.1].
359
3603.3.3. Boolean
361
362 A value of the Boolean syntax is one of the Boolean values, true or
363 false. The LDAP-specific encoding of a value of this syntax is
364 defined by the following ABNF:
365
366 Boolean = "TRUE" / "FALSE"
367
368 The LDAP definition for the Boolean syntax is:
369
370 ( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' )
371
372 This syntax corresponds to the BOOLEAN ASN.1 type from [ASN.1].
373
3743.3.4. Country String
375
376 A value of the Country String syntax is one of the two-character
377 codes from ISO 3166 [ISO3166] for representing a country. The LDAP-
378 specific encoding of a value of this syntax is defined by the
379 following ABNF:
380
381 CountryString = 2(PrintableCharacter)
382
383 The <PrintableCharacter> rule is defined in Section 3.2.
384
385 Examples:
386
387 US
388 AU
389
390 The LDAP definition for the Country String syntax is:
391
392 ( 1.3.6.1.4.1.1466.115.121.1.11 DESC 'Country String' )
393
394 This syntax corresponds to the following ASN.1 type from [X.520]:
395
396 PrintableString (SIZE (2)) -- ISO 3166 codes only
397
398
399
400Legg Standards Track [Page 7]
401
402
403RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
404
405
4063.3.5. Delivery Method
407
408 A value of the Delivery Method syntax is a sequence of items that
409 indicate, in preference order, the service(s) by which an entity is
410 willing and/or capable of receiving messages. The LDAP-specific
411 encoding of a value of this syntax is defined by the following ABNF:
412
413 DeliveryMethod = pdm *( WSP DOLLAR WSP pdm )
414
415 pdm = "any" / "mhs" / "physical" / "telex" / "teletex" /
416 "g3fax" / "g4fax" / "ia5" / "videotex" / "telephone"
417
418 The <WSP> and <DOLLAR> rules are defined in [RFC4512].
419
420 Example:
421 telephone $ videotex
422
423 The LDAP definition for the Delivery Method syntax is:
424
425 ( 1.3.6.1.4.1.1466.115.121.1.14 DESC 'Delivery Method' )
426
427 This syntax corresponds to the following ASN.1 type from [X.520]:
428
429 SEQUENCE OF INTEGER {
430 any-delivery-method (0),
431 mhs-delivery (1),
432 physical-delivery (2),
433 telex-delivery (3),
434 teletex-delivery (4),
435 g3-facsimile-delivery (5),
436 g4-facsimile-delivery (6),
437 ia5-terminal-delivery (7),
438 videotex-delivery (8),
439 telephone-delivery (9) }
440
4413.3.6. Directory String
442
443 A value of the Directory String syntax is a string of one or more
444 arbitrary characters from the Universal Character Set (UCS) [UCS]. A
445 zero-length character string is not permitted. The LDAP-specific
446 encoding of a value of this syntax is the UTF-8 encoding [RFC3629] of
447 the character string. Such encodings conform to the following ABNF:
448
449 DirectoryString = 1*UTF8
450
451 The <UTF8> rule is defined in [RFC4512].
452
453
454
455
456
457Legg Standards Track [Page 8]
458
459
460RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
461
462
463 Example:
464 This is a value of Directory String containing #!%#@.
465
466 Servers and clients MUST be prepared to receive arbitrary UCS code
467 points, including code points outside the range of printable ASCII
468 and code points not presently assigned to any character.
469
470 Attribute type definitions using the Directory String syntax should
471 not restrict the format of Directory String values, e.g., by
472 requiring that the character string conforms to specific patterns
473 described by ABNF. A new syntax should be defined in such cases.
474
475 The LDAP definition for the Directory String syntax is:
476
477 ( 1.3.6.1.4.1.1466.115.121.1.15 DESC 'Directory String' )
478
479 This syntax corresponds to the DirectoryString parameterized ASN.1
480 type from [X.520].
481
482 The DirectoryString ASN.1 type allows a choice between the
483 TeletexString, PrintableString, or UniversalString ASN.1 types from
484 [ASN.1]. However, note that the chosen alternative is not indicated
485 in the LDAP-specific encoding of a Directory String value.
486
487 Implementations that convert Directory String values from the LDAP-
488 specific encoding to the BER encoding used by X.500 must choose an
489 alternative that permits the particular characters in the string and
490 must convert the characters from the UTF-8 encoding into the
491 character encoding of the chosen alternative. When converting
492 Directory String values from the BER encoding to the LDAP-specific
493 encoding, the characters must be converted from the character
494 encoding of the chosen alternative into the UTF-8 encoding. These
495 conversions SHOULD be done in a manner consistent with the Transcode
496 step of the string preparation algorithms [RFC4518] for LDAP.
497
4983.3.7. DIT Content Rule Description
499
500 A value of the DIT Content Rule Description syntax is the definition
501 of a DIT (Directory Information Tree) content rule. The LDAP-
502 specific encoding of a value of this syntax is defined by the
503 <DITContentRuleDescription> rule in [RFC4512].
504
505 Example:
506 ( 2.5.6.4 DESC 'content rule for organization'
507 NOT ( x121Address $ telexNumber ) )
508
509 Note: A line break has been added for readability; it is not part
510 of the value.
511
512
513
514Legg Standards Track [Page 9]
515
516
517RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
518
519
520 The LDAP definition for the DIT Content Rule Description syntax is:
521
522 ( 1.3.6.1.4.1.1466.115.121.1.16
523 DESC 'DIT Content Rule Description' )
524
525 This syntax corresponds to the DITContentRuleDescription ASN.1 type
526 from [X.501].
527
5283.3.8. DIT Structure Rule Description
529
530 A value of the DIT Structure Rule Description syntax is the
531 definition of a DIT structure rule. The LDAP-specific encoding of a
532 value of this syntax is defined by the <DITStructureRuleDescription>
533 rule in [RFC4512].
534
535 Example:
536 ( 2 DESC 'organization structure rule' FORM 2.5.15.3 )
537
538 The LDAP definition for the DIT Structure Rule Description syntax is:
539
540 ( 1.3.6.1.4.1.1466.115.121.1.17
541 DESC 'DIT Structure Rule Description' )
542
543 This syntax corresponds to the DITStructureRuleDescription ASN.1 type
544 from [X.501].
545
5463.3.9. DN
547
548 A value of the DN syntax is the (purported) distinguished name (DN)
549 of an entry [RFC4512]. The LDAP-specific encoding of a value of this
550 syntax is defined by the <distinguishedName> rule from the string
551 representation of distinguished names [RFC4514].
552
553 Examples (from [RFC4514]):
554 UID=jsmith,DC=example,DC=net
555 OU=Sales+CN=J. Smith,DC=example,DC=net
556 CN=John Smith\, III,DC=example,DC=net
557 CN=Before\0dAfter,DC=example,DC=net
558 1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com
559 CN=Lu\C4\8Di\C4\87
560
561 The LDAP definition for the DN syntax is:
562
563 ( 1.3.6.1.4.1.1466.115.121.1.12 DESC 'DN' )
564
565 The DN syntax corresponds to the DistinguishedName ASN.1 type from
566 [X.501]. Note that a BER encoded distinguished name (as used by
567 X.500) re-encoded into the LDAP-specific encoding is not necessarily
568
569
570
571Legg Standards Track [Page 10]
572
573
574RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
575
576
577 reversible to the original BER encoding since the chosen string type
578 in any DirectoryString components of the distinguished name is not
579 indicated in the LDAP-specific encoding of the distinguished name
580 (see Section 3.3.6).
581
5823.3.10. Enhanced Guide
583
584 A value of the Enhanced Guide syntax suggests criteria, which consist
585 of combinations of attribute types and filter operators, to be used
586 in constructing filters to search for entries of particular object
587 classes. The Enhanced Guide syntax improves upon the Guide syntax by
588 allowing the recommended depth of the search to be specified.
589
590 The LDAP-specific encoding of a value of this syntax is defined by
591 the following ABNF:
592
593 EnhancedGuide = object-class SHARP WSP criteria WSP
594 SHARP WSP subset
595 object-class = WSP oid WSP
596 subset = "baseobject" / "oneLevel" / "wholeSubtree"
597
598 criteria = and-term *( BAR and-term )
599 and-term = term *( AMPERSAND term )
600 term = EXCLAIM term /
601 attributetype DOLLAR match-type /
602 LPAREN criteria RPAREN /
603 true /
604 false
605 match-type = "EQ" / "SUBSTR" / "GE" / "LE" / "APPROX"
606 true = "?true"
607 false = "?false"
608 BAR = %x7C ; vertical bar ("|")
609 AMPERSAND = %x26 ; ampersand ("&")
610 EXCLAIM = %x21 ; exclamation mark ("!")
611
612 The <SHARP>, <WSP>, <oid>, <LPAREN>, <RPAREN>, <attributetype>, and
613 <DOLLAR> rules are defined in [RFC4512].
614
615 The LDAP definition for the Enhanced Guide syntax is:
616
617 ( 1.3.6.1.4.1.1466.115.121.1.21 DESC 'Enhanced Guide' )
618
619 Example:
620 person#(sn$EQ)#oneLevel
621
622 The Enhanced Guide syntax corresponds to the EnhancedGuide ASN.1 type
623 from [X.520]. The EnhancedGuide type references the Criteria ASN.1
624 type, also from [X.520]. The <true> rule, above, represents an empty
625
626
627
628Legg Standards Track [Page 11]
629
630
631RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
632
633
634 "and" expression in a value of the Criteria type. The <false> rule,
635 above, represents an empty "or" expression in a value of the Criteria
636 type.
637
6383.3.11. Facsimile Telephone Number
639
640 A value of the Facsimile Telephone Number syntax is a subscriber
641 number of a facsimile device on the public switched telephone
642 network. The LDAP-specific encoding of a value of this syntax is
643 defined by the following ABNF:
644
645 fax-number = telephone-number *( DOLLAR fax-parameter )
646 telephone-number = PrintableString
647 fax-parameter = "twoDimensional" /
648 "fineResolution" /
649 "unlimitedLength" /
650 "b4Length" /
651 "a3Width" /
652 "b4Width" /
653 "uncompressed"
654
655 The <telephone-number> is a string of printable characters that
656 complies with the internationally agreed format for representing
657 international telephone numbers [E.123]. The <PrintableString> rule
658 is defined in Section 3.2. The <DOLLAR> rule is defined in
659 [RFC4512].
660
661 The LDAP definition for the Facsimile Telephone Number syntax is:
662
663 ( 1.3.6.1.4.1.1466.115.121.1.22 DESC 'Facsimile Telephone Number')
664
665 The Facsimile Telephone Number syntax corresponds to the
666 FacsimileTelephoneNumber ASN.1 type from [X.520].
667
6683.3.12. Fax
669
670 A value of the Fax syntax is an image that is produced using the
671 Group 3 facsimile process [FAX] to duplicate an object, such as a
672 memo. The LDAP-specific encoding of a value of this syntax is the
673 string of octets for a Group 3 Fax image as defined in [FAX].
674
675 The LDAP definition for the Fax syntax is:
676
677 ( 1.3.6.1.4.1.1466.115.121.1.23 DESC 'Fax' )
678
679 The ASN.1 type corresponding to the Fax syntax is defined as follows,
680 assuming EXPLICIT TAGS:
681
682
683
684
685Legg Standards Track [Page 12]
686
687
688RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
689
690
691 Fax ::= CHOICE {
692 g3-facsimile [3] G3FacsimileBodyPart
693 }
694
695 The G3FacsimileBodyPart ASN.1 type is defined in [X.420].
696
6973.3.13. Generalized Time
698
699 A value of the Generalized Time syntax is a character string
700 representing a date and time. The LDAP-specific encoding of a value
701 of this syntax is a restriction of the format defined in [ISO8601],
702 and is described by the following ABNF:
703
704 GeneralizedTime = century year month day hour
705 [ minute [ second / leap-second ] ]
706 [ fraction ]
707 g-time-zone
708
709 century = 2(%x30-39) ; "00" to "99"
710 year = 2(%x30-39) ; "00" to "99"
711 month = ( %x30 %x31-39 ) ; "01" (January) to "09"
712 / ( %x31 %x30-32 ) ; "10" to "12"
713 day = ( %x30 %x31-39 ) ; "01" to "09"
714 / ( %x31-32 %x30-39 ) ; "10" to "29"
715 / ( %x33 %x30-31 ) ; "30" to "31"
716 hour = ( %x30-31 %x30-39 ) / ( %x32 %x30-33 ) ; "00" to "23"
717 minute = %x30-35 %x30-39 ; "00" to "59"
718
719 second = ( %x30-35 %x30-39 ) ; "00" to "59"
720 leap-second = ( %x36 %x30 ) ; "60"
721
722 fraction = ( DOT / COMMA ) 1*(%x30-39)
723 g-time-zone = %x5A ; "Z"
724 / g-differential
725 g-differential = ( MINUS / PLUS ) hour [ minute ]
726 MINUS = %x2D ; minus sign ("-")
727
728 The <DOT>, <COMMA>, and <PLUS> rules are defined in [RFC4512].
729
730 The above ABNF allows character strings that do not represent valid
731 dates (in the Gregorian calendar) and/or valid times (e.g., February
732 31, 1994). Such character strings SHOULD be considered invalid for
733 this syntax.
734
735 The time value represents coordinated universal time (equivalent to
736 Greenwich Mean Time) if the "Z" form of <g-time-zone> is used;
737 otherwise, the value represents a local time in the time zone
738 indicated by <g-differential>. In the latter case, coordinated
739
740
741
742Legg Standards Track [Page 13]
743
744
745RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
746
747
748 universal time can be calculated by subtracting the differential from
749 the local time. The "Z" form of <g-time-zone> SHOULD be used in
750 preference to <g-differential>.
751
752 If <minute> is omitted, then <fraction> represents a fraction of an
753 hour; otherwise, if <second> and <leap-second> are omitted, then
754 <fraction> represents a fraction of a minute; otherwise, <fraction>
755 represents a fraction of a second.
756
757 Examples:
758 199412161032Z
759 199412160532-0500
760
761 Both example values represent the same coordinated universal time:
762 10:32 AM, December 16, 1994.
763
764 The LDAP definition for the Generalized Time syntax is:
765
766 ( 1.3.6.1.4.1.1466.115.121.1.24 DESC 'Generalized Time' )
767
768 This syntax corresponds to the GeneralizedTime ASN.1 type from
769 [ASN.1], with the constraint that local time without a differential
770 SHALL NOT be used.
771
7723.3.14. Guide
773
774 A value of the Guide syntax suggests criteria, which consist of
775 combinations of attribute types and filter operators, to be used in
776 constructing filters to search for entries of particular object
777 classes. The Guide syntax is obsolete and should not be used for
778 defining new attribute types.
779
780 The LDAP-specific encoding of a value of this syntax is defined by
781 the following ABNF:
782
783 Guide = [ object-class SHARP ] criteria
784
785 The <object-class> and <criteria> rules are defined in Section
786 3.3.10. The <SHARP> rule is defined in [RFC4512].
787
788 The LDAP definition for the Guide syntax is:
789
790 ( 1.3.6.1.4.1.1466.115.121.1.25 DESC 'Guide' )
791
792 The Guide syntax corresponds to the Guide ASN.1 type from [X.520].
793
794
795
796
797
798
799Legg Standards Track [Page 14]
800
801
802RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
803
804
8053.3.15. IA5 String
806
807 A value of the IA5 String syntax is a string of zero, one, or more
808 characters from International Alphabet 5 (IA5) [T.50], the
809 international version of the ASCII character set. The LDAP-specific
810 encoding of a value of this syntax is the unconverted string of
811 characters, which conforms to the <IA5String> rule in Section 3.2.
812
813 The LDAP definition for the IA5 String syntax is:
814
815 ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' )
816
817 This syntax corresponds to the IA5String ASN.1 type from [ASN.1].
818
8193.3.16. Integer
820
821 A value of the Integer syntax is a whole number of unlimited
822 magnitude. The LDAP-specific encoding of a value of this syntax is
823 the optionally signed decimal digit character string representation
824 of the number (for example, the number 1321 is represented by the
825 character string "1321"). The encoding is defined by the following
826 ABNF:
827
828 Integer = ( HYPHEN LDIGIT *DIGIT ) / number
829
830 The <HYPHEN>, <LDIGIT>, <DIGIT>, and <number> rules are defined in
831 [RFC4512].
832
833 The LDAP definition for the Integer syntax is:
834
835 ( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'INTEGER' )
836
837 This syntax corresponds to the INTEGER ASN.1 type from [ASN.1].
838
8393.3.17. JPEG
840
841 A value of the JPEG syntax is an image in the JPEG File Interchange
842 Format (JFIF), as described in [JPEG]. The LDAP-specific encoding of
843 a value of this syntax is the sequence of octets of the JFIF encoding
844 of the image.
845
846 The LDAP definition for the JPEG syntax is:
847
848 ( 1.3.6.1.4.1.1466.115.121.1.28 DESC 'JPEG' )
849
850 The JPEG syntax corresponds to the following ASN.1 type:
851
852
853
854
855
856Legg Standards Track [Page 15]
857
858
859RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
860
861
862 JPEG ::= OCTET STRING (CONSTRAINED BY
863 { -- contents octets are an image in the --
864 -- JPEG File Interchange Format -- })
865
8663.3.18. LDAP Syntax Description
867
868 A value of the LDAP Syntax Description syntax is the description of
869 an LDAP syntax. The LDAP-specific encoding of a value of this syntax
870 is defined by the <SyntaxDescription> rule in [RFC4512].
871
872 The LDAP definition for the LDAP Syntax Description syntax is:
873
874 ( 1.3.6.1.4.1.1466.115.121.1.54 DESC 'LDAP Syntax Description' )
875
876 The above LDAP definition for the LDAP Syntax Description syntax is
877 itself a legal value of the LDAP Syntax Description syntax.
878
879 The ASN.1 type corresponding to the LDAP Syntax Description syntax is
880 defined as follows, assuming EXPLICIT TAGS:
881
882 LDAPSyntaxDescription ::= SEQUENCE {
883 identifier OBJECT IDENTIFIER,
884 description DirectoryString { ub-schema } OPTIONAL }
885
886 The DirectoryString parameterized ASN.1 type is defined in [X.520].
887
888 The value of ub-schema (an integer) is implementation defined. A
889 non-normative definition appears in [X.520].
890
8913.3.19. Matching Rule Description
892
893 A value of the Matching Rule Description syntax is the definition of
894 a matching rule. The LDAP-specific encoding of a value of this
895 syntax is defined by the <MatchingRuleDescription> rule in [RFC4512].
896
897 Example:
898 ( 2.5.13.2 NAME 'caseIgnoreMatch'
899 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
900
901 Note: A line break has been added for readability; it is not part of
902 the syntax.
903
904 The LDAP definition for the Matching Rule Description syntax is:
905
906 ( 1.3.6.1.4.1.1466.115.121.1.30 DESC 'Matching Rule Description' )
907
908 This syntax corresponds to the MatchingRuleDescription ASN.1 type
909 from [X.501].
910
911
912
913Legg Standards Track [Page 16]
914
915
916RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
917
918
9193.3.20. Matching Rule Use Description
920
921 A value of the Matching Rule Use Description syntax indicates the
922 attribute types to which a matching rule may be applied in an
923 extensibleMatch search filter [RFC4511]. The LDAP-specific encoding
924 of a value of this syntax is defined by the
925 <MatchingRuleUseDescription> rule in [RFC4512].
926
927 Example:
928 ( 2.5.13.16 APPLIES ( givenName $ surname ) )
929
930 The LDAP definition for the Matching Rule Use Description syntax is:
931
932 ( 1.3.6.1.4.1.1466.115.121.1.31
933 DESC 'Matching Rule Use Description' )
934
935 This syntax corresponds to the MatchingRuleUseDescription ASN.1 type
936 from [X.501].
937
9383.3.21. Name and Optional UID
939
940 A value of the Name and Optional UID syntax is the distinguished name
941 [RFC4512] of an entity optionally accompanied by a unique identifier
942 that serves to differentiate the entity from others with an identical
943 distinguished name.
944
945 The LDAP-specific encoding of a value of this syntax is defined by
946 the following ABNF:
947
948 NameAndOptionalUID = distinguishedName [ SHARP BitString ]
949
950 The <BitString> rule is defined in Section 3.3.2. The
951 <distinguishedName> rule is defined in [RFC4514]. The <SHARP> rule
952 is defined in [RFC4512].
953
954 Note that although the '#' character may occur in the string
955 representation of a distinguished name, no additional escaping of
956 this character is performed when a <distinguishedName> is encoded in
957 a <NameAndOptionalUID>.
958
959 Example:
960 1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B
961
962 The LDAP definition for the Name and Optional UID syntax is:
963
964 ( 1.3.6.1.4.1.1466.115.121.1.34 DESC 'Name And Optional UID' )
965
966
967
968
969
970Legg Standards Track [Page 17]
971
972
973RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
974
975
976 This syntax corresponds to the NameAndOptionalUID ASN.1 type from
977 [X.520].
978
9793.3.22. Name Form Description
980
981 A value of the Name Form Description syntax is the definition of a
982 name form, which regulates how entries may be named. The LDAP-
983 specific encoding of a value of this syntax is defined by the
984 <NameFormDescription> rule in [RFC4512].
985
986 Example:
987 ( 2.5.15.3 NAME 'orgNameForm' OC organization MUST o )
988
989 The LDAP definition for the Name Form Description syntax is:
990
991 ( 1.3.6.1.4.1.1466.115.121.1.35 DESC 'Name Form Description' )
992
993 This syntax corresponds to the NameFormDescription ASN.1 type from
994 [X.501].
995
9963.3.23. Numeric String
997
998 A value of the Numeric String syntax is a sequence of one or more
999 numerals and spaces. The LDAP-specific encoding of a value of this
1000 syntax is the unconverted string of characters, which conforms to the
1001 following ABNF:
1002
1003 NumericString = 1*(DIGIT / SPACE)
1004
1005 The <DIGIT> and <SPACE> rules are defined in [RFC4512].
1006
1007 Example:
1008 15 079 672 281
1009
1010 The LDAP definition for the Numeric String syntax is:
1011
1012 ( 1.3.6.1.4.1.1466.115.121.1.36 DESC 'Numeric String' )
1013
1014 This syntax corresponds to the NumericString ASN.1 type from [ASN.1].
1015
10163.3.24. Object Class Description
1017
1018 A value of the Object Class Description syntax is the definition of
1019 an object class. The LDAP-specific encoding of a value of this
1020 syntax is defined by the <ObjectClassDescription> rule in [RFC4512].
1021
1022
1023
1024
1025
1026
1027Legg Standards Track [Page 18]
1028
1029
1030RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1031
1032
1033 Example:
1034 ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c
1035 MAY ( searchGuide $ description ) )
1036
1037 Note: A line break has been added for readability; it is not part of
1038 the syntax.
1039
1040 The LDAP definition for the Object Class Description syntax is:
1041
1042 ( 1.3.6.1.4.1.1466.115.121.1.37 DESC 'Object Class Description' )
1043
1044 This syntax corresponds to the ObjectClassDescription ASN.1 type from
1045 [X.501].
1046
10473.3.25. Octet String
1048
1049 A value of the Octet String syntax is a sequence of zero, one, or
1050 more arbitrary octets. The LDAP-specific encoding of a value of this
1051 syntax is the unconverted sequence of octets, which conforms to the
1052 following ABNF:
1053
1054 OctetString = *OCTET
1055
1056 The <OCTET> rule is defined in [RFC4512]. Values of this syntax are
1057 not generally human-readable.
1058
1059 The LDAP definition for the Octet String syntax is:
1060
1061 ( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' )
1062
1063 This syntax corresponds to the OCTET STRING ASN.1 type from [ASN.1].
1064
10653.3.26. OID
1066
1067 A value of the OID syntax is an object identifier: a sequence of two
1068 or more non-negative integers that uniquely identify some object or
1069 item of specification. Many of the object identifiers used in LDAP
1070 also have IANA registered names [RFC4520].
1071
1072 The LDAP-specific encoding of a value of this syntax is defined by
1073 the <oid> rule in [RFC4512].
1074
1075 Examples:
1076 1.2.3.4
1077 cn
1078
1079 The LDAP definition for the OID syntax is:
1080
1081
1082
1083
1084Legg Standards Track [Page 19]
1085
1086
1087RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1088
1089
1090 ( 1.3.6.1.4.1.1466.115.121.1.38 DESC 'OID' )
1091
1092 This syntax corresponds to the OBJECT IDENTIFIER ASN.1 type from
1093 [ASN.1].
1094
10953.3.27. Other Mailbox
1096
1097 A value of the Other Mailbox syntax identifies an electronic mailbox,
1098 in a particular named mail system. The LDAP-specific encoding of a
1099 value of this syntax is defined by the following ABNF:
1100
1101 OtherMailbox = mailbox-type DOLLAR mailbox
1102 mailbox-type = PrintableString
1103 mailbox = IA5String
1104
1105 The <mailbox-type> rule represents the type of mail system in which
1106 the mailbox resides (for example, "MCIMail"), and <mailbox> is the
1107 actual mailbox in the mail system described by <mailbox-type>. The
1108 <PrintableString> and <IA5String> rules are defined in Section 3.2.
1109 The <DOLLAR> rule is defined in [RFC4512].
1110
1111 The LDAP definition for the Other Mailbox syntax is:
1112
1113 ( 1.3.6.1.4.1.1466.115.121.1.39 DESC 'Other Mailbox' )
1114
1115 The ASN.1 type corresponding to the Other Mailbox syntax is defined
1116 as follows, assuming EXPLICIT TAGS:
1117
1118 OtherMailbox ::= SEQUENCE {
1119 mailboxType PrintableString,
1120 mailbox IA5String
1121 }
1122
11233.3.28. Postal Address
1124
1125 A value of the Postal Address syntax is a sequence of strings of one
1126 or more arbitrary UCS characters, which form an address in a physical
1127 mail system.
1128
1129 The LDAP-specific encoding of a value of this syntax is defined by
1130 the following ABNF:
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141Legg Standards Track [Page 20]
1142
1143
1144RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1145
1146
1147 PostalAddress = line *( DOLLAR line )
1148 line = 1*line-char
1149 line-char = %x00-23
1150 / (%x5C "24") ; escaped "$"
1151 / %x25-5B
1152 / (%x5C "5C") ; escaped "\"
1153 / %x5D-7F
1154 / UTFMB
1155
1156 Each character string (i.e., <line>) of a postal address value is
1157 encoded as a UTF-8 [RFC3629] string, except that "\" and "$"
1158 characters, if they occur in the string, are escaped by a "\"
1159 character followed by the two hexadecimal digit code for the
1160 character. The <DOLLAR> and <UTFMB> rules are defined in [RFC4512].
1161
1162 Many servers limit the postal address to no more than six lines of no
1163 more than thirty characters each.
1164
1165 Example:
1166 1234 Main St.$Anytown, CA 12345$USA
1167 \241,000,000 Sweepstakes$PO Box 1000000$Anytown, CA 12345$USA
1168
1169 The LDAP definition for the Postal Address syntax is:
1170
1171 ( 1.3.6.1.4.1.1466.115.121.1.41 DESC 'Postal Address' )
1172
1173 This syntax corresponds to the PostalAddress ASN.1 type from [X.520];
1174 that is
1175
1176 PostalAddress ::= SEQUENCE SIZE(1..ub-postal-line) OF
1177 DirectoryString { ub-postal-string }
1178
1179 The values of ub-postal-line and ub-postal-string (both integers) are
1180 implementation defined. Non-normative definitions appear in [X.520].
1181
11823.3.29. Printable String
1183
1184 A value of the Printable String syntax is a string of one or more
1185 latin alphabetic, numeric, and selected punctuation characters as
1186 specified by the <PrintableCharacter> rule in Section 3.2.
1187
1188 The LDAP-specific encoding of a value of this syntax is the
1189 unconverted string of characters, which conforms to the
1190 <PrintableString> rule in Section 3.2.
1191
1192 Example:
1193 This is a PrintableString.
1194
1195
1196
1197
1198Legg Standards Track [Page 21]
1199
1200
1201RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1202
1203
1204 The LDAP definition for the PrintableString syntax is:
1205
1206 ( 1.3.6.1.4.1.1466.115.121.1.44 DESC 'Printable String' )
1207
1208 This syntax corresponds to the PrintableString ASN.1 type from
1209 [ASN.1].
1210
12113.3.30. Substring Assertion
1212
1213 A value of the Substring Assertion syntax is a sequence of zero, one,
1214 or more character substrings used as an argument for substring
1215 extensible matching of character string attribute values; i.e., as
1216 the matchValue of a MatchingRuleAssertion [RFC4511]. Each substring
1217 is a string of one or more arbitrary characters from the Universal
1218 Character Set (UCS) [UCS]. A zero-length substring is not permitted.
1219
1220 The LDAP-specific encoding of a value of this syntax is defined by
1221 the following ABNF:
1222
1223 SubstringAssertion = [ initial ] any [ final ]
1224
1225 initial = substring
1226 any = ASTERISK *(substring ASTERISK)
1227 final = substring
1228 ASTERISK = %x2A ; asterisk ("*")
1229
1230 substring = 1*substring-character
1231 substring-character = %x00-29
1232 / (%x5C "2A") ; escaped "*"
1233 / %x2B-5B
1234 / (%x5C "5C") ; escaped "\"
1235 / %x5D-7F
1236 / UTFMB
1237
1238 Each <substring> of a Substring Assertion value is encoded as a UTF-8
1239 [RFC3629] string, except that "\" and "*" characters, if they occur
1240 in the substring, are escaped by a "\" character followed by the two
1241 hexadecimal digit code for the character.
1242
1243 The Substring Assertion syntax is used only as the syntax of
1244 assertion values in the extensible match. It is not used as an
1245 attribute syntax, or in the SubstringFilter [RFC4511].
1246
1247 The LDAP definition for the Substring Assertion syntax is:
1248
1249 ( 1.3.6.1.4.1.1466.115.121.1.58 DESC 'Substring Assertion' )
1250
1251
1252
1253
1254
1255Legg Standards Track [Page 22]
1256
1257
1258RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1259
1260
1261 This syntax corresponds to the SubstringAssertion ASN.1 type from
1262 [X.520].
1263
12643.3.31. Telephone Number
1265
1266 A value of the Telephone Number syntax is a string of printable
1267 characters that complies with the internationally agreed format for
1268 representing international telephone numbers [E.123].
1269
1270 The LDAP-specific encoding of a value of this syntax is the
1271 unconverted string of characters, which conforms to the
1272 <PrintableString> rule in Section 3.2.
1273
1274 Examples:
1275 +1 512 315 0280
1276 +1-512-315-0280
1277 +61 3 9896 7830
1278
1279 The LDAP definition for the Telephone Number syntax is:
1280
1281 ( 1.3.6.1.4.1.1466.115.121.1.50 DESC 'Telephone Number' )
1282
1283 The Telephone Number syntax corresponds to the following ASN.1 type
1284 from [X.520]:
1285
1286 PrintableString (SIZE(1..ub-telephone-number))
1287
1288 The value of ub-telephone-number (an integer) is implementation
1289 defined. A non-normative definition appears in [X.520].
1290
12913.3.32. Teletex Terminal Identifier
1292
1293 A value of this syntax specifies the identifier and (optionally)
1294 parameters of a teletex terminal.
1295
1296 The LDAP-specific encoding of a value of this syntax is defined by
1297 the following ABNF:
1298
1299 teletex-id = ttx-term *(DOLLAR ttx-param)
1300 ttx-term = PrintableString ; terminal identifier
1301 ttx-param = ttx-key COLON ttx-value ; parameter
1302 ttx-key = "graphic" / "control" / "misc" / "page" / "private"
1303 ttx-value = *ttx-value-octet
1304
1305 ttx-value-octet = %x00-23
1306 / (%x5C "24") ; escaped "$"
1307 / %x25-5B
1308 / (%x5C "5C") ; escaped "\"
1309
1310
1311
1312Legg Standards Track [Page 23]
1313
1314
1315RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1316
1317
1318 / %x5D-FF
1319
1320 The <PrintableString> and <COLON> rules are defined in Section 3.2.
1321 The <DOLLAR> rule is defined in [RFC4512].
1322
1323 The LDAP definition for the Teletex Terminal Identifier syntax is:
1324
1325 ( 1.3.6.1.4.1.1466.115.121.1.51
1326 DESC 'Teletex Terminal Identifier' )
1327
1328 This syntax corresponds to the TeletexTerminalIdentifier ASN.1 type
1329 from [X.520].
1330
13313.3.33. Telex Number
1332
1333 A value of the Telex Number syntax specifies the telex number,
1334 country code, and answerback code of a telex terminal.
1335
1336 The LDAP-specific encoding of a value of this syntax is defined by
1337 the following ABNF:
1338
1339 telex-number = actual-number DOLLAR country-code
1340 DOLLAR answerback
1341 actual-number = PrintableString
1342 country-code = PrintableString
1343 answerback = PrintableString
1344
1345 The <PrintableString> rule is defined in Section 3.2. The <DOLLAR>
1346 rule is defined in [RFC4512].
1347
1348 The LDAP definition for the Telex Number syntax is:
1349
1350 ( 1.3.6.1.4.1.1466.115.121.1.52 DESC 'Telex Number' )
1351
1352 This syntax corresponds to the TelexNumber ASN.1 type from [X.520].
1353
13543.3.34. UTC Time
1355
1356 A value of the UTC Time syntax is a character string representing a
1357 date and time to a precision of one minute or one second. The year
1358 is given as a two-digit number. The LDAP-specific encoding of a
1359 value of this syntax follows the format defined in [ASN.1] for the
1360 UTCTime type and is described by the following ABNF:
1361
1362 UTCTime = year month day hour minute [ second ]
1363 [ u-time-zone ]
1364 u-time-zone = %x5A ; "Z"
1365 / u-differential
1366
1367
1368
1369Legg Standards Track [Page 24]
1370
1371
1372RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1373
1374
1375 u-differential = ( MINUS / PLUS ) hour minute
1376
1377 The <year>, <month>, <day>, <hour>, <minute>, <second>, and <MINUS>
1378 rules are defined in Section 3.3.13. The <PLUS> rule is defined in
1379 [RFC4512].
1380
1381 The above ABNF allows character strings that do not represent valid
1382 dates (in the Gregorian calendar) and/or valid times. Such character
1383 strings SHOULD be considered invalid for this syntax.
1384
1385 The time value represents coordinated universal time if the "Z" form
1386 of <u-time-zone> is used; otherwise, the value represents a local
1387 time. In the latter case, if <u-differential> is provided, then
1388 coordinated universal time can be calculated by subtracting the
1389 differential from the local time. The <u-time-zone> SHOULD be
1390 present in time values, and the "Z" form of <u-time-zone> SHOULD be
1391 used in preference to <u-differential>.
1392
1393 The LDAP definition for the UTC Time syntax is:
1394
1395 ( 1.3.6.1.4.1.1466.115.121.1.53 DESC 'UTC Time' )
1396
1397 Note: This syntax is deprecated in favor of the Generalized Time
1398 syntax.
1399
1400 The UTC Time syntax corresponds to the UTCTime ASN.1 type from
1401 [ASN.1].
1402
14034. Matching Rules
1404
1405 Matching rules are used by directory implementations to compare
1406 attribute values against assertion values when performing Search and
1407 Compare operations [RFC4511]. They are also used when comparing a
1408 purported distinguished name [RFC4512] with the name of an entry.
1409 When modifying entries, matching rules are used to identify values to
1410 be deleted and to prevent an attribute from containing two equal
1411 values.
1412
1413 Matching rules that are required for directory operation, or that are
1414 in common use, are specified in this section.
1415
14164.1. General Considerations
1417
1418 A matching rule is applied to attribute values through an
1419 AttributeValueAssertion or MatchingRuleAssertion [RFC4511]. The
1420 conditions under which an AttributeValueAssertion or
1421 MatchingRuleAssertion evaluates to Undefined are specified elsewhere
1422 [RFC4511]. If an assertion is not Undefined, then the result of the
1423
1424
1425
1426Legg Standards Track [Page 25]
1427
1428
1429RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1430
1431
1432 assertion is the result of applying the selected matching rule. A
1433 matching rule evaluates to TRUE, and in some cases Undefined, as
1434 specified in the description of the matching rule; otherwise, it
1435 evaluates to FALSE.
1436
1437 Each assertion contains an assertion value. The definition of each
1438 matching rule specifies the syntax for the assertion value. The
1439 syntax of the assertion value is typically, but not necessarily, the
1440 same as the syntax of the attribute values to which the matching rule
1441 may be applied. Note that an AssertionValue in a SubstringFilter
1442 [RFC4511] conforms to the assertion syntax of the equality matching
1443 rule for the attribute type rather than to the assertion syntax of
1444 the substrings matching rule for the attribute type. Conceptually,
1445 the entire SubstringFilter is converted into an assertion value of
1446 the substrings matching rule prior to applying the rule.
1447
1448 The definition of each matching rule indicates the attribute syntaxes
1449 to which the rule may be applied, by specifying conditions the
1450 corresponding ASN.1 type of a candidate attribute syntax must
1451 satisfy. These conditions are also satisfied if the corresponding
1452 ASN.1 type is a tagged or constrained derivative of the ASN.1 type
1453 explicitly mentioned in the rule description (i.e., ASN.1 tags and
1454 constraints are ignored in checking applicability), or is an
1455 alternative reference notation for the explicitly mentioned type.
1456 Each rule description lists, as examples of applicable attribute
1457 syntaxes, the complete list of the syntaxes defined in this document
1458 to which the matching rule applies. A matching rule may be
1459 applicable to additional syntaxes defined in other documents if those
1460 syntaxes satisfy the conditions on the corresponding ASN.1 type.
1461
1462 The description of each matching rule indicates whether the rule is
1463 suitable for use as the equality matching rule (EQUALITY), ordering
1464 matching rule (ORDERING), or substrings matching rule (SUBSTR) in an
1465 attribute type definition [RFC4512].
1466
1467 Each matching rule is uniquely identified with an object identifier.
1468 The definition of a matching rule should not subsequently be changed.
1469 If a change is desirable, then a new matching rule with a different
1470 object identifier should be defined instead.
1471
1472 Servers MAY implement the wordMatch and keywordMatch matching rules,
1473 but they SHOULD implement the other matching rules in Section 4.2.
1474 Servers MAY implement additional matching rules.
1475
1476 Servers that implement the extensibleMatch filter SHOULD allow the
1477 matching rules listed in Section 4.2 to be used in the
1478 extensibleMatch filter and SHOULD allow matching rules to be used
1479 with all attribute types known to the server, where the assertion
1480
1481
1482
1483Legg Standards Track [Page 26]
1484
1485
1486RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1487
1488
1489 syntax of the matching rule is the same as the value syntax of the
1490 attribute.
1491
1492 Servers MUST publish, in the matchingRules attribute, the definitions
1493 of matching rules referenced by values of the attributeTypes and
1494 matchingRuleUse attributes in the same subschema entry. Other
1495 unreferenced matching rules MAY be published in the matchingRules
1496 attribute.
1497
1498 If the server supports the extensibleMatch filter, then the server
1499 MAY use the matchingRuleUse attribute to indicate the applicability
1500 (in an extensibleMatch filter) of selected matching rules to
1501 nominated attribute types.
1502
15034.2. Matching Rule Definitions
1504
1505 Nominated character strings in assertion and attribute values are
1506 prepared according to the string preparation algorithms [RFC4518] for
1507 LDAP when evaluating the following matching rules:
1508
1509 numericStringMatch,
1510 numericStringSubstringsMatch,
1511 caseExactMatch,
1512 caseExactOrderingMatch,
1513 caseExactSubstringsMatch,
1514 caseExactIA5Match,
1515 caseIgnoreIA5Match,
1516 caseIgnoreIA5SubstringsMatch,
1517 caseIgnoreListMatch,
1518 caseIgnoreListSubstringsMatch,
1519 caseIgnoreMatch,
1520 caseIgnoreOrderingMatch,
1521 caseIgnoreSubstringsMatch,
1522 directoryStringFirstComponentMatch,
1523 telephoneNumberMatch,
1524 telephoneNumberSubstringsMatch and
1525 wordMatch.
1526
1527 The Transcode, Normalize, Prohibit, and Check bidi steps are the same
1528 for each of the matching rules. However, the Map and Insignificant
1529 Character Handling steps depend on the specific rule, as detailed in
1530 the description of these matching rules in the sections that follow.
1531
15324.2.1. bitStringMatch
1533
1534 The bitStringMatch rule compares an assertion value of the Bit String
1535 syntax to an attribute value of a syntax (e.g., the Bit String
1536 syntax) whose corresponding ASN.1 type is BIT STRING.
1537
1538
1539
1540Legg Standards Track [Page 27]
1541
1542
1543RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1544
1545
1546 If the corresponding ASN.1 type of the attribute syntax does not have
1547 a named bit list [ASN.1] (which is the case for the Bit String
1548 syntax), then the rule evaluates to TRUE if and only if the attribute
1549 value has the same number of bits as the assertion value and the bits
1550 match on a bitwise basis.
1551
1552 If the corresponding ASN.1 type does have a named bit list, then
1553 bitStringMatch operates as above, except that trailing zero bits in
1554 the attribute and assertion values are treated as absent.
1555
1556 The LDAP definition for the bitStringMatch rule is:
1557
1558 ( 2.5.13.16 NAME 'bitStringMatch'
1559 SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 )
1560
1561 The bitStringMatch rule is an equality matching rule.
1562
15634.2.2. booleanMatch
1564
1565 The booleanMatch rule compares an assertion value of the Boolean
1566 syntax to an attribute value of a syntax (e.g., the Boolean syntax)
1567 whose corresponding ASN.1 type is BOOLEAN.
1568
1569 The rule evaluates to TRUE if and only if the attribute value and the
1570 assertion value are both TRUE or both FALSE.
1571
1572 The LDAP definition for the booleanMatch rule is:
1573
1574 ( 2.5.13.13 NAME 'booleanMatch'
1575 SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
1576
1577 The booleanMatch rule is an equality matching rule.
1578
15794.2.3. caseExactIA5Match
1580
1581 The caseExactIA5Match rule compares an assertion value of the IA5
1582 String syntax to an attribute value of a syntax (e.g., the IA5 String
1583 syntax) whose corresponding ASN.1 type is IA5String.
1584
1585 The rule evaluates to TRUE if and only if the prepared attribute
1586 value character string and the prepared assertion value character
1587 string have the same number of characters and corresponding
1588 characters have the same code point.
1589
1590 In preparing the attribute value and assertion value for comparison,
1591 characters are not case folded in the Map preparation step, and only
1592 Insignificant Space Handling is applied in the Insignificant
1593 Character Handling step.
1594
1595
1596
1597Legg Standards Track [Page 28]
1598
1599
1600RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1601
1602
1603 The LDAP definition for the caseExactIA5Match rule is:
1604
1605 ( 1.3.6.1.4.1.1466.109.114.1 NAME 'caseExactIA5Match'
1606 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1607
1608 The caseExactIA5Match rule is an equality matching rule.
1609
16104.2.4. caseExactMatch
1611
1612 The caseExactMatch rule compares an assertion value of the Directory
1613 String syntax to an attribute value of a syntax (e.g., the Directory
1614 String, Printable String, Country String, or Telephone Number syntax)
1615 whose corresponding ASN.1 type is DirectoryString or one of the
1616 alternative string types of DirectoryString, such as PrintableString
1617 (the other alternatives do not correspond to any syntax defined in
1618 this document).
1619
1620 The rule evaluates to TRUE if and only if the prepared attribute
1621 value character string and the prepared assertion value character
1622 string have the same number of characters and corresponding
1623 characters have the same code point.
1624
1625 In preparing the attribute value and assertion value for comparison,
1626 characters are not case folded in the Map preparation step, and only
1627 Insignificant Space Handling is applied in the Insignificant
1628 Character Handling step.
1629
1630 The LDAP definition for the caseExactMatch rule is:
1631
1632 ( 2.5.13.5 NAME 'caseExactMatch'
1633 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1634
1635 The caseExactMatch rule is an equality matching rule.
1636
16374.2.5. caseExactOrderingMatch
1638
1639 The caseExactOrderingMatch rule compares an assertion value of the
1640 Directory String syntax to an attribute value of a syntax (e.g., the
1641 Directory String, Printable String, Country String, or Telephone
1642 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1643 one of its alternative string types.
1644
1645 The rule evaluates to TRUE if and only if, in the code point
1646 collation order, the prepared attribute value character string
1647 appears earlier than the prepared assertion value character string;
1648 i.e., the attribute value is "less than" the assertion value.
1649
1650
1651
1652
1653
1654Legg Standards Track [Page 29]
1655
1656
1657RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1658
1659
1660 In preparing the attribute value and assertion value for comparison,
1661 characters are not case folded in the Map preparation step, and only
1662 Insignificant Space Handling is applied in the Insignificant
1663 Character Handling step.
1664
1665 The LDAP definition for the caseExactOrderingMatch rule is:
1666
1667 ( 2.5.13.6 NAME 'caseExactOrderingMatch'
1668 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1669
1670 The caseExactOrderingMatch rule is an ordering matching rule.
1671
16724.2.6. caseExactSubstringsMatch
1673
1674 The caseExactSubstringsMatch rule compares an assertion value of the
1675 Substring Assertion syntax to an attribute value of a syntax (e.g.,
1676 the Directory String, Printable String, Country String, or Telephone
1677 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1678 one of its alternative string types.
1679
1680 The rule evaluates to TRUE if and only if (1) the prepared substrings
1681 of the assertion value match disjoint portions of the prepared
1682 attribute value character string in the order of the substrings in
1683 the assertion value, (2) an <initial> substring, if present, matches
1684 the beginning of the prepared attribute value character string, and
1685 (3) a <final> substring, if present, matches the end of the prepared
1686 attribute value character string. A prepared substring matches a
1687 portion of the prepared attribute value character string if
1688 corresponding characters have the same code point.
1689
1690 In preparing the attribute value and assertion value substrings for
1691 comparison, characters are not case folded in the Map preparation
1692 step, and only Insignificant Space Handling is applied in the
1693 Insignificant Character Handling step.
1694
1695 The LDAP definition for the caseExactSubstringsMatch rule is:
1696
1697 ( 2.5.13.7 NAME 'caseExactSubstringsMatch'
1698 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1699
1700 The caseExactSubstringsMatch rule is a substrings matching rule.
1701
17024.2.7. caseIgnoreIA5Match
1703
1704 The caseIgnoreIA5Match rule compares an assertion value of the IA5
1705 String syntax to an attribute value of a syntax (e.g., the IA5 String
1706 syntax) whose corresponding ASN.1 type is IA5String.
1707
1708
1709
1710
1711Legg Standards Track [Page 30]
1712
1713
1714RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1715
1716
1717 The rule evaluates to TRUE if and only if the prepared attribute
1718 value character string and the prepared assertion value character
1719 string have the same number of characters and corresponding
1720 characters have the same code point.
1721
1722 In preparing the attribute value and assertion value for comparison,
1723 characters are case folded in the Map preparation step, and only
1724 Insignificant Space Handling is applied in the Insignificant
1725 Character Handling step.
1726
1727 The LDAP definition for the caseIgnoreIA5Match rule is:
1728
1729 ( 1.3.6.1.4.1.1466.109.114.2 NAME 'caseIgnoreIA5Match'
1730 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1731
1732 The caseIgnoreIA5Match rule is an equality matching rule.
1733
17344.2.8. caseIgnoreIA5SubstringsMatch
1735
1736 The caseIgnoreIA5SubstringsMatch rule compares an assertion value of
1737 the Substring Assertion syntax to an attribute value of a syntax
1738 (e.g., the IA5 String syntax) whose corresponding ASN.1 type is
1739 IA5String.
1740
1741 The rule evaluates to TRUE if and only if (1) the prepared substrings
1742 of the assertion value match disjoint portions of the prepared
1743 attribute value character string in the order of the substrings in
1744 the assertion value, (2) an <initial> substring, if present, matches
1745 the beginning of the prepared attribute value character string, and
1746 (3) a <final> substring, if present, matches the end of the prepared
1747 attribute value character string. A prepared substring matches a
1748 portion of the prepared attribute value character string if
1749 corresponding characters have the same code point.
1750
1751 In preparing the attribute value and assertion value substrings for
1752 comparison, characters are case folded in the Map preparation step,
1753 and only Insignificant Space Handling is applied in the Insignificant
1754 Character Handling step.
1755
1756 ( 1.3.6.1.4.1.1466.109.114.3 NAME 'caseIgnoreIA5SubstringsMatch'
1757 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1758
1759 The caseIgnoreIA5SubstringsMatch rule is a substrings matching rule.
1760
17614.2.9. caseIgnoreListMatch
1762
1763 The caseIgnoreListMatch rule compares an assertion value that is a
1764 sequence of strings to an attribute value of a syntax (e.g., the
1765
1766
1767
1768Legg Standards Track [Page 31]
1769
1770
1771RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1772
1773
1774 Postal Address syntax) whose corresponding ASN.1 type is a SEQUENCE
1775 OF the DirectoryString ASN.1 type.
1776
1777 The rule evaluates to TRUE if and only if the attribute value and the
1778 assertion value have the same number of strings and corresponding
1779 strings (by position) match according to the caseIgnoreMatch matching
1780 rule.
1781
1782 In [X.520], the assertion syntax for this matching rule is defined to
1783 be:
1784
1785 SEQUENCE OF DirectoryString {ub-match}
1786
1787 That is, it is different from the corresponding type for the Postal
1788 Address syntax. The choice of the Postal Address syntax for the
1789 assertion syntax of the caseIgnoreListMatch in LDAP should not be
1790 seen as limiting the matching rule to apply only to attributes with
1791 the Postal Address syntax.
1792
1793 The LDAP definition for the caseIgnoreListMatch rule is:
1794
1795 ( 2.5.13.11 NAME 'caseIgnoreListMatch'
1796 SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
1797
1798 The caseIgnoreListMatch rule is an equality matching rule.
1799
18004.2.10. caseIgnoreListSubstringsMatch
1801
1802 The caseIgnoreListSubstringsMatch rule compares an assertion value of
1803 the Substring Assertion syntax to an attribute value of a syntax
1804 (e.g., the Postal Address syntax) whose corresponding ASN.1 type is a
1805 SEQUENCE OF the DirectoryString ASN.1 type.
1806
1807 The rule evaluates to TRUE if and only if the assertion value
1808 matches, per the caseIgnoreSubstringsMatch rule, the character string
1809 formed by concatenating the strings of the attribute value, except
1810 that none of the <initial>, <any>, or <final> substrings of the
1811 assertion value are considered to match a substring of the
1812 concatenated string which spans more than one of the original strings
1813 of the attribute value.
1814
1815 Note that, in terms of the LDAP-specific encoding of the Postal
1816 Address syntax, the concatenated string omits the <DOLLAR> line
1817 separator and the escaping of "\" and "$" characters.
1818
1819 The LDAP definition for the caseIgnoreListSubstringsMatch rule is:
1820
1821 ( 2.5.13.12 NAME 'caseIgnoreListSubstringsMatch'
1822
1823
1824
1825Legg Standards Track [Page 32]
1826
1827
1828RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1829
1830
1831 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1832
1833 The caseIgnoreListSubstringsMatch rule is a substrings matching rule.
1834
18354.2.11. caseIgnoreMatch
1836
1837 The caseIgnoreMatch rule compares an assertion value of the Directory
1838 String syntax to an attribute value of a syntax (e.g., the Directory
1839 String, Printable String, Country String, or Telephone Number syntax)
1840 whose corresponding ASN.1 type is DirectoryString or one of its
1841 alternative string types.
1842
1843 The rule evaluates to TRUE if and only if the prepared attribute
1844 value character string and the prepared assertion value character
1845 string have the same number of characters and corresponding
1846 characters have the same code point.
1847
1848 In preparing the attribute value and assertion value for comparison,
1849 characters are case folded in the Map preparation step, and only
1850 Insignificant Space Handling is applied in the Insignificant
1851 Character Handling step.
1852
1853 The LDAP definition for the caseIgnoreMatch rule is:
1854
1855 ( 2.5.13.2 NAME 'caseIgnoreMatch'
1856 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1857
1858 The caseIgnoreMatch rule is an equality matching rule.
1859
18604.2.12. caseIgnoreOrderingMatch
1861
1862 The caseIgnoreOrderingMatch rule compares an assertion value of the
1863 Directory String syntax to an attribute value of a syntax (e.g., the
1864 Directory String, Printable String, Country String, or Telephone
1865 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1866 one of its alternative string types.
1867
1868 The rule evaluates to TRUE if and only if, in the code point
1869 collation order, the prepared attribute value character string
1870 appears earlier than the prepared assertion value character string;
1871 i.e., the attribute value is "less than" the assertion value.
1872
1873 In preparing the attribute value and assertion value for comparison,
1874 characters are case folded in the Map preparation step, and only
1875 Insignificant Space Handling is applied in the Insignificant
1876 Character Handling step.
1877
1878 The LDAP definition for the caseIgnoreOrderingMatch rule is:
1879
1880
1881
1882Legg Standards Track [Page 33]
1883
1884
1885RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1886
1887
1888 ( 2.5.13.3 NAME 'caseIgnoreOrderingMatch'
1889 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1890
1891 The caseIgnoreOrderingMatch rule is an ordering matching rule.
1892
18934.2.13. caseIgnoreSubstringsMatch
1894
1895 The caseIgnoreSubstringsMatch rule compares an assertion value of the
1896 Substring Assertion syntax to an attribute value of a syntax (e.g.,
1897 the Directory String, Printable String, Country String, or Telephone
1898 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1899 one of its alternative string types.
1900
1901 The rule evaluates to TRUE if and only if (1) the prepared substrings
1902 of the assertion value match disjoint portions of the prepared
1903 attribute value character string in the order of the substrings in
1904 the assertion value, (2) an <initial> substring, if present, matches
1905 the beginning of the prepared attribute value character string, and
1906 (3) a <final> substring, if present, matches the end of the prepared
1907 attribute value character string. A prepared substring matches a
1908 portion of the prepared attribute value character string if
1909 corresponding characters have the same code point.
1910
1911 In preparing the attribute value and assertion value substrings for
1912 comparison, characters are case folded in the Map preparation step,
1913 and only Insignificant Space Handling is applied in the Insignificant
1914 Character Handling step.
1915
1916 The LDAP definition for the caseIgnoreSubstringsMatch rule is:
1917
1918 ( 2.5.13.4 NAME 'caseIgnoreSubstringsMatch'
1919 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1920
1921 The caseIgnoreSubstringsMatch rule is a substrings matching rule.
1922
19234.2.14. directoryStringFirstComponentMatch
1924
1925 The directoryStringFirstComponentMatch rule compares an assertion
1926 value of the Directory String syntax to an attribute value of a
1927 syntax whose corresponding ASN.1 type is a SEQUENCE with a mandatory
1928 first component of the DirectoryString ASN.1 type.
1929
1930 Note that the assertion syntax of this matching rule differs from the
1931 attribute syntax of attributes for which this is the equality
1932 matching rule.
1933
1934
1935
1936
1937
1938
1939Legg Standards Track [Page 34]
1940
1941
1942RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1943
1944
1945 The rule evaluates to TRUE if and only if the assertion value matches
1946 the first component of the attribute value using the rules of
1947 caseIgnoreMatch.
1948
1949 The LDAP definition for the directoryStringFirstComponentMatch
1950 matching rule is:
1951
1952 ( 2.5.13.31 NAME 'directoryStringFirstComponentMatch'
1953 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1954
1955 The directoryStringFirstComponentMatch rule is an equality matching
1956 rule. When using directoryStringFirstComponentMatch to compare two
1957 attribute values (of an applicable syntax), an assertion value must
1958 first be derived from one of the attribute values. An assertion
1959 value can be derived from an attribute value by taking the first
1960 component of that attribute value.
1961
19624.2.15. distinguishedNameMatch
1963
1964 The distinguishedNameMatch rule compares an assertion value of the DN
1965 syntax to an attribute value of a syntax (e.g., the DN syntax) whose
1966 corresponding ASN.1 type is DistinguishedName.
1967
1968 The rule evaluates to TRUE if and only if the attribute value and the
1969 assertion value have the same number of relative distinguished names
1970 and corresponding relative distinguished names (by position) are the
1971 same. A relative distinguished name (RDN) of the assertion value is
1972 the same as an RDN of the attribute value if and only if they have
1973 the same number of attribute value assertions and each attribute
1974 value assertion (AVA) of the first RDN is the same as the AVA of the
1975 second RDN with the same attribute type. The order of the AVAs is
1976 not significant. Also note that a particular attribute type may
1977 appear in at most one AVA in an RDN. Two AVAs with the same
1978 attribute type are the same if their values are equal according to
1979 the equality matching rule of the attribute type. If one or more of
1980 the AVA comparisons evaluate to Undefined and the remaining AVA
1981 comparisons return TRUE then the distinguishedNameMatch rule
1982 evaluates to Undefined.
1983
1984 The LDAP definition for the distinguishedNameMatch rule is:
1985
1986 ( 2.5.13.1 NAME 'distinguishedNameMatch'
1987 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
1988
1989 The distinguishedNameMatch rule is an equality matching rule.
1990
1991
1992
1993
1994
1995
1996Legg Standards Track [Page 35]
1997
1998
1999RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2000
2001
20024.2.16. generalizedTimeMatch
2003
2004 The generalizedTimeMatch rule compares an assertion value of the
2005 Generalized Time syntax to an attribute value of a syntax (e.g., the
2006 Generalized Time syntax) whose corresponding ASN.1 type is
2007 GeneralizedTime.
2008
2009 The rule evaluates to TRUE if and only if the attribute value
2010 represents the same universal coordinated time as the assertion
2011 value. If a time is specified with the minutes or seconds absent,
2012 then the number of minutes or seconds (respectively) is assumed to be
2013 zero.
2014
2015 The LDAP definition for the generalizedTimeMatch rule is:
2016
2017 ( 2.5.13.27 NAME 'generalizedTimeMatch'
2018 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
2019
2020 The generalizedTimeMatch rule is an equality matching rule.
2021
20224.2.17. generalizedTimeOrderingMatch
2023
2024 The generalizedTimeOrderingMatch rule compares the time ordering of
2025 an assertion value of the Generalized Time syntax to an attribute
2026 value of a syntax (e.g., the Generalized Time syntax) whose
2027 corresponding ASN.1 type is GeneralizedTime.
2028
2029 The rule evaluates to TRUE if and only if the attribute value
2030 represents a universal coordinated time that is earlier than the
2031 universal coordinated time represented by the assertion value.
2032
2033 The LDAP definition for the generalizedTimeOrderingMatch rule is:
2034
2035 ( 2.5.13.28 NAME 'generalizedTimeOrderingMatch'
2036 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
2037
2038 The generalizedTimeOrderingMatch rule is an ordering matching rule.
2039
20404.2.18. integerFirstComponentMatch
2041
2042 The integerFirstComponentMatch rule compares an assertion value of
2043 the Integer syntax to an attribute value of a syntax (e.g., the DIT
2044 Structure Rule Description syntax) whose corresponding ASN.1 type is
2045 a SEQUENCE with a mandatory first component of the INTEGER ASN.1
2046 type.
2047
2048
2049
2050
2051
2052
2053Legg Standards Track [Page 36]
2054
2055
2056RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2057
2058
2059 Note that the assertion syntax of this matching rule differs from the
2060 attribute syntax of attributes for which this is the equality
2061 matching rule.
2062
2063 The rule evaluates to TRUE if and only if the assertion value and the
2064 first component of the attribute value are the same integer value.
2065
2066 The LDAP definition for the integerFirstComponentMatch matching rule
2067 is:
2068
2069 ( 2.5.13.29 NAME 'integerFirstComponentMatch'
2070 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
2071
2072 The integerFirstComponentMatch rule is an equality matching rule.
2073 When using integerFirstComponentMatch to compare two attribute values
2074 (of an applicable syntax), an assertion value must first be derived
2075 from one of the attribute values. An assertion value can be derived
2076 from an attribute value by taking the first component of that
2077 attribute value.
2078
20794.2.19. integerMatch
2080
2081 The integerMatch rule compares an assertion value of the Integer
2082 syntax to an attribute value of a syntax (e.g., the Integer syntax)
2083 whose corresponding ASN.1 type is INTEGER.
2084
2085 The rule evaluates to TRUE if and only if the attribute value and the
2086 assertion value are the same integer value.
2087
2088 The LDAP definition for the integerMatch matching rule is:
2089
2090 ( 2.5.13.14 NAME 'integerMatch'
2091 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
2092
2093 The integerMatch rule is an equality matching rule.
2094
20954.2.20. integerOrderingMatch
2096
2097 The integerOrderingMatch rule compares an assertion value of the
2098 Integer syntax to an attribute value of a syntax (e.g., the Integer
2099 syntax) whose corresponding ASN.1 type is INTEGER.
2100
2101 The rule evaluates to TRUE if and only if the integer value of the
2102 attribute value is less than the integer value of the assertion
2103 value.
2104
2105 The LDAP definition for the integerOrderingMatch matching rule is:
2106
2107
2108
2109
2110Legg Standards Track [Page 37]
2111
2112
2113RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2114
2115
2116 ( 2.5.13.15 NAME 'integerOrderingMatch'
2117 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
2118
2119 The integerOrderingMatch rule is an ordering matching rule.
2120
21214.2.21. keywordMatch
2122
2123 The keywordMatch rule compares an assertion value of the Directory
2124 String syntax to an attribute value of a syntax (e.g., the Directory
2125 String syntax) whose corresponding ASN.1 type is DirectoryString.
2126
2127 The rule evaluates to TRUE if and only if the assertion value
2128 character string matches any keyword in the attribute value. The
2129 identification of keywords in the attribute value and the exactness
2130 of the match are both implementation specific.
2131
2132 The LDAP definition for the keywordMatch rule is:
2133
2134 ( 2.5.13.33 NAME 'keywordMatch'
2135 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
2136
21374.2.22. numericStringMatch
2138
2139 The numericStringMatch rule compares an assertion value of the
2140 Numeric String syntax to an attribute value of a syntax (e.g., the
2141 Numeric String syntax) whose corresponding ASN.1 type is
2142 NumericString.
2143
2144 The rule evaluates to TRUE if and only if the prepared attribute
2145 value character string and the prepared assertion value character
2146 string have the same number of characters and corresponding
2147 characters have the same code point.
2148
2149 In preparing the attribute value and assertion value for comparison,
2150 characters are not case folded in the Map preparation step, and only
2151 numericString Insignificant Character Handling is applied in the
2152 Insignificant Character Handling step.
2153
2154 The LDAP definition for the numericStringMatch matching rule is:
2155
2156 ( 2.5.13.8 NAME 'numericStringMatch'
2157 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 )
2158
2159 The numericStringMatch rule is an equality matching rule.
2160
2161
2162
2163
2164
2165
2166
2167Legg Standards Track [Page 38]
2168
2169
2170RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2171
2172
21734.2.23. numericStringOrderingMatch
2174
2175 The numericStringOrderingMatch rule compares an assertion value of
2176 the Numeric String syntax to an attribute value of a syntax (e.g.,
2177 the Numeric String syntax) whose corresponding ASN.1 type is
2178 NumericString.
2179
2180 The rule evaluates to TRUE if and only if, in the code point
2181 collation order, the prepared attribute value character string
2182 appears earlier than the prepared assertion value character string;
2183 i.e., the attribute value is "less than" the assertion value.
2184
2185 In preparing the attribute value and assertion value for comparison,
2186 characters are not case folded in the Map preparation step, and only
2187 numericString Insignificant Character Handling is applied in the
2188 Insignificant Character Handling step.
2189
2190 The rule is identical to the caseIgnoreOrderingMatch rule except that
2191 all space characters are skipped during comparison (case is
2192 irrelevant as the characters are numeric).
2193
2194 The LDAP definition for the numericStringOrderingMatch matching rule
2195 is:
2196
2197 ( 2.5.13.9 NAME 'numericStringOrderingMatch'
2198 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 )
2199
2200 The numericStringOrderingMatch rule is an ordering matching rule.
2201
22024.2.24. numericStringSubstringsMatch
2203
2204 The numericStringSubstringsMatch rule compares an assertion value of
2205 the Substring Assertion syntax to an attribute value of a syntax
2206 (e.g., the Numeric String syntax) whose corresponding ASN.1 type is
2207 NumericString.
2208
2209 The rule evaluates to TRUE if and only if (1) the prepared substrings
2210 of the assertion value match disjoint portions of the prepared
2211 attribute value character string in the order of the substrings in
2212 the assertion value, (2) an <initial> substring, if present, matches
2213 the beginning of the prepared attribute value character string, and
2214 (3) a <final> substring, if present, matches the end of the prepared
2215 attribute value character string. A prepared substring matches a
2216 portion of the prepared attribute value character string if
2217 corresponding characters have the same code point.
2218
2219 In preparing the attribute value and assertion value for comparison,
2220 characters are not case folded in the Map preparation step, and only
2221
2222
2223
2224Legg Standards Track [Page 39]
2225
2226
2227RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2228
2229
2230 numericString Insignificant Character Handling is applied in the
2231 Insignificant Character Handling step.
2232
2233 The LDAP definition for the numericStringSubstringsMatch matching
2234 rule is:
2235
2236 ( 2.5.13.10 NAME 'numericStringSubstringsMatch'
2237 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
2238
2239 The numericStringSubstringsMatch rule is a substrings matching rule.
2240
22414.2.25. objectIdentifierFirstComponentMatch
2242
2243 The objectIdentifierFirstComponentMatch rule compares an assertion
2244 value of the OID syntax to an attribute value of a syntax (e.g., the
2245 Attribute Type Description, DIT Content Rule Description, LDAP Syntax
2246 Description, Matching Rule Description, Matching Rule Use
2247 Description, Name Form Description, or Object Class Description
2248 syntax) whose corresponding ASN.1 type is a SEQUENCE with a mandatory
2249 first component of the OBJECT IDENTIFIER ASN.1 type.
2250
2251 Note that the assertion syntax of this matching rule differs from the
2252 attribute syntax of attributes for which this is the equality
2253 matching rule.
2254
2255 The rule evaluates to TRUE if and only if the assertion value matches
2256 the first component of the attribute value using the rules of
2257 objectIdentifierMatch.
2258
2259 The LDAP definition for the objectIdentifierFirstComponentMatch
2260 matching rule is:
2261
2262 ( 2.5.13.30 NAME 'objectIdentifierFirstComponentMatch'
2263 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
2264
2265 The objectIdentifierFirstComponentMatch rule is an equality matching
2266 rule. When using objectIdentifierFirstComponentMatch to compare two
2267 attribute values (of an applicable syntax), an assertion value must
2268 first be derived from one of the attribute values. An assertion
2269 value can be derived from an attribute value by taking the first
2270 component of that attribute value.
2271
22724.2.26. objectIdentifierMatch
2273
2274 The objectIdentifierMatch rule compares an assertion value of the OID
2275 syntax to an attribute value of a syntax (e.g., the OID syntax) whose
2276 corresponding ASN.1 type is OBJECT IDENTIFIER.
2277
2278
2279
2280
2281Legg Standards Track [Page 40]
2282
2283
2284RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2285
2286
2287 The rule evaluates to TRUE if and only if the assertion value and the
2288 attribute value represent the same object identifier; that is, the
2289 same sequence of integers, whether represented explicitly in the
2290 <numericoid> form of <oid> or implicitly in the <descr> form (see
2291 [RFC4512]).
2292
2293 If an LDAP client supplies an assertion value in the <descr> form and
2294 the chosen descriptor is not recognized by the server, then the
2295 objectIdentifierMatch rule evaluates to Undefined.
2296
2297 The LDAP definition for the objectIdentifierMatch matching rule is:
2298
2299 ( 2.5.13.0 NAME 'objectIdentifierMatch'
2300 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
2301
2302 The objectIdentifierMatch rule is an equality matching rule.
2303
23044.2.27. octetStringMatch
2305
2306 The octetStringMatch rule compares an assertion value of the Octet
2307 String syntax to an attribute value of a syntax (e.g., the Octet
2308 String or JPEG syntax) whose corresponding ASN.1 type is the OCTET
2309 STRING ASN.1 type.
2310
2311 The rule evaluates to TRUE if and only if the attribute value and the
2312 assertion value are the same length and corresponding octets (by
2313 position) are the same.
2314
2315 The LDAP definition for the octetStringMatch matching rule is:
2316
2317 ( 2.5.13.17 NAME 'octetStringMatch'
2318 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
2319
2320 The octetStringMatch rule is an equality matching rule.
2321
23224.2.28. octetStringOrderingMatch
2323
2324 The octetStringOrderingMatch rule compares an assertion value of the
2325 Octet String syntax to an attribute value of a syntax (e.g., the
2326 Octet String or JPEG syntax) whose corresponding ASN.1 type is the
2327 OCTET STRING ASN.1 type.
2328
2329 The rule evaluates to TRUE if and only if the attribute value appears
2330 earlier in the collation order than the assertion value. The rule
2331 compares octet strings from the first octet to the last octet, and
2332 from the most significant bit to the least significant bit within the
2333 octet. The first occurrence of a different bit determines the
2334 ordering of the strings. A zero bit precedes a one bit. If the
2335
2336
2337
2338Legg Standards Track [Page 41]
2339
2340
2341RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2342
2343
2344 strings contain different numbers of octets but the longer string is
2345 identical to the shorter string up to the length of the shorter
2346 string, then the shorter string precedes the longer string.
2347
2348 The LDAP definition for the octetStringOrderingMatch matching rule
2349 is:
2350
2351 ( 2.5.13.18 NAME 'octetStringOrderingMatch'
2352 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
2353
2354 The octetStringOrderingMatch rule is an ordering matching rule.
2355
23564.2.29. telephoneNumberMatch
2357
2358 The telephoneNumberMatch rule compares an assertion value of the
2359 Telephone Number syntax to an attribute value of a syntax (e.g., the
2360 Telephone Number syntax) whose corresponding ASN.1 type is a
2361 PrintableString representing a telephone number.
2362
2363 The rule evaluates to TRUE if and only if the prepared attribute
2364 value character string and the prepared assertion value character
2365 string have the same number of characters and corresponding
2366 characters have the same code point.
2367
2368 In preparing the attribute value and assertion value for comparison,
2369 characters are case folded in the Map preparation step, and only
2370 telephoneNumber Insignificant Character Handling is applied in the
2371 Insignificant Character Handling step.
2372
2373 The LDAP definition for the telephoneNumberMatch matching rule is:
2374
2375 ( 2.5.13.20 NAME 'telephoneNumberMatch'
2376 SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
2377
2378 The telephoneNumberMatch rule is an equality matching rule.
2379
23804.2.30. telephoneNumberSubstringsMatch
2381
2382 The telephoneNumberSubstringsMatch rule compares an assertion value
2383 of the Substring Assertion syntax to an attribute value of a syntax
2384 (e.g., the Telephone Number syntax) whose corresponding ASN.1 type is
2385 a PrintableString representing a telephone number.
2386
2387 The rule evaluates to TRUE if and only if (1) the prepared substrings
2388 of the assertion value match disjoint portions of the prepared
2389 attribute value character string in the order of the substrings in
2390 the assertion value, (2) an <initial> substring, if present, matches
2391 the beginning of the prepared attribute value character string, and
2392
2393
2394
2395Legg Standards Track [Page 42]
2396
2397
2398RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2399
2400
2401 (3) a <final> substring, if present, matches the end of the prepared
2402 attribute value character string. A prepared substring matches a
2403 portion of the prepared attribute value character string if
2404 corresponding characters have the same code point.
2405
2406 In preparing the attribute value and assertion value substrings for
2407 comparison, characters are case folded in the Map preparation step,
2408 and only telephoneNumber Insignificant Character Handling is applied
2409 in the Insignificant Character Handling step.
2410
2411 The LDAP definition for the telephoneNumberSubstringsMatch matching
2412 rule is:
2413
2414 ( 2.5.13.21 NAME 'telephoneNumberSubstringsMatch'
2415 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
2416
2417 The telephoneNumberSubstringsMatch rule is a substrings matching
2418 rule.
2419
24204.2.31. uniqueMemberMatch
2421
2422 The uniqueMemberMatch rule compares an assertion value of the Name
2423 And Optional UID syntax to an attribute value of a syntax (e.g., the
2424 Name And Optional UID syntax) whose corresponding ASN.1 type is
2425 NameAndOptionalUID.
2426
2427 The rule evaluates to TRUE if and only if the <distinguishedName>
2428 components of the assertion value and attribute value match according
2429 to the distinguishedNameMatch rule and either, (1) the <BitString>
2430 component is absent from both the attribute value and assertion
2431 value, or (2) the <BitString> component is present in both the
2432 attribute value and the assertion value and the <BitString> component
2433 of the assertion value matches the <BitString> component of the
2434 attribute value according to the bitStringMatch rule.
2435
2436 Note that this matching rule has been altered from its description in
2437 X.520 [X.520] in order to make the matching rule commutative. Server
2438 implementors should consider using the original X.520 semantics
2439 (where the matching was less exact) for approximate matching of
2440 attributes with uniqueMemberMatch as the equality matching rule.
2441
2442 The LDAP definition for the uniqueMemberMatch matching rule is:
2443
2444 ( 2.5.13.23 NAME 'uniqueMemberMatch'
2445 SYNTAX 1.3.6.1.4.1.1466.115.121.1.34 )
2446
2447 The uniqueMemberMatch rule is an equality matching rule.
2448
2449
2450
2451
2452Legg Standards Track [Page 43]
2453
2454
2455RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2456
2457
24584.2.32. wordMatch
2459
2460 The wordMatch rule compares an assertion value of the Directory
2461 String syntax to an attribute value of a syntax (e.g., the Directory
2462 String syntax) whose corresponding ASN.1 type is DirectoryString.
2463
2464 The rule evaluates to TRUE if and only if the assertion value word
2465 matches, according to the semantics of caseIgnoreMatch, any word in
2466 the attribute value. The precise definition of a word is
2467 implementation specific.
2468
2469 The LDAP definition for the wordMatch rule is:
2470
2471 ( 2.5.13.32 NAME 'wordMatch'
2472 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
2473
24745. Security Considerations
2475
2476 In general, the LDAP-specific encodings for syntaxes defined in this
2477 document do not define canonical encodings. That is, a
2478 transformation from an LDAP-specific encoding into some other
2479 encoding (e.g., BER) and back into the LDAP-specific encoding will
2480 not necessarily reproduce exactly the original octets of the LDAP-
2481 specific encoding. Therefore, an LDAP-specific encoding should not
2482 be used where a canonical encoding is required.
2483
2484 Furthermore, the LDAP-specific encodings do not necessarily enable an
2485 alternative encoding of values of the Directory String and DN
2486 syntaxes to be reconstructed; e.g., a transformation from a
2487 Distinguished Encoding Rules (DER) [BER] encoding to an LDAP-specific
2488 encoding and back to a DER encoding may not reproduce the original
2489 DER encoding. Therefore, LDAP-specific encodings should not be used
2490 where reversibility to DER is needed; e.g., for the verification of
2491 digital signatures. Instead, DER or a DER-reversible encoding should
2492 be used.
2493
2494 When interpreting security-sensitive fields (in particular, fields
2495 used to grant or deny access), implementations MUST ensure that any
2496 matching rule comparisons are done on the underlying abstract value,
2497 regardless of the particular encoding used.
2498
24996. Acknowledgements
2500
2501 This document is primarily a revision of RFC 2252 by M. Wahl, A.
2502 Coulbeck, T. Howes, and S. Kille. RFC 2252 was a product of the IETF
2503 ASID Working Group.
2504
2505
2506
2507
2508
2509Legg Standards Track [Page 44]
2510
2511
2512RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2513
2514
2515 This document is based on input from the IETF LDAPBIS working group.
2516 The author would like to thank Kathy Dally for editing the early
2517 drafts of this document, and Jim Sermersheim and Kurt Zeilenga for
2518 their significant contributions to this revision.
2519
25207. IANA Considerations
2521
2522 The Internet Assigned Numbers Authority (IANA) has updated the LDAP
2523 descriptors registry [BCP64] as indicated by the following templates:
2524
2525 Subject: Request for LDAP Descriptor Registration Update
2526 Descriptor (short name): see comment
2527 Object Identifier: see comment
2528 Person & email address to contact for further information:
2529 Steven Legg <steven.legg@eb2bcom.com>
2530 Usage: see comment
2531 Specification: RFC 4517
2532 Author/Change Controller: IESG
2533
2534 NAME Type OID
2535 ------------------------------------------------------------------
2536 bitStringMatch M 2.5.13.16
2537 booleanMatch M 2.5.13.13
2538 caseExactIA5Match M 1.3.6.1.4.1.1466.109.114.1
2539 caseExactMatch M 2.5.13.5
2540 caseExactOrderingMatch M 2.5.13.6
2541 caseExactSubstringsMatch M 2.5.13.7
2542 caseIgnoreIA5Match M 1.3.6.1.4.1.1466.109.114.2
2543 caseIgnoreListMatch M 2.5.13.11
2544 caseIgnoreListSubstringsMatch M 2.5.13.12
2545 caseIgnoreMatch M 2.5.13.2
2546 caseIgnoreOrderingMatch M 2.5.13.3
2547 caseIgnoreSubstringsMatch M 2.5.13.4
2548 directoryStringFirstComponentMatch M 2.5.13.31
2549 distinguishedNameMatch M 2.5.13.1
2550 generalizedTimeMatch M 2.5.13.27
2551 generalizedTimeOrderingMatch M 2.5.13.28
2552 integerFirstComponentMatch M 2.5.13.29
2553 integerMatch M 2.5.13.14
2554 integerOrderingMatch M 2.5.13.15
2555 keywordMatch M 2.5.13.33
2556 numericStringMatch M 2.5.13.8
2557 numericStringOrderingMatch M 2.5.13.9
2558 numericStringSubstringsMatch M 2.5.13.10
2559 objectIdentifierFirstComponentMatch M 2.5.13.30
2560 octetStringMatch M 2.5.13.17
2561 octetStringOrderingMatch M 2.5.13.18
2562 telephoneNumberMatch M 2.5.13.20
2563
2564
2565
2566Legg Standards Track [Page 45]
2567
2568
2569RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2570
2571
2572 telephoneNumberSubstringsMatch M 2.5.13.21
2573 uniqueMemberMatch M 2.5.13.23
2574 wordMatch M 2.5.13.32
2575
2576 The descriptor for the object identifier 2.5.13.0 was incorrectly
2577 registered as objectIdentifiersMatch (extraneous \`s') in BCP 64.
2578 It has been changed to the following, with a reference to
2579 RFC 4517.
2580
2581 NAME Type OID
2582 ------------------------------------------------------------------
2583 objectIdentifierMatch M 2.5.13.0
2584
2585 Subject: Request for LDAP Descriptor Registration
2586 Descriptor (short name): caseIgnoreIA5SubstringsMatch
2587 Object Identifier: 1.3.6.1.4.1.1466.109.114.3
2588 Person & email address to contact for further information:
2589 Steven Legg <steven.legg@eb2bcom.com>
2590 Usage: other (M)
2591 Specification: RFC 4517
2592 Author/Change Controller: IESG
2593
25948. References
2595
25968.1. Normative References
2597
2598 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
2599 Requirement Levels", BCP 14, RFC 2119, March 1997.
2600
2601 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
2602 10646", STD 63, RFC 3629, November 2003.
2603
2604 [RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
2605 Specifications: ABNF", RFC 4234, October 2005.
2606
2607 [RFC4510] Zeilenga, K., Ed., "Lightweight Directory Access Protocol
2608 (LDAP): Technical Specification Road Map", RFC 4510, June
2609 2006.
2610
2611 [RFC4511] Sermersheim, J., Ed., "Lightweight Directory Access
2612 Protocol (LDAP): The Protocol", RFC 4511, June 2006.
2613
2614 [RFC4512] Zeilenga, K., "Lightweight Directory Access Protocol
2615 (LDAP): Directory Information Models", RFC 4512, June
2616 2006.
2617
2618
2619
2620
2621
2622
2623Legg Standards Track [Page 46]
2624
2625
2626RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2627
2628
2629 [RFC4514] Zeilenga, K., Ed., "Lightweight Directory Access Protocol
2630 (LDAP): String Representation of Distinguished Names", RFC
2631 4514, June 2006.
2632
2633 [RFC4518] Zeilenga, K., "Lightweight Directory Access Protocol
2634 (LDAP): Internationalized String Preparation", RFC 4518,
2635 June 2006.
2636
2637 [RFC4520] Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
2638 Considerations for the Lightweight Directory Access
2639 Protocol (LDAP)", BCP 64, RFC 4520, June 2006.
2640
2641 [E.123] Notation for national and international telephone numbers,
2642 ITU-T Recommendation E.123, 1988.
2643
2644 [FAX] Standardization of Group 3 facsimile apparatus for
2645 document transmission - Terminal Equipment and Protocols
2646 for Telematic Services, ITU-T Recommendation T.4, 1993
2647
2648 [T.50] International Reference Alphabet (IRA) (Formerly
2649 International Alphabet No. 5 or IA5) Information
2650 Technology - 7-Bit Coded Character Set for Information
2651 Interchange, ITU-T Recommendation T.50, 1992
2652
2653 [X.420] ITU-T Recommendation X.420 (1996) | ISO/IEC 10021-7:1997,
2654 Information Technology - Message Handling Systems (MHS):
2655 Interpersonal messaging system
2656
2657 [X.501] ITU-T Recommendation X.501 (1993) | ISO/IEC 9594-2:1994,
2658 Information Technology - Open Systems Interconnection -
2659 The Directory: Models
2660
2661 [X.520] ITU-T Recommendation X.520 (1993) | ISO/IEC 9594-6:1994,
2662 Information Technology - Open Systems Interconnection -
2663 The Directory: Selected attribute types
2664
2665 [ASN.1] ITU-T Recommendation X.680 (07/02) | ISO/IEC 8824-1:2002,
2666 Information technology - Abstract Syntax Notation One
2667 (ASN.1): Specification of basic notation
2668
2669 [ISO3166] ISO 3166, "Codes for the representation of names of
2670 countries".
2671
2672 [ISO8601] ISO 8601:2004, "Data elements and interchange formats --
2673 Information interchange -- Representation of dates and
2674 times".
2675
2676
2677
2678
2679
2680Legg Standards Track [Page 47]
2681
2682
2683RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2684
2685
2686 [UCS] Universal Multiple-Octet Coded Character Set (UCS) -
2687 Architecture and Basic Multilingual Plane, ISO/IEC 10646-
2688 1: 1993 (with amendments).
2689
2690 [JPEG] JPEG File Interchange Format (Version 1.02). Eric
2691 Hamilton, C-Cube Microsystems, Milpitas, CA, September 1,
2692 1992.
2693
26948.2. Informative References
2695
2696 [RFC4519] Sciberras, A., Ed., "Lightweight Directory Access Protocol
2697 (LDAP): Schema for User Applications", RFC 4519, June
2698 2006.
2699
2700 [RFC4523] Zeilenga, K., "Lightweight Directory Access Protocol
2701 (LDAP) Schema Definitions for X.509 Certificates", RFC
2702 4523, June 2006.
2703
2704 [X.500] ITU-T Recommendation X.500 (1993) | ISO/IEC 9594-1:1994,
2705 Information Technology - Open Systems Interconnection -
2706 The Directory: Overview of concepts, models and services
2707
2708 [BER] ITU-T Recommendation X.690 (07/02) | ISO/IEC 8825-1:2002,
2709 Information technology - ASN.1 encoding rules:
2710 Specification of Basic Encoding Rules (BER), Canonical
2711 Encoding Rules (CER) and Distinguished Encoding Rules
2712 (DER)
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737Legg Standards Track [Page 48]
2738
2739
2740RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2741
2742
2743Appendix A. Summary of Syntax Object Identifiers
2744
2745 The following list summarizes the object identifiers assigned to the
2746 syntaxes defined in this document.
2747
2748 Syntax OBJECT IDENTIFIER
2749 ==============================================================
2750 Attribute Type Description 1.3.6.1.4.1.1466.115.121.1.3
2751 Bit String 1.3.6.1.4.1.1466.115.121.1.6
2752 Boolean 1.3.6.1.4.1.1466.115.121.1.7
2753 Country String 1.3.6.1.4.1.1466.115.121.1.11
2754 Delivery Method 1.3.6.1.4.1.1466.115.121.1.14
2755 Directory String 1.3.6.1.4.1.1466.115.121.1.15
2756 DIT Content Rule Description 1.3.6.1.4.1.1466.115.121.1.16
2757 DIT Structure Rule Description 1.3.6.1.4.1.1466.115.121.1.17
2758 DN 1.3.6.1.4.1.1466.115.121.1.12
2759 Enhanced Guide 1.3.6.1.4.1.1466.115.121.1.21
2760 Facsimile Telephone Number 1.3.6.1.4.1.1466.115.121.1.22
2761 Fax 1.3.6.1.4.1.1466.115.121.1.23
2762 Generalized Time 1.3.6.1.4.1.1466.115.121.1.24
2763 Guide 1.3.6.1.4.1.1466.115.121.1.25
2764 IA5 String 1.3.6.1.4.1.1466.115.121.1.26
2765 Integer 1.3.6.1.4.1.1466.115.121.1.27
2766 JPEG 1.3.6.1.4.1.1466.115.121.1.28
2767 LDAP Syntax Description 1.3.6.1.4.1.1466.115.121.1.54
2768 Matching Rule Description 1.3.6.1.4.1.1466.115.121.1.30
2769 Matching Rule Use Description 1.3.6.1.4.1.1466.115.121.1.31
2770 Name And Optional UID 1.3.6.1.4.1.1466.115.121.1.34
2771 Name Form Description 1.3.6.1.4.1.1466.115.121.1.35
2772 Numeric String 1.3.6.1.4.1.1466.115.121.1.36
2773 Object Class Description 1.3.6.1.4.1.1466.115.121.1.37
2774 Octet String 1.3.6.1.4.1.1466.115.121.1.40
2775 OID 1.3.6.1.4.1.1466.115.121.1.38
2776 Other Mailbox 1.3.6.1.4.1.1466.115.121.1.39
2777 Postal Address 1.3.6.1.4.1.1466.115.121.1.41
2778 Printable String 1.3.6.1.4.1.1466.115.121.1.44
2779 Substring Assertion 1.3.6.1.4.1.1466.115.121.1.58
2780 Telephone Number 1.3.6.1.4.1.1466.115.121.1.50
2781 Teletex Terminal Identifier 1.3.6.1.4.1.1466.115.121.1.51
2782 Telex Number 1.3.6.1.4.1.1466.115.121.1.52
2783 UTC Time 1.3.6.1.4.1.1466.115.121.1.53
2784
2785Appendix B. Changes from RFC 2252
2786
2787 This annex lists the significant differences between this
2788 specification and RFC 2252.
2789
2790
2791
2792
2793
2794Legg Standards Track [Page 49]
2795
2796
2797RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2798
2799
2800 This annex is provided for informational purposes only. It is not a
2801 normative part of this specification.
2802
2803 1. The IESG Note has been removed.
2804
2805 2. The major part of Sections 4, 5 and 7 has been moved to [RFC4512]
2806 and revised. Changes to the parts of these sections moved to
2807 [RFC4512] are detailed in [RFC4512].
2808
2809 3. BNF descriptions of syntax formats have been replaced by ABNF
2810 [RFC4234] specifications.
2811
2812 4. The ambiguous statement in RFC 2252, Section 4.3 regarding the
2813 use of a backslash quoting mechanism to escape separator symbols
2814 has been removed. The escaping mechanism is now explicitly
2815 represented in the ABNF for the syntaxes where this provision
2816 applies.
2817
2818 5. The description of each of the LDAP syntaxes has been expanded so
2819 that they are less dependent on knowledge of X.500 for
2820 interpretation.
2821
2822 6. The relationship of LDAP syntaxes to corresponding ASN.1 type
2823 definitions has been made explicit.
2824
2825 7. The set of characters allowed in a <PrintableString> (formerly
2826 <printablestring>) has been corrected to align with the
2827 PrintableString ASN.1 type in [ASN.1]. Specifically, the double
2828 quote character has been removed and the single quote character
2829 and equals sign have been added.
2830
2831 8. Values of the Directory String, Printable String and Telephone
2832 Number syntaxes are now required to have at least one character.
2833
2834 9. The <DITContentRuleDescription>, <NameFormDescription> and
2835 <DITStructureRuleDescription> rules have been moved to [RFC4512].
2836
2837 10. The corresponding ASN.1 type for the Other Mailbox syntax has
2838 been incorporated from RFC 1274.
2839
2840 11. A corresponding ASN.1 type for the LDAP Syntax Description syntax
2841 has been invented.
2842
2843 12. The Binary syntax has been removed because it was not adequately
2844 specified, implementations with different incompatible
2845 interpretations exist, and it was confused with the ;binary
2846 transfer encoding.
2847
2848
2849
2850
2851Legg Standards Track [Page 50]
2852
2853
2854RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2855
2856
2857 13. All discussion of transfer options, including the ";binary"
2858 option, has been removed. All imperatives regarding binary
2859 transfer of values have been removed.
2860
2861 14. The Delivery Method, Enhanced Guide, Guide, Octet String, Teletex
2862 Terminal Identifier and Telex Number syntaxes from RFC 2256 have
2863 been incorporated.
2864
2865 15. The <criteria> rule for the Enhanced Guide and Guide syntaxes has
2866 been extended to accommodate empty "and" and "or" expressions.
2867
2868 16. An encoding for the <ttx-value> rule in the Teletex Terminal
2869 Identifier syntax has been defined.
2870
2871 17. The PKI-related syntaxes (Certificate, Certificate List and
2872 Certificate Pair) have been removed. They are reintroduced in
2873 [RFC4523] (as is the Supported Algorithm syntax from RFC 2256).
2874
2875 18. The MHS OR Address syntax has been removed since its
2876 specification (in RFC 2156) is not at draft standard maturity.
2877
2878 19. The DL Submit Permission syntax has been removed as it depends on
2879 the MHS OR Address syntax.
2880
2881 20. The Presentation Address syntax has been removed since its
2882 specification (in RFC 1278) is not at draft standard maturity.
2883
2884 21. The ACI Item, Access Point, Audio, Data Quality, DSA Quality, DSE
2885 Type, LDAP Schema Description, Master And Shadow Access Points,
2886 Modify Rights, Protocol Information, Subtree Specification,
2887 Supplier Information, Supplier Or Consumer and Supplier And
2888 Consumer syntaxes have been removed. These syntaxes are
2889 referenced in RFC 2252, but not defined.
2890
2891 22. The LDAP Schema Definition syntax (defined in RFC 2927) and the
2892 Mail Preference syntax have been removed on the grounds that they
2893 are out of scope for the core specification.
2894
2895 23. The description of each of the matching rules has been expanded
2896 so that they are less dependent on knowledge of X.500 for
2897 interpretation.
2898
2899 24. The caseIgnoreIA5SubstringsMatch matching rule from RFC 2798 has
2900 been added.
2901
2902 25. The caseIgnoreListSubstringsMatch, caseIgnoreOrderingMatch and
2903 caseIgnoreSubstringsMatch matching rules have been added to the
2904 list of matching rules for which the provisions for handling
2905
2906
2907
2908Legg Standards Track [Page 51]
2909
2910
2911RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2912
2913
2914 leading, trailing and multiple adjoining whitespace characters
2915 apply (now through string preparation). This is consistent with
2916 the definitions of these matching rules in X.500. The
2917 caseIgnoreIA5SubstringsMatch rule has also been added to the
2918 list.
2919
2920 26. The specification of the octetStringMatch matching rule from
2921 RFC 2256 has been added to this document.
2922
2923 27. The presentationAddressMatch matching rule has been removed as it
2924 depends on an assertion syntax (Presentation Address) that is not
2925 at draft standard maturity.
2926
2927 28. The protocolInformationMatch matching rule has been removed as it
2928 depends on an undefined assertion syntax (Protocol Information).
2929
2930 29. The definitive reference for ASN.1 has been changed from X.208 to
2931 X.680 since X.680 is the version of ASN.1 referred to by X.500.
2932
2933 30. The specification of the caseIgnoreListSubstringsMatch matching
2934 rule from RFC 2798 & X.520 has been added.
2935
2936 31. String preparation algorithms have been applied to the character
2937 string matching rules.
2938
2939 32. The specifications of the booleanMatch, caseExactMatch,
2940 caseExactOrderingMatch, caseExactSubstringsMatch,
2941 directoryStringFirstComponentMatch, integerOrderingMatch,
2942 keywordMatch, numericStringOrderingMatch,
2943 octetStringOrderingMatch and wordMatch matching rules from
2944 RFC 3698 & X.520 have been added.
2945
2946Author's Address
2947
2948 Steven Legg
2949 eB2Bcom
2950 Suite3, Woodhouse Corporate Centre
2951 935 Station Street
2952 Box Hill North, Victoria 3129
2953 AUSTRALIA
2954
2955 Phone: +61 3 9896 7830
2956 Fax: +61 3 9896 7801
2957 EMail: steven.legg@eb2bcom.com
2958
2959
2960
2961
2962
2963
2964
2965Legg Standards Track [Page 52]
2966
2967
2968RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2969
2970
2971Full Copyright Statement
2972
2973 Copyright (C) The Internet Society (2006).
2974
2975 This document is subject to the rights, licenses and restrictions
2976 contained in BCP 78, and except as set forth therein, the authors
2977 retain all their rights.
2978
2979 This document and the information contained herein are provided on an
2980 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
2981 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
2982 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
2983 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
2984 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
2985 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2986
2987Intellectual Property
2988
2989 The IETF takes no position regarding the validity or scope of any
2990 Intellectual Property Rights or other rights that might be claimed to
2991 pertain to the implementation or use of the technology described in
2992 this document or the extent to which any license under such rights
2993 might or might not be available; nor does it represent that it has
2994 made any independent effort to identify any such rights. Information
2995 on the procedures with respect to rights in RFC documents can be
2996 found in BCP 78 and BCP 79.
2997
2998 Copies of IPR disclosures made to the IETF Secretariat and any
2999 assurances of licenses to be made available, or the result of an
3000 attempt made to obtain a general license or permission for the use of
3001 such proprietary rights by implementers or users of this
3002 specification can be obtained from the IETF on-line IPR repository at
3003 http://www.ietf.org/ipr.
3004
3005 The IETF invites any interested party to bring to its attention any
3006 copyrights, patents or patent applications, or other proprietary
3007 rights that may cover technology that may be required to implement
3008 this standard. Please address the information to the IETF at
3009 ietf-ipr@ietf.org.
3010
3011Acknowledgement
3012
3013 Funding for the RFC Editor function is provided by the IETF
3014 Administrative Support Activity (IASA).
3015
3016
3017
3018
3019
3020
3021
3022Legg Standards Track [Page 53]
3023
3024
Note: See TracBrowser for help on using the repository browser.