diff options
| author | David M. Syzdek <david@syzdek.net> | 2019-11-19 22:14:33 -0900 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2019-11-19 22:15:59 -0900 |
| commit | 790704534cce57e6ab3b83162910fe63b532b3ff (patch) | |
| tree | 143aa1bfaa70e520ef4179a1108c63378d41ead9 /doc | |
| parent | f9254f53a75ca1ca227d1316f2e36aaeadd6c552 (diff) | |
| download | ldap-utils-790704534cce57e6ab3b83162910fe63b532b3ff.tar.gz ldap-utils-790704534cce57e6ab3b83162910fe63b532b3ff.tar.bz2 ldap-utils-790704534cce57e6ab3b83162910fe63b532b3ff.tar.xz ldap-utils-790704534cce57e6ab3b83162910fe63b532b3ff.zip | |
oidspecs: adding OID specifications from RFC4530
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/oidspecs/rfc/rfc4530.oidspec | 317 | ||||
| -rw-r--r-- | doc/rfc/rfc4530.txt | 451 |
2 files changed, 768 insertions, 0 deletions
diff --git a/doc/oidspecs/rfc/rfc4530.oidspec b/doc/oidspecs/rfc/rfc4530.oidspec new file mode 100644 index 0000000..6e88524 --- /dev/null +++ b/doc/oidspecs/rfc/rfc4530.oidspec | |||
| @@ -0,0 +1,317 @@ | |||
| 1 | |||
| 2 | |||
| 3 | { | ||
| 4 | // | ||
| 5 | // RFC 4122 A UUID URN Namespace July 2005 | ||
| 6 | // | ||
| 7 | // 3. Namespace Registration Template | ||
| 8 | // | ||
| 9 | // Namespace ID: UUID | ||
| 10 | // Registration Information: | ||
| 11 | // Registration date: 2003-10-01 | ||
| 12 | // | ||
| 13 | // Declared registrant of the namespace: | ||
| 14 | // JTC 1/SC6 (ASN.1 Rapporteur Group) | ||
| 15 | // | ||
| 16 | // Declaration of syntactic structure: | ||
| 17 | // A UUID is an identifier that is unique across both space and time, | ||
| 18 | // with respect to the space of all UUIDs. Since a UUID is a fixed | ||
| 19 | // size and contains a time field, it is possible for values to | ||
| 20 | // rollover (around A.D. 3400, depending on the specific algorithm | ||
| 21 | // used). A UUID can be used for multiple purposes, from tagging | ||
| 22 | // objects with an extremely short lifetime, to reliably identifying | ||
| 23 | // very persistent objects across a network. | ||
| 24 | // | ||
| 25 | // The internal representation of a UUID is a specific sequence of | ||
| 26 | // bits in memory, as described in Section 4. To accurately | ||
| 27 | // represent a UUID as a URN, it is necessary to convert the bit | ||
| 28 | // sequence to a string representation. | ||
| 29 | // | ||
| 30 | // Each field is treated as an integer and has its value printed as a | ||
| 31 | // zero-filled hexadecimal digit string with the most significant | ||
| 32 | // digit first. The hexadecimal values "a" through "f" are output as | ||
| 33 | // lower case characters and are case insensitive on input. | ||
| 34 | // | ||
| 35 | // The formal definition of the UUID string representation is | ||
| 36 | // provided by the following ABNF [7]: | ||
| 37 | // | ||
| 38 | // UUID = time-low "-" time-mid "-" | ||
| 39 | // time-high-and-version "-" | ||
| 40 | // clock-seq-and-reserved | ||
| 41 | // clock-seq-low "-" node | ||
| 42 | // time-low = 4hexOctet | ||
| 43 | // time-mid = 2hexOctet | ||
| 44 | // time-high-and-version = 2hexOctet | ||
| 45 | // clock-seq-and-reserved = hexOctet | ||
| 46 | // clock-seq-low = hexOctet | ||
| 47 | // node = 6hexOctet | ||
| 48 | // hexOctet = hexDigit hexDigit | ||
| 49 | // hexDigit = | ||
| 50 | // "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" / | ||
| 51 | // "a" / "b" / "c" / "d" / "e" / "f" / | ||
| 52 | // "A" / "B" / "C" / "D" / "E" / "F" | ||
| 53 | // | ||
| 54 | // The following is an example of the string representation of a UUID as | ||
| 55 | // a URN: | ||
| 56 | // | ||
| 57 | // urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 | ||
| 58 | // | ||
| 59 | // Relevant ancillary documentation: | ||
| 60 | // [1][2] | ||
| 61 | // Identifier uniqueness considerations: | ||
| 62 | // This document specifies three algorithms to generate UUIDs: the | ||
| 63 | // first leverages the unique values of 802 MAC addresses to | ||
| 64 | // guarantee uniqueness, the second uses pseudo-random number | ||
| 65 | // generators, and the third uses cryptographic hashing and | ||
| 66 | // application-provided text strings. As a result, the UUIDs | ||
| 67 | // generated according to the mechanisms here will be unique from all | ||
| 68 | // other UUIDs that have been or will be assigned. | ||
| 69 | // | ||
| 70 | // Identifier persistence considerations: | ||
| 71 | // UUIDs are inherently very difficult to resolve in a global sense. | ||
| 72 | // This, coupled with the fact that UUIDs are temporally unique | ||
| 73 | // within their spatial context, ensures that UUIDs will remain as | ||
| 74 | // persistent as possible. | ||
| 75 | // | ||
| 76 | // Process of identifier assignment: | ||
| 77 | // Generating a UUID does not require that a registration authority | ||
| 78 | // be contacted. One algorithm requires a unique value over space | ||
| 79 | // for each generator. This value is typically an IEEE 802 MAC | ||
| 80 | // address, usually already available on network-connected hosts. | ||
| 81 | // The address can be assigned from an address block obtained from | ||
| 82 | // the IEEE registration authority. If no such address is available, | ||
| 83 | // or privacy concerns make its use undesirable, Section 4.5 | ||
| 84 | // specifies two alternatives. Another approach is to use version 3 | ||
| 85 | // or version 4 UUIDs as defined below. | ||
| 86 | // | ||
| 87 | // Process for identifier resolution: | ||
| 88 | // Since UUIDs are not globally resolvable, this is not applicable. | ||
| 89 | // | ||
| 90 | // Rules for Lexical Equivalence: | ||
| 91 | // Consider each field of the UUID to be an unsigned integer as shown | ||
| 92 | // in the table in section Section 4.1.2. Then, to compare a pair of | ||
| 93 | // UUIDs, arithmetically compare the corresponding fields from each | ||
| 94 | // UUID in order of significance and according to their data type. | ||
| 95 | // Two UUIDs are equal if and only if all the corresponding fields | ||
| 96 | // are equal. | ||
| 97 | // | ||
| 98 | // As an implementation note, equality comparison can be performed on | ||
| 99 | // many systems by doing the appropriate byte-order canonicalization, | ||
| 100 | // and then treating the two UUIDs as 128-bit unsigned integers. | ||
| 101 | // | ||
| 102 | // UUIDs, as defined in this document, can also be ordered | ||
| 103 | // lexicographically. For a pair of UUIDs, the first one follows the | ||
| 104 | // second if the most significant field in which the UUIDs differ is | ||
| 105 | // greater for the first UUID. The second precedes the first if the | ||
| 106 | // most significant field in which the UUIDs differ is greater for | ||
| 107 | // the second UUID. | ||
| 108 | // | ||
| 109 | // Conformance with URN Syntax: | ||
| 110 | // The string representation of a UUID is fully compatible with the | ||
| 111 | // URN syntax. When converting from a bit-oriented, in-memory | ||
| 112 | // representation of a UUID into a URN, care must be taken to | ||
| 113 | // strictly adhere to the byte order issues mentioned in the string | ||
| 114 | // representation section. | ||
| 115 | // | ||
| 116 | // Validation mechanism: | ||
| 117 | // Apart from determining whether the timestamp portion of the UUID | ||
| 118 | // is in the future and therefore not yet assignable, there is no | ||
| 119 | // mechanism for determining whether a UUID is 'valid'. | ||
| 120 | // | ||
| 121 | // Scope: | ||
| 122 | // UUIDs are global in scope. | ||
| 123 | // | ||
| 124 | // | ||
| 125 | // RFC 4530 LDAP entryUUID June 2006 | ||
| 126 | // | ||
| 127 | // 2.1. UUID Syntax | ||
| 128 | // | ||
| 129 | // A Universally Unique Identifier (UUID) [RFC4122] is a 16-octet (128- | ||
| 130 | // bit) value that identifies an object. The ASN.1 [X.680] type UUID is | ||
| 131 | // defined to represent UUIDs as follows: | ||
| 132 | // | ||
| 133 | // UUID ::= OCTET STRING (SIZE(16)) | ||
| 134 | // -- constrained to an UUID [RFC4122] | ||
| 135 | // | ||
| 136 | // In LDAP, UUID values are encoded using the [ASCII] character string | ||
| 137 | // representation described in [RFC4122]. For example, | ||
| 138 | // "597ae2f6-16a6-1027-98f4-d28b5365dc14". | ||
| 139 | // | ||
| 140 | // The following is an LDAP syntax description suitable for publication | ||
| 141 | // in subschema subentries. | ||
| 142 | // | ||
| 143 | // ( 1.3.6.1.1.16.1 DESC 'UUID' ) | ||
| 144 | // | ||
| 145 | .oid = "1.3.6.1.1.16.1", | ||
| 146 | .name = "UUID", | ||
| 147 | .desc = "UUID", | ||
| 148 | .flags = LDAPSCHEMA_O_READABLE, | ||
| 149 | .type = LDAPSCHEMA_SYNTAX, | ||
| 150 | .class = LDAPSCHEMA_CLASS_ASCII, | ||
| 151 | .def = "( 1.3.6.1.1.16.1 DESC 'UUID' )", | ||
| 152 | .abnf = "UUID = time-low \"-\" time-mid \"-\"\n" | ||
| 153 | " time-high-and-version \"-\"\n" | ||
| 154 | " clock-seq-and-reserved\n" | ||
| 155 | " clock-seq-low \"-\" node\n" | ||
| 156 | "time-low = 4hexOctet\n" | ||
| 157 | "time-mid = 2hexOctet\n" | ||
| 158 | "time-high-and-version = 2hexOctet\n" | ||
| 159 | "clock-seq-and-reserved = hexOctet\n" | ||
| 160 | "clock-seq-low = hexOctet\n" | ||
| 161 | "node = 6hexOctet\n" | ||
| 162 | "hexOctet = hexDigit hexDigit\n" | ||
| 163 | "hexDigit =\n" | ||
| 164 | " \"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" /\n" | ||
| 165 | " \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" /\n" | ||
| 166 | " \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n", | ||
| 167 | .re_posix = NULL, | ||
| 168 | .re_pcre = NULL, | ||
| 169 | .spec = "RFC 4530: LDAP entryUUID", | ||
| 170 | .spec_type = LDAPSCHEMA_SPEC_RFC, | ||
| 171 | .spec_name = "4530", | ||
| 172 | .spec_section = "2.1", | ||
| 173 | .spec_source = NULL, | ||
| 174 | .spec_vendor = "IETF", | ||
| 175 | .spec_text = NULL, | ||
| 176 | .notes = NULL, | ||
| 177 | .examples = (const char *[]) | ||
| 178 | { | ||
| 179 | "597ae2f6-16a6-1027-98f4-d28b5365dc14", | ||
| 180 | NULL, | ||
| 181 | }, | ||
| 182 | }; | ||
| 183 | |||
| 184 | |||
| 185 | |||
| 186 | |||
| 187 | { | ||
| 188 | // | ||
| 189 | // RFC 4530 LDAP entryUUID June 2006 | ||
| 190 | // | ||
| 191 | // 2.2. 'uuidMatch' Matching Rule | ||
| 192 | // | ||
| 193 | // The 'uuidMatch' matching rule compares an asserted UUID with a stored | ||
| 194 | // UUID for equality. Its semantics are the same as the | ||
| 195 | // 'octetStringMatch' [X.520][RFC4517] matching rule. The rule differs | ||
| 196 | // from 'octetStringMatch' in that the assertion value is encoded using | ||
| 197 | // the UUID string representation instead of the normal OCTET STRING | ||
| 198 | // string representation. | ||
| 199 | // | ||
| 200 | // The following is an LDAP matching rule description suitable for | ||
| 201 | // publication in subschema subentries. | ||
| 202 | // | ||
| 203 | // ( 1.3.6.1.1.16.2 NAME 'uuidMatch' | ||
| 204 | // SYNTAX 1.3.6.1.1.16.1 ) | ||
| 205 | // | ||
| 206 | .oid = "1.3.6.1.1.16.2", | ||
| 207 | .name = "uuidMatch", | ||
| 208 | .desc = "'uuidMatch' Matching Rule", | ||
| 209 | .flags = 0, | ||
| 210 | .type = LDAPSCHEMA_MATCHINGRULE, | ||
| 211 | .def = "( 1.3.6.1.1.16.2 NAME 'uuidMatch' SYNTAX 1.3.6.1.1.16.1 )", | ||
| 212 | .spec = "RFC 4530: LDAP entryUUID", | ||
| 213 | .spec_type = LDAPSCHEMA_SPEC_RFC, | ||
| 214 | .spec_name = "4530", | ||
| 215 | .spec_section = "2.2", | ||
| 216 | .spec_source = NULL, | ||
| 217 | .spec_vendor = "IETF", | ||
| 218 | .spec_text = NULL, | ||
| 219 | .notes = NULL, | ||
| 220 | .examples = NULL, | ||
| 221 | }; | ||
| 222 | |||
| 223 | |||
| 224 | |||
| 225 | { | ||
| 226 | // | ||
| 227 | // RFC 4530 LDAP entryUUID June 2006 | ||
| 228 | // | ||
| 229 | // 2.3. 'uuidOrderingMatch' Matching Rule | ||
| 230 | // | ||
| 231 | // The 'uuidOrderingMatch' matching rule compares an asserted UUID with | ||
| 232 | // a stored UUID for ordering. Its semantics are the same as the | ||
| 233 | // 'octetStringOrderingMatch' [X.520][RFC4517] matching rule. The rule | ||
| 234 | // differs from 'octetStringOrderingMatch' in that the assertion value | ||
| 235 | // is encoded using the UUID string representation instead of the normal | ||
| 236 | // OCTET STRING string representation. | ||
| 237 | // | ||
| 238 | // The following is an LDAP matching rule description suitable for | ||
| 239 | // publication in subschema subentries. | ||
| 240 | // | ||
| 241 | // ( 1.3.6.1.1.16.3 NAME 'uuidOrderingMatch' | ||
| 242 | // SYNTAX 1.3.6.1.1.16.1 ) | ||
| 243 | // | ||
| 244 | // Note that not all UUID variants have a defined ordering; and even | ||
| 245 | // where it does, servers are not obligated to assign UUIDs in any | ||
| 246 | // particular order. This matching rule is provided for completeness. | ||
| 247 | // | ||
| 248 | .oid = "1.3.6.1.1.16.3", | ||
| 249 | .name = "uuidOrderingMatch", | ||
| 250 | .desc = "'uuidOrderingMatch' Matching Rule", | ||
| 251 | .flags = 0, | ||
| 252 | .type = LDAPSCHEMA_MATCHINGRULE, | ||
| 253 | .def = "( 1.3.6.1.1.16.3 NAME 'uuidOrderingMatch' SYNTAX 1.3.6.1.1.16.1 )", | ||
| 254 | .spec = "RFC 4530: LDAP entryUUID", | ||
| 255 | .spec_type = LDAPSCHEMA_SPEC_RFC, | ||
| 256 | .spec_name = "4530", | ||
| 257 | .spec_section = "2.3", | ||
| 258 | .spec_source = NULL, | ||
| 259 | .spec_vendor = "IETF", | ||
| 260 | .spec_text = NULL, | ||
| 261 | .notes = NULL, | ||
| 262 | .examples = NULL, | ||
| 263 | }; | ||
| 264 | |||
| 265 | |||
| 266 | |||
| 267 | { | ||
| 268 | // | ||
| 269 | // RFC 4530 LDAP entryUUID June 2006 | ||
| 270 | // | ||
| 271 | // 2.4. 'entryUUID' Attribute | ||
| 272 | // | ||
| 273 | // The 'entryUUID' operational attribute provides the Universally Unique | ||
| 274 | // Identifier (UUID) assigned to the entry. | ||
| 275 | // | ||
| 276 | // The following is an LDAP attribute type description suitable for | ||
| 277 | // publication in subschema subentries. | ||
| 278 | // | ||
| 279 | // ( 1.3.6.1.1.16.4 NAME 'entryUUID' | ||
| 280 | // DESC 'UUID of the entry' | ||
| 281 | // EQUALITY uuidMatch | ||
| 282 | // ORDERING uuidOrderingMatch | ||
| 283 | // SYNTAX 1.3.6.1.1.16.1 | ||
| 284 | // SINGLE-VALUE | ||
| 285 | // NO-USER-MODIFICATION | ||
| 286 | // USAGE directoryOperation ) | ||
| 287 | // | ||
| 288 | // Servers SHALL generate and assign a new UUID to each entry upon its | ||
| 289 | // addition to the directory and provide that UUID as the value of the | ||
| 290 | // 'entryUUID' operational attribute. An entry's UUID is immutable. | ||
| 291 | // | ||
| 292 | // UUID are to be generated in accordance with Section 4 of [RFC4122]. | ||
| 293 | // In particular, servers MUST ensure that each generated UUID is unique | ||
| 294 | // in space and time. | ||
| 295 | // | ||
| 296 | .oid = "1.3.6.1.1.16.4", | ||
| 297 | .name = "entryUUID", | ||
| 298 | .desc = "UUID of the entry", | ||
| 299 | .flags = LDAPSCHEMA_O_READABLE | LDAPSCHEMA_O_SINGLEVALUE | LDAPSCHEMA_O_NO_USER_MOD, | ||
| 300 | .type = LDAPSCHEMA_ATTRIBUTETYPE, | ||
| 301 | .def = "( 1.3.6.1.1.16.4 NAME 'entryUUID' DESC 'UUID of the entry' EQUALITY uuidMatch ORDERING uuidOrderingMatch SYNTAX 1.3.6.1.1.16.1 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", | ||
| 302 | .spec = "RFC 4530: LDAP entryUUID", | ||
| 303 | .spec_type = LDAPSCHEMA_SPEC_RFC, | ||
| 304 | .spec_name = "4530", | ||
| 305 | .spec_section = "2.4", | ||
| 306 | .spec_source = NULL, | ||
| 307 | .spec_vendor = "IETF", | ||
| 308 | .spec_text = NULL, | ||
| 309 | .notes = NULL, | ||
| 310 | .examples = NULL, | ||
| 311 | }; | ||
| 312 | |||
| 313 | |||
| 314 | |||
| 315 | |||
| 316 | |||
| 317 | // end of OID spec file | ||
diff --git a/doc/rfc/rfc4530.txt b/doc/rfc/rfc4530.txt new file mode 100644 index 0000000..219a7c2 --- /dev/null +++ b/doc/rfc/rfc4530.txt | |||
| @@ -0,0 +1,451 @@ | |||
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 | Network Working Group K. Zeilenga | ||
| 8 | Request for Comments: 4530 OpenLDAP Foundation | ||
| 9 | Category: Standards Track June 2006 | ||
| 10 | |||
| 11 | |||
| 12 | Lightweight Directory Access Protocol (LDAP) | ||
| 13 | entryUUID Operational Attribute | ||
| 14 | |||
| 15 | |||
| 16 | Status of This Memo | ||
| 17 | |||
| 18 | This document specifies an Internet standards track protocol for the | ||
| 19 | Internet community, and requests discussion and suggestions for | ||
| 20 | improvements. Please refer to the current edition of the "Internet | ||
| 21 | Official Protocol Standards" (STD 1) for the standardization state | ||
| 22 | and status of this protocol. Distribution of this memo is unlimited. | ||
| 23 | |||
| 24 | Copyright Notice | ||
| 25 | |||
| 26 | Copyright (C) The Internet Society (2006). | ||
| 27 | |||
| 28 | Abstract | ||
| 29 | |||
| 30 | This document describes the LDAP/X.500 'entryUUID' operational | ||
| 31 | attribute and associated matching rules and syntax. The attribute | ||
| 32 | holds a server-assigned Universally Unique Identifier (UUID) for the | ||
| 33 | object. Directory clients may use this attribute to distinguish | ||
| 34 | objects identified by a distinguished name or to locate an object | ||
| 35 | after renaming. | ||
| 36 | |||
| 37 | |||
| 38 | |||
| 39 | |||
| 40 | |||
| 41 | |||
| 42 | |||
| 43 | |||
| 44 | |||
| 45 | |||
| 46 | |||
| 47 | |||
| 48 | |||
| 49 | |||
| 50 | |||
| 51 | |||
| 52 | |||
| 53 | |||
| 54 | |||
| 55 | |||
| 56 | |||
| 57 | |||
| 58 | Zeilenga Standards Track [Page 1] | ||
| 59 | |||
| 60 | RFC 4530 LDAP entryUUID June 2006 | ||
| 61 | |||
| 62 | |||
| 63 | Table of Contents | ||
| 64 | |||
| 65 | 1. Background and Intended Use .....................................2 | ||
| 66 | 2. UUID Schema Elements ............................................3 | ||
| 67 | 2.1. UUID Syntax ................................................3 | ||
| 68 | 2.2. 'uuidMatch' Matching Rule ..................................3 | ||
| 69 | 2.3. 'uuidOrderingMatch' Matching Rule ..........................3 | ||
| 70 | 2.4. 'entryUUID' Attribute ......................................4 | ||
| 71 | 3. Security Considerations .........................................4 | ||
| 72 | 4. IANA Considerations .............................................5 | ||
| 73 | 4.1. Object Identifier Registration .............................5 | ||
| 74 | 4.2. UUID Syntax Registration ...................................5 | ||
| 75 | 4.3. 'uuidMatch' Descriptor Registration ........................5 | ||
| 76 | 4.4. 'uuidOrderingMatch' Descriptor Registration ................5 | ||
| 77 | 4.5. 'entryUUID' Descriptor Registration ........................6 | ||
| 78 | 5. Acknowledgements ................................................6 | ||
| 79 | 6. References ......................................................6 | ||
| 80 | 6.1. Normative References .......................................6 | ||
| 81 | 6.2. Informative References .....................................7 | ||
| 82 | |||
| 83 | 1. Background and Intended Use | ||
| 84 | |||
| 85 | In X.500 Directory Services [X.501], such as those accessible using | ||
| 86 | the Lightweight Directory Access Protocol (LDAP) [RFC4510], an object | ||
| 87 | is identified by its distinguished name (DN). However, DNs are not | ||
| 88 | stable identifiers. That is, a new object may be identified by a DN | ||
| 89 | that previously identified another (now renamed or deleted) object. | ||
| 90 | |||
| 91 | A Universally Unique Identifier (UUID) is "an identifier unique | ||
| 92 | across both space and time, with respect to the space of all UUIDs" | ||
| 93 | [RFC4122]. UUIDs are used in a wide range of systems. | ||
| 94 | |||
| 95 | This document describes the 'entryUUID' operational attribute, which | ||
| 96 | holds the UUID assigned to the object by the server. Clients may use | ||
| 97 | this attribute to distinguish objects identified by a particular | ||
| 98 | distinguished name or to locate a particular object after renaming. | ||
| 99 | |||
| 100 | This document defines the UUID syntax, the 'uuidMatch' and | ||
| 101 | 'uuidOrderingMatch' matching rules, and the 'entryUUID' attribute | ||
| 102 | type. | ||
| 103 | |||
| 104 | Schema definitions are provided using LDAP description formats | ||
| 105 | [RFC4512]. Definitions provided here are formatted (line wrapped) | ||
| 106 | for readability. | ||
| 107 | |||
| 108 | |||
| 109 | |||
| 110 | |||
| 111 | |||
| 112 | |||
| 113 | |||
| 114 | Zeilenga Standards Track [Page 2] | ||
| 115 | |||
| 116 | RFC 4530 LDAP entryUUID June 2006 | ||
| 117 | |||
| 118 | |||
| 119 | In this document, the key words "MUST", "MUST NOT", "REQUIRED", | ||
| 120 | "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | ||
| 121 | and "OPTIONAL" are to be interpreted as described in BCP 14 | ||
| 122 | [RFC2119]. | ||
| 123 | |||
| 124 | 2. UUID Schema Elements | ||
| 125 | |||
| 126 | 2.1. UUID Syntax | ||
| 127 | |||
| 128 | A Universally Unique Identifier (UUID) [RFC4122] is a 16-octet (128- | ||
| 129 | bit) value that identifies an object. The ASN.1 [X.680] type UUID is | ||
| 130 | defined to represent UUIDs as follows: | ||
| 131 | |||
| 132 | UUID ::= OCTET STRING (SIZE(16)) | ||
| 133 | -- constrained to an UUID [RFC4122] | ||
| 134 | |||
| 135 | In LDAP, UUID values are encoded using the [ASCII] character string | ||
| 136 | representation described in [RFC4122]. For example, | ||
| 137 | "597ae2f6-16a6-1027-98f4-d28b5365dc14". | ||
| 138 | |||
| 139 | The following is an LDAP syntax description suitable for publication | ||
| 140 | in subschema subentries. | ||
| 141 | |||
| 142 | ( 1.3.6.1.1.16.1 DESC 'UUID' ) | ||
| 143 | |||
| 144 | 2.2. 'uuidMatch' Matching Rule | ||
| 145 | |||
| 146 | The 'uuidMatch' matching rule compares an asserted UUID with a stored | ||
| 147 | UUID for equality. Its semantics are the same as the | ||
| 148 | 'octetStringMatch' [X.520][RFC4517] matching rule. The rule differs | ||
| 149 | from 'octetStringMatch' in that the assertion value is encoded using | ||
| 150 | the UUID string representation instead of the normal OCTET STRING | ||
| 151 | string representation. | ||
| 152 | |||
| 153 | The following is an LDAP matching rule description suitable for | ||
| 154 | publication in subschema subentries. | ||
| 155 | |||
| 156 | ( 1.3.6.1.1.16.2 NAME 'uuidMatch' | ||
| 157 | SYNTAX 1.3.6.1.1.16.1 ) | ||
| 158 | |||
| 159 | 2.3. 'uuidOrderingMatch' Matching Rule | ||
| 160 | |||
| 161 | The 'uuidOrderingMatch' matching rule compares an asserted UUID with | ||
| 162 | a stored UUID for ordering. Its semantics are the same as the | ||
| 163 | 'octetStringOrderingMatch' [X.520][RFC4517] matching rule. The rule | ||
| 164 | differs from 'octetStringOrderingMatch' in that the assertion value | ||
| 165 | is encoded using the UUID string representation instead of the normal | ||
| 166 | OCTET STRING string representation. | ||
| 167 | |||
| 168 | |||
| 169 | |||
| 170 | Zeilenga Standards Track [Page 3] | ||
| 171 | |||
| 172 | RFC 4530 LDAP entryUUID June 2006 | ||
| 173 | |||
| 174 | |||
| 175 | The following is an LDAP matching rule description suitable for | ||
| 176 | publication in subschema subentries. | ||
| 177 | |||
| 178 | ( 1.3.6.1.1.16.3 NAME 'uuidOrderingMatch' | ||
| 179 | SYNTAX 1.3.6.1.1.16.1 ) | ||
| 180 | |||
| 181 | Note that not all UUID variants have a defined ordering; and even | ||
| 182 | where it does, servers are not obligated to assign UUIDs in any | ||
| 183 | particular order. This matching rule is provided for completeness. | ||
| 184 | |||
| 185 | 2.4. 'entryUUID' Attribute | ||
| 186 | |||
| 187 | The 'entryUUID' operational attribute provides the Universally Unique | ||
| 188 | Identifier (UUID) assigned to the entry. | ||
| 189 | |||
| 190 | The following is an LDAP attribute type description suitable for | ||
| 191 | publication in subschema subentries. | ||
| 192 | |||
| 193 | ( 1.3.6.1.1.16.4 NAME 'entryUUID' | ||
| 194 | DESC 'UUID of the entry' | ||
| 195 | EQUALITY uuidMatch | ||
| 196 | ORDERING uuidOrderingMatch | ||
| 197 | SYNTAX 1.3.6.1.1.16.1 | ||
| 198 | SINGLE-VALUE | ||
| 199 | NO-USER-MODIFICATION | ||
| 200 | USAGE directoryOperation ) | ||
| 201 | |||
| 202 | Servers SHALL generate and assign a new UUID to each entry upon its | ||
| 203 | addition to the directory and provide that UUID as the value of the | ||
| 204 | 'entryUUID' operational attribute. An entry's UUID is immutable. | ||
| 205 | |||
| 206 | UUID are to be generated in accordance with Section 4 of [RFC4122]. | ||
| 207 | In particular, servers MUST ensure that each generated UUID is unique | ||
| 208 | in space and time. | ||
| 209 | |||
| 210 | 3. Security Considerations | ||
| 211 | |||
| 212 | An entry's relative distinguish name (RDN) is composed from attribute | ||
| 213 | values of the entry, which are commonly descriptive of the object the | ||
| 214 | entry represents. Although deployers are encouraged to use naming | ||
| 215 | attributes whose values are widely disclosable [RFC4514], entries are | ||
| 216 | often named using information that cannot be disclosed to all | ||
| 217 | parties. As UUIDs do not contain any descriptive information of the | ||
| 218 | object they identify, UUIDs may be used to identify a particular | ||
| 219 | entry without disclosure of its contents. | ||
| 220 | |||
| 221 | General UUID security considerations [RFC4122] apply. | ||
| 222 | |||
| 223 | |||
| 224 | |||
| 225 | |||
| 226 | Zeilenga Standards Track [Page 4] | ||
| 227 | |||
| 228 | RFC 4530 LDAP entryUUID June 2006 | ||
| 229 | |||
| 230 | |||
| 231 | General LDAP security considerations [RFC4510] apply. | ||
| 232 | |||
| 233 | 4. IANA Considerations | ||
| 234 | |||
| 235 | The IANA has registered the LDAP values [RFC4520] specified in this | ||
| 236 | document. | ||
| 237 | |||
| 238 | 4.1. Object Identifier Registration | ||
| 239 | |||
| 240 | Subject: Request for LDAP OID Registration | ||
| 241 | Person & email address to contact for further information: | ||
| 242 | Kurt Zeilenga <kurt@OpenLDAP.org> | ||
| 243 | Specification: RFC 4530 | ||
| 244 | Author/Change Controller: IESG | ||
| 245 | Comments: | ||
| 246 | Identifies the UUID schema elements | ||
| 247 | |||
| 248 | 4.2. UUID Syntax Registration | ||
| 249 | |||
| 250 | Subject: Request for LDAP Syntax Registration | ||
| 251 | Object Identifier: 1.3.6.1.1.16.1 | ||
| 252 | Description: UUID | ||
| 253 | Person & email address to contact for further information: | ||
| 254 | Kurt Zeilenga <kurt@OpenLDAP.org> | ||
| 255 | Specification: RFC 4530 | ||
| 256 | Author/Change Controller: IESG | ||
| 257 | Comments: | ||
| 258 | Identifies the UUID syntax | ||
| 259 | |||
| 260 | 4.3. 'uuidMatch' Descriptor Registration | ||
| 261 | |||
| 262 | Subject: Request for LDAP Descriptor Registration | ||
| 263 | Descriptor (short name): uuidMatch | ||
| 264 | Object Identifier: 1.3.6.1.1.16.2 | ||
| 265 | Person & email address to contact for further information: | ||
| 266 | Kurt Zeilenga <kurt@OpenLDAP.org> | ||
| 267 | Usage: Matching Rule | ||
| 268 | Specification: RFC 4530 | ||
| 269 | Author/Change Controller: IESG | ||
| 270 | |||
| 271 | 4.4. 'uuidOrderingMatch' Descriptor Registration | ||
| 272 | |||
| 273 | Subject: Request for LDAP Descriptor Registration | ||
| 274 | Descriptor (short name): uuidOrderingMatch | ||
| 275 | Object Identifier: 1.3.6.1.1.16.3 | ||
| 276 | Person & email address to contact for further information: | ||
| 277 | Kurt Zeilenga <kurt@OpenLDAP.org> | ||
| 278 | Usage: Matching Rule | ||
| 279 | |||
| 280 | |||
| 281 | |||
| 282 | Zeilenga Standards Track [Page 5] | ||
| 283 | |||
| 284 | RFC 4530 LDAP entryUUID June 2006 | ||
| 285 | |||
| 286 | |||
| 287 | Specification: RFC 4530 | ||
| 288 | Author/Change Controller: IESG | ||
| 289 | |||
| 290 | 4.5. 'entryUUID' Descriptor Registration | ||
| 291 | |||
| 292 | The IANA has registered the LDAP 'entryUUID' descriptor. | ||
| 293 | |||
| 294 | Subject: Request for LDAP Descriptor Registration | ||
| 295 | Descriptor (short name): entryUUID | ||
| 296 | Object Identifier: 1.3.6.1.1.16.4 | ||
| 297 | Person & email address to contact for further information: | ||
| 298 | Kurt Zeilenga <kurt@OpenLDAP.org> | ||
| 299 | Usage: Attribute Type | ||
| 300 | Specification: RFC 4530 | ||
| 301 | Author/Change Controller: IESG | ||
| 302 | |||
| 303 | 5. Acknowledgements | ||
| 304 | |||
| 305 | This document is based upon discussions in the LDAP Update and | ||
| 306 | Duplication Protocols (LDUP) WG. Members of the LDAP Directorate | ||
| 307 | provided review. | ||
| 308 | |||
| 309 | 6. References | ||
| 310 | |||
| 311 | 6.1. Normative References | ||
| 312 | |||
| 313 | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||
| 314 | Requirement Levels", BCP 14, RFC 2119, March 1997. | ||
| 315 | |||
| 316 | [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally | ||
| 317 | Unique IDentifier (UUID) URN Namespace", RFC 4122, July | ||
| 318 | 2005. | ||
| 319 | |||
| 320 | [RFC4510] Zeilenga, K., Ed., "Lightweight Directory Access | ||
| 321 | Protocol (LDAP): Technical Specification Road Map", RFC | ||
| 322 | 4510, June 2006. | ||
| 323 | |||
| 324 | [RFC4512] Zeilenga, K., "Lightweight Directory Access Protocol | ||
| 325 | (LDAP): Directory Information Models", RFC 4512, June | ||
| 326 | 2006. | ||
| 327 | |||
| 328 | [RFC4517] Legg, S., Ed., "Lightweight Directory Access Protocol | ||
| 329 | (LDAP): Syntaxes and Matching Rules", RFC 4517, June | ||
| 330 | 2006. | ||
| 331 | |||
| 332 | [ASCII] Coded Character Set--7-bit American Standard Code for | ||
| 333 | Information Interchange, ANSI X3.4-1986. | ||
| 334 | |||
| 335 | |||
| 336 | |||
| 337 | |||
| 338 | Zeilenga Standards Track [Page 6] | ||
| 339 | |||
| 340 | RFC 4530 LDAP entryUUID June 2006 | ||
| 341 | |||
| 342 | |||
| 343 | [X.501] International Telecommunication Union - | ||
| 344 | Telecommunication Standardization Sector, "The | ||
| 345 | Directory -- Models," X.501(1993) (also ISO/IEC 9594- | ||
| 346 | 2:1994). | ||
| 347 | |||
| 348 | [X.520] International Telecommunication Union - | ||
| 349 | Telecommunication Standardization Sector, "The | ||
| 350 | Directory: Selected Attribute Types", X.520(1993) (also | ||
| 351 | ISO/IEC 9594-6:1994). | ||
| 352 | |||
| 353 | [X.680] International Telecommunication Union - | ||
| 354 | Telecommunication Standardization Sector, "Abstract | ||
| 355 | Syntax Notation One (ASN.1) - Specification of Basic | ||
| 356 | Notation", X.680(2002) (also ISO/IEC 8824-1:2002). | ||
| 357 | |||
| 358 | 6.2. Informative References | ||
| 359 | |||
| 360 | [RFC4514] Zeilenga, K., Ed., "Lightweight Directory Access | ||
| 361 | Protocol (LDAP): String Representation of Distinguished | ||
| 362 | Names", RFC 4514, June 2006. | ||
| 363 | |||
| 364 | [RFC4520] Zeilenga, K., "Internet Assigned Numbers Authority | ||
| 365 | (IANA) Considerations for the Lightweight Directory | ||
| 366 | Access Protocol (LDAP)", BCP 64, RFC 4520, June 2006. | ||
| 367 | |||
| 368 | Author's Address | ||
| 369 | |||
| 370 | Kurt D. Zeilenga | ||
| 371 | OpenLDAP Foundation | ||
| 372 | |||
| 373 | EMail: Kurt@OpenLDAP.org | ||
| 374 | |||
| 375 | |||
| 376 | |||
| 377 | |||
| 378 | |||
| 379 | |||
| 380 | |||
| 381 | |||
| 382 | |||
| 383 | |||
| 384 | |||
| 385 | |||
| 386 | |||
| 387 | |||
| 388 | |||
| 389 | |||
| 390 | |||
| 391 | |||
| 392 | |||
| 393 | |||
| 394 | Zeilenga Standards Track [Page 7] | ||
| 395 | |||
| 396 | RFC 4530 LDAP entryUUID June 2006 | ||
| 397 | |||
| 398 | |||
| 399 | Full Copyright Statement | ||
| 400 | |||
| 401 | Copyright (C) The Internet Society (2006). | ||
| 402 | |||
| 403 | This document is subject to the rights, licenses and restrictions | ||
| 404 | contained in BCP 78, and except as set forth therein, the authors | ||
| 405 | retain all their rights. | ||
| 406 | |||
| 407 | This document and the information contained herein are provided on an | ||
| 408 | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||
| 409 | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||
| 410 | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||
| 411 | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||
| 412 | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||
| 413 | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||
| 414 | |||
| 415 | Intellectual Property | ||
| 416 | |||
| 417 | The IETF takes no position regarding the validity or scope of any | ||
| 418 | Intellectual Property Rights or other rights that might be claimed to | ||
| 419 | pertain to the implementation or use of the technology described in | ||
| 420 | this document or the extent to which any license under such rights | ||
| 421 | might or might not be available; nor does it represent that it has | ||
| 422 | made any independent effort to identify any such rights. Information | ||
| 423 | on the procedures with respect to rights in RFC documents can be | ||
| 424 | found in BCP 78 and BCP 79. | ||
| 425 | |||
| 426 | Copies of IPR disclosures made to the IETF Secretariat and any | ||
| 427 | assurances of licenses to be made available, or the result of an | ||
| 428 | attempt made to obtain a general license or permission for the use of | ||
| 429 | such proprietary rights by implementers or users of this | ||
| 430 | specification can be obtained from the IETF on-line IPR repository at | ||
| 431 | http://www.ietf.org/ipr. | ||
| 432 | |||
| 433 | The IETF invites any interested party to bring to its attention any | ||
| 434 | copyrights, patents or patent applications, or other proprietary | ||
| 435 | rights that may cover technology that may be required to implement | ||
| 436 | this standard. Please address the information to the IETF at | ||
| 437 | ietf-ipr@ietf.org. | ||
| 438 | |||
| 439 | Acknowledgement | ||
| 440 | |||
| 441 | Funding for the RFC Editor function is provided by the IETF | ||
| 442 | Administrative Support Activity (IASA). | ||
| 443 | |||
| 444 | |||
| 445 | |||
| 446 | |||
| 447 | |||
| 448 | |||
| 449 | |||
| 450 | Zeilenga Standards Track [Page 8] | ||
| 451 | |||
