]> git.sur5r.net Git - openldap/blob - doc/drafts/draft-ietf-ldapext-locate-xx.txt
88d6cd2b019141f32e5170c247478059aba634b9
[openldap] / doc / drafts / draft-ietf-ldapext-locate-xx.txt
1 INTERNET-DRAFT                                         Michael P. Armijo
2 <draft-ietf-ldapext-locate-04.txt>                          Levon Esibov
3 August, 2000                                                  Paul Leach
4 Expires: February, 2001                            Microsoft Corporation
5                                                              R.L. Morgan
6                                                 University of Washington
7
8                 Discovering LDAP Services with DNS
9
10 Status of this Memo
11
12    This document is an Internet-Draft and is in full conformance with
13    all provisions of Section 10 of RFC2026.
14
15    Internet-Drafts are working documents of the Internet Engineering
16    Task Force (IETF), its areas, and its working groups.  Note that
17    other groups may also distribute working documents as Internet-
18    Drafts.
19
20    Internet-Drafts are draft documents valid for a maximum of six months
21    and may be updated, replaced, or obsoleted by other documents at any
22    time.  It is inappropriate to use Internet- Drafts as reference
23    material or to cite them other than as "work in progress."
24
25    The list of current Internet-Drafts can be accessed at
26    http://www.ietf.org/ietf/1id-abstracts.txt
27
28    The list of Internet-Draft Shadow Directories can be accessed at
29    http://www.ietf.org/shadow.html.
30
31    Distribution of this memo is unlimited.  It is filed as <draft-
32    ietf-ldapext-locate-04.txt>, and expires on February 25, 2001.  
33    Please send comments to the authors.
34
35
36 1. Abstract
37
38    A Lightweight Directory Access Protocol (LDAP) request must be
39    directed to an appropriate server for processing.  This document
40    specifies a method for discovering such servers using information in
41    the Domain Name System. 
42
43
44 2. Introduction
45
46    The LDAPv3 protocol [1] is designed to be a lightweight access
47    protocol for directory services supporting X.500 models.  As a
48    distributed directory service, the complete set of directory
49    information (known as the Directory Information Base) is spread
50    across many different servers.  Hence there is the need to
51    determine, when initiating or processing a request, which servers
52    hold the relevant information.  In LDAP, the Search, Modify, Add,
53    Delete, ModifyDN, and Compare operations all specify a Distinguished
54    Name (DN) [2] on which the operation is performed.  A client, or a
55    server acting on behalf of a client, must be able to determine the
56    server(s) that hold the naming context containing that DN, since
57    that server (or one of that set of servers) must receive and process
58    the request.  This determination process is called "server
59    location".  To support dynamic distributed operation, the
60    information needed to support server location must be available via
61    lookups done at request processing time, rather than, for example,
62    as static data configured into each client or server.
63
64    It is possible to maintain the information needed to support server
65    location in the directory itself, and X.500 directory deployments
66    typically do so.  In practice, however, this only permits location
67    of servers within a limited X.500-connected set.  LDAP-specific
68    methods of maintaining server location information in the directory
69    have not yet been standardized.  This document defines an
70    alternative method of managing server location information using the
71    Domain Name System. This method takes advantage of the global
72    deployment of the DNS, by allowing LDAP server location information
73    for any existing DNS domain to be published by creating the records
74    described below.  A full discussion of the benefits and drawbacks of
75    the various directory location and naming methods is beyond the
76    scope of this document.
77
78    RFC 2247[3] defines an algorithm for mapping DNS domain names into
79    DNs.  This document defines the inverse mapping, from DNs to DNS
80    domain names, based on the conventions in [3], for use in this
81    server location method.  The server location method described in
82    this document is only defined for DNs that can be so mapped, i.e.,
83    those DNs that are based on domain names.  In practice this is
84    reasonable because many objects of interest are named with domain
85    names, and use of domain-name-based DNs is becoming common.
86
87
88 3. Mapping Distinguished Names into Domain Names
89
90    This section defines a method of converting a DN into a DNS domain
91    name for use in the server location method described below.  Some
92    DNs cannot be converted into a domain name.  Converted DNs result 
93    in a fully qualified domain name.
94
95    The output domain name is initially empty.  The DN is processed in
96    right-to-left order (i.e., beginning with the first RDN in the
97    sequence of RDNs).  An RDN is able to be converted if it (1)
98    consists of a single AttributeTypeAndValue; (2) the attribute type
99    is "DC"; and (3) the attribute value is non-null.  If it can be
100    converted, the attribute value is used as a domain name component
101    (label).  The first such value becomes the rightmost (i.e., most
102    significant) domain name component, and successive converted RDN
103    values extend to the left.  If an RDN cannot be converted,
104    processing stops.  If the output domain name is empty when
105    processing stops, the DN cannot be converted into a domain name.
106
107    For DN:
108
109    cn=John Doe,ou=accounting,dc=example,dc=net
110
111    The client would convert the DC components as defined above into 
112    DNS name:
113
114    example.net.
115
116    The determined DNS name will be submitted as a DNS query using the 
117    algorithm defined in section 4.
118
119
120 4. Locating LDAP servers through DNS
121
122    LDAP server location information is to be stored using DNS Service
123    Location Record (SRV)[5].  The data in a SRV record contains the DNS
124    name of the server that provides the LDAP service, corresponding
125    Port number, and parameters that enable the client to choose an
126    appropriate server from multiple servers according to the algorithm
127    described in [5].  The name of this record has the following format:
128
129       _<Service>._<Proto>.<Domain>
130
131    where <Service> is always "ldap", and <Proto> is a protocol that can
132    be either "udp" or "tcp".  <Domain> is the domain name formed by
133    converting the DN of a naming context mastered by the LDAP Server
134    into a domain name using the algorithm in Section 3.  Note that
135    "ldap" is the symbolic name for the LDAP service in Assigned
136    Numbers[6], as required by [5].
137
138    Presence of such records enables clients to find the LDAP servers
139    using standard DNS query [4].  A client (or server) seeking an LDAP
140    server for a particular DN converts that DN to a domain name using
141    the algorithm of Section 3, does a SRV record query using the DNS
142    name formed as described in the preceding paragraph, and interprets
143    the response as described in [5] to determine a host (or hosts) to
144    contact. As an example, a client that searches for an LDAP server
145    for the DN "ou=foo,dc=example,dc=net" that supports the TCP protocol
146    will submit a DNS query for a set of SRV records with owner name:
147
148       _ldap._tcp.example.net.
149
150    The client will receive the list of SRV records published in DNS
151    that satisfy the requested criteria.  The following is an example of
152    such a record:
153
154       _ldap._tcp.example.net.   IN        SRV  0 0 389 phoenix.example.net.
155
156    The set of returned records may contain multiple records in the case
157    where multiple LDAP servers serve the same domain.  If there are no 
158    matching SRV records available for the converted DN the client SHOULD 
159    NOT attempt to 'walk the tree' by removing the least significant 
160    portion of the constructed fully qualified domain name.
161
162
163 5. Security Considerations
164
165    DNS responses can typically be easily spoofed.  Clients using this
166    location method SHOULD ensure, via use of strong security
167    mechanisms, that the LDAP server they contact is the one they
168    intended to contact.  See [7] for more information on security
169    threats and security mechanisms.
170
171    This document describes a method that uses DNS SRV records to 
172    discover LDAP servers.  All security considerations related to DNS
173    SRV records are inherited by this document.  See the security 
174    considerations section in [5] for more details.
175
176
177 6. References
178
179    [1]  Wahl, M., Howes, T. and S. Kille, "Lightweight Directory Access
180         Protocol(v3)", RFC 2251, December 1997.
181
182    [2]  Wahl, M., Kille, S. and T. Howes, "Lightweight Directory Access
183         Protocol (v3):  UTF-8 String Representation of Distinguished
184         Names", RFC 2253, December 1997.
185
186    [3]  Kille, S. and M. Wahl, "Using Domains in LDAP/X.500
187         Distinguished Names", RFC 2247, January 1998.
188
189    [4]  Mockapetris, P., "DOMAIN NAMES - CONCEPTS AND FACILITIES", RFC
190         1034, STD 13, November 1987.
191
192    [5]  Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR for
193         specifying the location of services (DNS SRV)", RFC 2782,
194         February 2000.
195
196    [6]  Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC
197         1700, October 1994.
198
199    [7]  Wahl, M., Alvestrand, H., Hodges, J. and Morgan, R., 
200         "Authentication Methods for LDAP", RFC 2829, May 2000.
201
202
203 7. Authors' Addresses
204
205    Michael P. Armijo
206    One Microsoft Way
207    Redmond, WA 98052
208    micharm@microsoft.com
209
210    Paul Leach
211    One Microsoft Way
212    Redmond, WA 98052
213    paulle@microsoft.com
214
215    Levon Esibov
216    One Microsoft Way
217    Redmond, WA 98052
218    levone@microsoft.com
219
220    RL "Bob" Morgan
221    University of Washington
222    4545 15th Ave NE
223    Seattle, WA  98105
224    US
225
226    Phone: +1 206 221 3307
227    EMail: rlmorgan@washington.edu
228    URI:   http://staff.washington.edu/rlmorgan/
229
230    Expires February 25, 2001
231
232
233