1 1.1 lukem 2 1.1 lukem 3 1.1 lukem 4 1.1 lukem 5 1.1 lukem 6 1.1 lukem 7 1.1 lukem Network Working Group S. Kille 8 1.1 lukem Request for Comments: 2247 Isode Ltd. 9 1.1 lukem Category: Standards Track M. Wahl 10 1.1 lukem Critical Angle Inc. 11 1.1 lukem A. Grimstad 12 1.1 lukem AT&T 13 1.1 lukem R. Huber 14 1.1 lukem AT&T 15 1.1 lukem S. Sataluri 16 1.1 lukem AT&T 17 1.1 lukem January 1998 18 1.1 lukem 19 1.1 lukem 20 1.1 lukem 21 1.1 lukem Using Domains in LDAP/X.500 Distinguished Names 22 1.1 lukem 23 1.1 lukem 24 1.1 lukem Status of this Memo 25 1.1 lukem 26 1.1 lukem This document specifies an Internet standards track protocol for the 27 1.1 lukem Internet community, and requests discussion and suggestions for 28 1.1 lukem improvements. Please refer to the current edition of the "Internet 29 1.1 lukem Official Protocol Standards" (STD 1) for the standardization state 30 1.1 lukem and status of this protocol. Distribution of this memo is unlimited. 31 1.1 lukem 32 1.1 lukem Copyright Notice 33 1.1 lukem 34 1.1 lukem Copyright (C) The Internet Society (1998). All Rights Reserved. 35 1.1 lukem 36 1.1 lukem 1. Abstract 37 1.1 lukem 38 1.1 lukem The Lightweight Directory Access Protocol (LDAP) uses X.500- 39 1.1 lukem compatible distinguished names [3] for providing unique 40 1.1 lukem identification of entries. 41 1.1 lukem 42 1.1 lukem This document defines an algorithm by which a name registered with 43 1.1 lukem the Internet Domain Name Service [2] can be represented as an LDAP 44 1.1 lukem distinguished name. 45 1.1 lukem 46 1.1 lukem 2. Background 47 1.1 lukem 48 1.1 lukem The Domain (Nameserver) System (DNS) provides a hierarchical resource 49 1.1 lukem labeling system. A name is made up of an ordered set of components, 50 1.1 lukem each of which are short strings. An example domain name with two 51 1.1 lukem components would be "CRITICAL-ANGLE.COM". 52 1.1 lukem 53 1.1 lukem 54 1.1 lukem 55 1.1 lukem 56 1.1 lukem 57 1.1 lukem 58 1.1 lukem Kille, et. al. Standards Track [Page 1] 59 1.1 lukem 61 1.1 lukem RFC 2247 Using Domains in LDAP/X.500 January 1998 62 1.1 lukem 63 1.1 lukem 64 1.1 lukem LDAP-based directories provide a more general hierarchical naming 65 1.1 lukem framework. A primary difference in specification of distinguished 66 1.1 lukem names from domain names is that each component of an distinguished 67 1.1 lukem name has an explicit attribute type indication. 68 1.1 lukem 69 1.1 lukem X.500 does not mandate any particular naming structure. It does 70 1.1 lukem contain suggested naming structures which are based on geographic and 71 1.1 lukem national regions, however there is not currently an established 72 1.1 lukem registration infrastructure in many regions which would be able to 73 1.1 lukem assign or ensure uniqueness of names. 74 1.1 lukem 75 1.1 lukem The mechanism described in this document automatically provides an 76 1.1 lukem enterprise a distinguished name for each domain name it has obtained 77 1.1 lukem for use in the Internet. These distinguished names may be used to 78 1.1 lukem identify objects in an LDAP directory. 79 1.1 lukem 80 1.1 lukem An example distinguished name represented in the LDAP string format 81 1.1 lukem [3] is "DC=CRITICAL-ANGLE,DC=COM". As with a domain name, the most 82 1.1 lukem significant component, closest to the root of the namespace, is 83 1.1 lukem written last. 84 1.1 lukem 85 1.1 lukem This document does not define how to represent objects which do not 86 1.1 lukem have domain names. Nor does this document define the procedure to 87 1.1 lukem locate an enterprise's LDAP directory server, given their domain 88 1.1 lukem name. Such procedures may be defined in future RFCs. 89 1.1 lukem 90 1.1 lukem 3. Mapping Domain Names into Distinguished Names 91 1.1 lukem 92 1.1 lukem This section defines a subset of the possible distinguished name 93 1.1 lukem structures for use in representing names allocated in the Internet 94 1.1 lukem Domain Name System. It is possible to algorithmically transform any 95 1.1 lukem Internet domain name into a distinguished name, and to convert these 96 1.1 lukem distinguished names back into the original domain names. 97 1.1 lukem 98 1.1 lukem The algorithm for transforming a domain name is to begin with an 99 1.1 lukem empty distinguished name (DN) and then attach Relative Distinguished 100 1.1 lukem Names (RDNs) for each component of the domain, most significant (e.g. 101 1.1 lukem rightmost) first. Each of these RDNs is a single 102 1.1 lukem AttributeTypeAndValue, where the type is the attribute "DC" and the 103 1.1 lukem value is an IA5 string containing the domain name component. 104 1.1 lukem 105 1.1 lukem Thus the domain name "CS.UCL.AC.UK" can be transformed into 106 1.1 lukem 107 1.1 lukem DC=CS,DC=UCL,DC=AC,DC=UK 108 1.1 lukem 109 1.1 lukem 110 1.1 lukem 111 1.1 lukem 112 1.1 lukem 113 1.1 lukem 114 1.1 lukem 115 1.1 lukem Kille, et. al. Standards Track [Page 2] 116 1.1 lukem 118 1.1 lukem RFC 2247 Using Domains in LDAP/X.500 January 1998 119 1.1 lukem 120 1.1 lukem 121 1.1 lukem Distinguished names in which there are one or more RDNs, all 122 1.1 lukem containing only the attribute type DC, can be mapped back into domain 123 1.1 lukem names. Note that this document does not define a domain name 124 1.1 lukem equivalence for any other distinguished names. 125 1.1 lukem 126 1.1 lukem 4. Attribute Type Definition 127 1.1 lukem 128 1.1 lukem The DC (short for domainComponent) attribute type is defined as 129 1.1 lukem follows: 130 1.1 lukem 131 1.1 lukem ( 0.9.2342.19200300.100.1.25 NAME 'dc' EQUALITY caseIgnoreIA5Match 132 1.1 lukem SUBSTR caseIgnoreIA5SubstringsMatch 133 1.1 lukem SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) 134 1.1 lukem 135 1.1 lukem The value of this attribute is a string holding one component of a 136 1.1 lukem domain name. The encoding of IA5String for use in LDAP is simply the 137 1.1 lukem characters of the string itself. The equality matching rule is case 138 1.1 lukem insensitive, as is today's DNS. 139 1.1 lukem 140 1.1 lukem 5. Object Class Definitions 141 1.1 lukem 142 1.1 lukem An object with a name derived from its domain name using the 143 1.1 lukem algorithm of section 3 is represented as an entry in the directory. 144 1.1 lukem The "DC" attribute is present in the entry and used as the RDN. 145 1.1 lukem 146 1.1 lukem An attribute can only be present in an entry held by an LDAP server 147 1.1 lukem when that attribute is permitted by the entry's object class. 148 1.1 lukem 149 1.1 lukem This section defines two object classes. The first, dcObject, is 150 1.1 lukem intended to be used in entries for which there is an appropriate 151 1.1 lukem structural object class. For example, if the domain represents a 152 1.1 lukem particular organization, the entry would have as its structural 153 1.1 lukem object class 'organization', and the 'dcObject' class would be an 154 1.1 lukem auxiliary class. The second, domain, is a structural object class 155 1.1 lukem used for entries in which no other information is being stored. The 156 1.1 lukem domain object class is typically used for entries that are 157 1.1 lukem placeholders or whose domains do not correspond to real-world 158 1.1 lukem entities. 159 1.1 lukem 160 1.1 lukem 5.1. The dcObject object class 161 1.1 lukem 162 1.1 lukem The dcObject object class permits the dc attribute to be present in 163 1.1 lukem an entry. This object class is defined as auxiliary, as it would 164 1.1 lukem typically be used in conjunction with an existing structural object 165 1.1 lukem class, such as organization, organizationalUnit or locality. 166 1.1 lukem 167 1.1 lukem The following object class, along with the dc attribute, can be added 168 1.1 lukem to any entry. 169 1.1 lukem 170 1.1 lukem 171 1.1 lukem 172 1.1 lukem Kille, et. al. Standards Track [Page 3] 173 1.1 lukem 175 1.1 lukem RFC 2247 Using Domains in LDAP/X.500 January 1998 176 1.1 lukem 177 1.1 lukem 178 1.1 lukem ( 1.3.6.1.4.1.1466.344 NAME 'dcObject' SUP top AUXILIARY MUST dc ) 179 1.1 lukem 180 1.1 lukem An example entry would be: 181 1.1 lukem 182 1.1 lukem dn: dc=critical-angle,dc=com 183 1.1 lukem objectClass: top 184 1.1 lukem objectClass: organization 185 1.1 lukem objectClass: dcObject 186 1.1 lukem dc: critical-angle 187 1.1 lukem o: Critical Angle Inc. 188 1.1 lukem 189 1.1 lukem 5.2. The domain object class 190 1.1 lukem 191 1.1 lukem If the entry does not correspond to an organization, organizational 192 1.1 lukem unit or other type of object for which an object class has been 193 1.1 lukem defined, then the "domain" object class can be used. The "domain" 194 1.1 lukem object class requires that the "DC" attribute be present, and permits 195 1.1 lukem several other attributes to be present in the entry. 196 1.1 lukem 197 1.1 lukem The entry will have as its structural object class the "domain" 198 1.1 lukem object class. 199 1.1 lukem 200 1.1 lukem ( 0.9.2342.19200300.100.4.13 NAME 'domain' SUP top STRUCTURAL 201 1.1 lukem MUST dc 202 1.1 lukem MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ 203 1.1 lukem x121Address $ registeredAddress $ destinationIndicator $ 204 1.1 lukem preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ 205 1.1 lukem telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ 206 1.1 lukem street $ postOfficeBox $ postalCode $ postalAddress $ 207 1.1 lukem physicalDeliveryOfficeName $ st $ l $ description $ o $ 208 1.1 lukem associatedName ) ) 209 1.1 lukem 210 1.1 lukem The optional attributes of the domain class are used for describing 211 1.1 lukem the object represented by this domain, and may also be useful when 212 1.1 lukem searching. These attributes are already defined for use with LDAP 213 1.1 lukem [4]. 214 1.1 lukem 215 1.1 lukem An example entry would be: 216 1.1 lukem 217 1.1 lukem dn: dc=tcp,dc=critical-angle,dc=com 218 1.1 lukem objectClass: top 219 1.1 lukem objectClass: domain 220 1.1 lukem dc: tcp 221 1.1 lukem description: a placeholder entry used with SRV records 222 1.1 lukem 223 1.1 lukem The DC attribute is used for naming entries of the domain class, and 224 1.1 lukem this can be represented in X.500 servers by the following name form 225 1.1 lukem rule. 226 1.1 lukem 227 1.1 lukem 228 1.1 lukem 229 1.1 lukem Kille, et. al. Standards Track [Page 4] 230 1.1 lukem 232 1.1 lukem RFC 2247 Using Domains in LDAP/X.500 January 1998 233 1.1 lukem 234 1.1 lukem 235 1.1 lukem ( 1.3.6.1.4.1.1466.345 NAME 'domainNameForm' OC domain MUST ( dc ) ) 236 1.1 lukem 237 1.1 lukem 6. References 238 1.1 lukem 239 1.1 lukem [1] The Directory: Selected Attribute Types. ITU-T Recommendation 240 1.1 lukem X.520, 1993. 241 1.1 lukem 242 1.1 lukem [2] Mockapetris, P., " Domain Names - Concepts and Facilities," 243 1.1 lukem STD 13, RFC 1034, November 1987. 244 1.1 lukem 245 1.1 lukem [3] Kille, S., and M. Wahl, " Lightweight Directory Access Protocol 246 1.1 lukem (v3): UTF-8 String Representation of Distinguished Names", RFC 247 1.1 lukem 2253, December 1997. 248 1.1 lukem 249 1.1 lukem [4] Wahl, M., "A Summary of the X.500(96) User Schema for use with 250 1.1 lukem LDAP", RFC 2256, December 1997. 251 1.1 lukem 252 1.1 lukem 7. Security Considerations 253 1.1 lukem 254 1.1 lukem This memo describes how attributes of objects may be discovered and 255 1.1 lukem retrieved. Servers should ensure that an appropriate security policy 256 1.1 lukem is maintained. 257 1.1 lukem 258 1.1 lukem An enterprise is not restricted in the information which it may store 259 1.1 lukem in DNS or LDAP servers. A client which contacts an untrusted server 260 1.1 lukem may have incorrect or misleading information returned (e.g. an 261 1.1 lukem organization's server may claim to hold naming contexts representing 262 1.1 lukem domain names which have not been delegated to that organization). 263 1.1 lukem 264 1.1 lukem 8. Authors' Addresses 265 1.1 lukem 266 1.1 lukem Steve Kille 267 1.1 lukem Isode Ltd. 268 1.1 lukem The Dome 269 1.1 lukem The Square 270 1.1 lukem Richmond, Surrey 271 1.1 lukem TW9 1DT 272 1.1 lukem England 273 1.1 lukem 274 1.1 lukem Phone: +44-181-332-9091 275 1.1 lukem EMail: S.Kille (a] ISODE.COM 276 1.1 lukem 277 1.1 lukem 278 1.1 lukem 279 1.1 lukem 280 1.1 lukem 281 1.1 lukem 282 1.1 lukem 283 1.1 lukem 284 1.1 lukem 285 1.1 lukem 286 1.1 lukem Kille, et. al. Standards Track [Page 5] 287 1.1 lukem 289 1.1 lukem RFC 2247 Using Domains in LDAP/X.500 January 1998 290 1.1 lukem 291 1.1 lukem 292 1.1 lukem Mark Wahl 293 1.1 lukem Critical Angle Inc. 294 1.1 lukem 4815 W. Braker Lane #502-385 295 1.1 lukem Austin, TX 78759 296 1.1 lukem USA 297 1.1 lukem 298 1.1 lukem Phone: (1) 512 372 3160 299 1.1 lukem EMail: M.Wahl (a] critical-angle.com 300 1.1 lukem 301 1.1 lukem 302 1.1 lukem Al Grimstad 303 1.1 lukem AT&T 304 1.1 lukem Room 1C-429, 101 Crawfords Corner Road 305 1.1 lukem Holmdel, NJ 07733-3030 306 1.1 lukem USA 307 1.1 lukem 308 1.1 lukem EMail: alg (a] att.com 309 1.1 lukem 310 1.1 lukem 311 1.1 lukem Rick Huber 312 1.1 lukem AT&T 313 1.1 lukem Room 1B-433, 101 Crawfords Corner Road 314 1.1 lukem Holmdel, NJ 07733-3030 315 1.1 lukem USA 316 1.1 lukem 317 1.1 lukem EMail: rvh (a] att.com 318 1.1 lukem 319 1.1 lukem 320 1.1 lukem Sri Sataluri 321 1.1 lukem AT&T 322 1.1 lukem Room 4G-202, 101 Crawfords Corner Road 323 1.1 lukem Holmdel, NJ 07733-3030 324 1.1 lukem USA 325 1.1 lukem 326 1.1 lukem EMail: sri (a] att.com 327 1.1 lukem 328 1.1 lukem 329 1.1 lukem 330 1.1 lukem 331 1.1 lukem 332 1.1 lukem 333 1.1 lukem 334 1.1 lukem 335 1.1 lukem 336 1.1 lukem 337 1.1 lukem 338 1.1 lukem 339 1.1 lukem 340 1.1 lukem 341 1.1 lukem 342 1.1 lukem 343 1.1 lukem Kille, et. al. Standards Track [Page 6] 344 1.1 lukem 346 1.1 lukem RFC 2247 Using Domains in LDAP/X.500 January 1998 347 1.1 lukem 348 1.1 lukem 349 1.1 lukem 9. Full Copyright Statement 350 1.1 lukem 351 1.1 lukem Copyright (C) The Internet Society (1998). All Rights Reserved. 352 1.1 lukem 353 1.1 lukem This document and translations of it may be copied and furnished to 354 1.1 lukem others, and derivative works that comment on or otherwise explain it 355 1.1 lukem or assist in its implementation may be prepared, copied, published 356 1.1 lukem and distributed, in whole or in part, without restriction of any 357 1.1 lukem kind, provided that the above copyright notice and this paragraph are 358 1.1 lukem included on all such copies and derivative works. However, this 359 1.1 lukem document itself may not be modified in any way, such as by removing 360 1.1 lukem the copyright notice or references to the Internet Society or other 361 1.1 lukem Internet organizations, except as needed for the purpose of 362 1.1 lukem developing Internet standards in which case the procedures for 363 1.1 lukem copyrights defined in the Internet Standards process must be 364 1.1 lukem followed, or as required to translate it into languages other than 365 1.1 lukem English. 366 1.1 lukem 367 1.1 lukem The limited permissions granted above are perpetual and will not be 368 1.1 lukem revoked by the Internet Society or its successors or assigns. 369 1.1 lukem 370 1.1 lukem This document and the information contained herein is provided on an 371 1.1 lukem "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 372 1.1 lukem TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 373 1.1 lukem BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 374 1.1 lukem HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 375 1.1 lukem MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 376 1.1 lukem 377 1.1 lukem 378 1.1 lukem 379 1.1 lukem 380 1.1 lukem 381 1.1 lukem 382 1.1 lukem 383 1.1 lukem 384 1.1 lukem 385 1.1 lukem 386 1.1 lukem 387 1.1 lukem 388 1.1 lukem 389 1.1 lukem 390 1.1 lukem 391 1.1 lukem 392 1.1 lukem 393 1.1 lukem 394 1.1 lukem 395 1.1 lukem 396 397 398 399 400 Kille, et. al. Standards Track [Page 7] 401 403