3 INTERNET-DRAFT Michael P. Armijo
4 <draft-ietf-ldapext-locate-08.txt> Levon Esibov
5 June 5, 2002 Paul Leach
6 Expires: December 5, 2002 Microsoft Corporation
8 University of Washington
10 Discovering LDAP Services with DNS
14 This document is an Internet-Draft and is in full conformance with
15 all provisions of Section 10 of RFC2026.
17 Internet-Drafts are working documents of the Internet Engineering
18 Task Force (IETF), its areas, and its working groups. Note that
19 other groups may also distribute working documents as Internet-
22 Internet-Drafts are draft documents valid for a maximum of six months
23 and may be updated, replaced, or obsoleted by other documents at any
24 time. It is inappropriate to use Internet- Drafts as reference
25 material or to cite them other than as "work in progress."
27 The list of current Internet-Drafts can be accessed at
28 http://www.ietf.org/ietf/1id-abstracts.txt
30 The list of Internet-Draft Shadow Directories can be accessed at
31 http://www.ietf.org/shadow.html.
33 Distribution of this memo is unlimited. It is filed as <draft-
34 ietf-ldapext-locate-08.txt>, and expires on December 5, 2002.
35 Please send comments to the authors.
39 Copyright (C) The Internet Society (2001). All Rights Reserved.
44 A Lightweight Directory Access Protocol (LDAP) request must be
45 directed to an appropriate server for processing. This document
46 specifies a method for discovering such servers using information in
47 the Domain Name System.
57 Armijo, Esibov, Leach and Morgan [Page 1]
59 INTERNET-DRAFT Discovering LDAP Services with DNS June 5, 2002
65 The LDAPv3 protocol [1] is designed to be a lightweight access
66 protocol for directory services supporting X.500 models. As a
67 distributed directory service, the complete set of directory
68 information (known as the Directory Information Base) is spread
69 across many different servers. Hence there is the need to
70 determine, when initiating or processing a request, which servers
71 hold the relevant information. In LDAP, the Search, Modify, Add,
72 Delete, ModifyDN, and Compare operations all specify a Distinguished
73 Name (DN) [2] on which the operation is performed. A client, or a
74 server acting on behalf of a client, must be able to determine the
75 server(s) that hold the naming context containing that DN, since
76 that server (or one of that set of servers) must receive and process
77 the request. This determination process is called "server
78 location". To support dynamic distributed operation, the
79 information needed to support server location must be available via
80 lookups done at request processing time, rather than, for example,
81 as static data configured into each client or server.
83 It is possible to maintain the information needed to support server
84 location in the directory itself, and X.500 directory deployments
85 typically do so. In practice, however, this only permits location
86 of servers within a limited X.500-connected set. LDAP-specific
87 methods of maintaining server location information in the directory
88 have not yet been standardized. This document defines an
89 alternative method of managing server location information using the
90 Domain Name System. This method takes advantage of the global
91 deployment of the DNS, by allowing LDAP server location information
92 for any existing DNS domain to be published by creating the records
93 described below. A full discussion of the benefits and drawbacks of
94 the various directory location and naming methods is beyond the
95 scope of this document.
97 RFC 2247[3] defines an algorithm for mapping DNS domain names into
98 DNs. This document defines the inverse mapping, from DNs to DNS
99 domain names, based on the conventions in [3], for use in this
100 server location method. The server location method described in
101 this document is only defined for DNs that can be so mapped, i.e.,
102 those DNs that are based on domain names. In practice this is
103 reasonable because many objects of interest are named with domain
104 names, and use of domain-name-based DNs is becoming common.
106 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
107 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
108 document are to be interpreted as described in RFC 2119 [9].
115 Armijo, Esibov, Leach and Morgan [Page 2]
117 INTERNET-DRAFT Discovering LDAP Services with DNS June 5, 2002
120 2. Mapping Distinguished Names into Domain Names
122 This section defines a method of converting a DN into a DNS domain
123 name for use in the server location method described below. Some
124 DNs cannot be converted into a domain name. Converted DNs result
125 in a fully qualified domain name.
128 The output domain name is initially empty. The DN is processed in
129 right-to-left order (i.e., beginning with the first RDN in the
130 sequence of RDNs). An RDN is able to be converted if it (1)
131 consists of a single AttributeTypeAndValue; (2) the attribute type
132 is "DC"; and (3) the attribute value is non-null. If it can be
133 converted, the attribute value is used as a domain name component
134 (label). The first such value becomes the rightmost (i.e., most
135 significant) domain name component, and successive converted RDN
136 values extend to the left. If an RDN cannot be converted,
137 processing stops. If the output domain name is empty when
138 processing stops, the DN cannot be converted into a domain name.
142 cn=John Doe,ou=accounting,dc=example,dc=net
144 The client would convert the DC components as defined above into
149 The determined DNS name will be submitted as a DNS query using the
150 algorithm defined in section 3.
154 3. Locating LDAPv3 servers through DNS
156 LDAPv3 server location information is to be stored using DNS Service
157 Location Record (SRV)[5]. The data in a SRV record contains the DNS
158 name of the server that provides the LDAP service, corresponding
159 Port number, and parameters that enable the client to choose an
160 appropriate server from multiple servers according to the algorithm
161 described in [5]. The name of this record has the following format:
163 _<Service>._<Proto>.<Domain>.
165 where <Service> is "ldap", and <Proto> is "tcp". <Domain> is the
166 domain name formed by converting the DN of a naming context mastered
167 by the LDAP Server into a domain name using the algorithm in
168 Section 2. Note that "ldap" is the symbolic name for the LDAP
169 service in Assigned Numbers[6], as required by [5].
173 Armijo, Esibov, Leach and Morgan [Page 3]
175 INTERNET-DRAFT Discovering LDAP Services with DNS June 5, 2002
178 Presence of such records enables clients to find the LDAP servers
179 using standard DNS query [4]. A client (or server) seeking an LDAP
180 server for a particular DN converts that DN to a domain name using
181 the algorithm of Section 2, does a SRV record query using the DNS
182 name formed as described in the preceding paragraph, and interprets
183 the response as described in [5] to determine a host (or hosts) to
184 contact. As an example, a client that searches for an LDAP server
185 for the DN "ou=foo,dc=example,dc=net" that supports the TCP protocol
186 will submit a DNS query for a set of SRV records with owner name:
188 _ldap._tcp.example.net.
190 The client will receive the list of SRV records published in DNS
191 that satisfy the requested criteria. The following is an example of
194 _ldap._tcp.example.net. IN SRV 0 0 389 phoenix.example.net.
196 The set of returned records may contain multiple records in the case
197 where multiple LDAP servers serve the same domain. If there are no
198 matching SRV records available for the converted DN the client SHOULD
199 NOT attempt to 'walk the tree' by removing the least significant
200 portion of the constructed fully qualified domain name.
203 4. IANA Considerations
205 This document does not require any IANA actions.
208 5. Security Considerations
210 DNS responses can typically be easily spoofed. Clients using this
211 location method SHOULD ensure, via use of strong security
212 mechanisms, that the LDAP server they contact is the one they
213 intended to contact. See [7] for more information on security
214 threats and security mechanisms.
216 When using LDAP with TLS the client MUST check the server's name,
217 as described in section 3.6 of [RFC 2830]. As specified there, the
218 name the client checks for is the server's name before any
219 potentially insecure transformations, including the SRV record
220 lookup specified in this memo. Thus the name the client MUST check
221 for is the name obtained by doing the mapping step defined in
222 section 2 above. For example, if the DN "cn=John
223 Doe,ou=accounting,dc=example,dc=net" is converted to the DNS name
224 "example.net", the server's name MUST match "example.net".
226 This document describes a method that uses DNS SRV records to
227 discover LDAP servers. All security considerations related to DNS
228 SRV records are inherited by this document. See the security
229 considerations section in [5] for more details.
231 Armijo, Esibov, Leach and Morgan [Page 4]
233 INTERNET-DRAFT Discovering LDAP Services with DNS June 5, 2002
238 [1] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory Access
239 Protocol(v3)", RFC 2251, December 1997.
241 [2] Wahl, M., Kille, S. and T. Howes, "Lightweight Directory Access
242 Protocol (v3): UTF-8 String Representation of Distinguished
243 Names", RFC 2253, December 1997.
245 [3] Kille, S. and M. Wahl, "Using Domains in LDAP/X.500
246 Distinguished Names", RFC 2247, January 1998.
248 [4] Mockapetris, P., "DOMAIN NAMES - CONCEPTS AND FACILITIES", RFC
249 1034, STD 13, November 1987.
251 [5] Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR for
252 specifying the location of services (DNS SRV)", RFC 2782,
255 [6] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC
258 [7] Wahl, M., Alvestrand, H., Hodges, J. and Morgan, R.,
259 "Authentication Methods for LDAP", RFC 2829, May 2000.
261 [8] Hodges, J., Morgan, R., Wahl, M., "Lightweight Directory Access
262 Protocol (v3): Extension for Transport Layer Security",
265 [9] Bradner, S., "Key words for use in RFCs to Indicate Requirement
266 Levels", BCP 14, RFC 2119, March 1997.
271 7. Authors' Addresses
276 micharm@microsoft.com
289 Armijo, Esibov, Leach and Morgan [Page 5]
291 INTERNET-DRAFT Discovering LDAP Services with DNS June 5, 2002
294 University of Washington
299 Phone: +1 206 221 3307
300 EMail: rlmorgan@washington.edu
301 URI: http://staff.washington.edu/rlmorgan/
304 8. Intellectual Property Statement
306 The IETF takes no position regarding the validity or scope of any
307 intellectual property or other rights that might be claimed to pertain
308 to the implementation or use of the technology described in this
309 document or the extent to which any license under such rights might or
310 might not be available; neither does it represent that it has made any
311 effort to identify any such rights. Information on the IETF's
312 procedures with respect to rights in standards-track and standards-
313 related documentation can be found in BCP-11. Copies of claims of
314 rights made available for publication and any assurances of licenses to
315 be made available, or the result of an attempt made to obtain a general
316 license or permission for the use of such proprietary rights by
317 implementors or users of this specification can be obtained from the
320 The IETF invites any interested party to bring to its attention any
321 copyrights, patents or patent applications, or other proprietary rights
322 which may cover technology that may be required to practice this
323 standard. Please address the information to the IETF Executive
327 9. Full Copyright Statement
329 Copyright (C) The Internet Society (2001). All Rights Reserved.
330 This document and translations of it may be copied and furnished to
331 others, and derivative works that comment on or otherwise explain it or
332 assist in its implementation may be prepared, copied, published and
333 distributed, in whole or in part, without restriction of any kind,
334 provided that the above copyright notice and this paragraph are included
335 on all such copies and derivative works. However, this document itself
336 may not be modified in any way, such as by removing the copyright notice
337 or references to the Internet Society or other Internet organizations,
338 except as needed for the purpose of developing Internet standards in
339 which case the procedures for copyrights defined in the Internet
340 Standards process must be followed, or as required to translate it into
341 languages other than English. The limited permissions granted above are
342 perpetual and will not be revoked by the Internet Society or its
343 successors or assigns. This document and the information contained
344 herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE
347 Armijo, Esibov, Leach and Morgan [Page 6]
349 INTERNET-DRAFT Discovering LDAP Services with DNS June 5, 2002
351 INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
352 IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
353 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
354 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
359 This document is filed as <draft-ietf-ldapext-locate-08.txt>, and
360 expires December 5, 2002.
362 Armijo, Esibov, Leach and Morgan [Page 7]