]> git.sur5r.net Git - openldap/blob - doc/drafts/draft-ietf-ldapext-locate-xx.txt
Rev 03
[openldap] / doc / drafts / draft-ietf-ldapext-locate-xx.txt
1 INTERNET-DRAFT                                         Michael P. Armijo
2 <draft-ietf-ldapext-locate-03.txt>                          Levon Esibov
3 July, 2000                                                    Paul Leach
4 Expires: January, 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-03.txt>, and expires on January 14, 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.  For each RDN component
96    of the DN, beginning with the rightmost and working left, if the 
97    attribute type is "DC", then the attribute value is used as a domain 
98    name component (label).
99    The first such value becomes the most significant (i.e., rightmost)
100    domain name component, and successive values occupy less significant
101    positions (i.e., extending leftward), in order.  If the attribute
102    type is not "DC", then processing stops.  If the final RDN component
103    of the DN is not of type "DC" then the DN cannot be converted to a
104    domain name. 
105
106    For DN:
107
108    cn=John Doe,ou=accounting,dc=example,dc=net
109
110    The client would convert the DC components as defined above into 
111    DNS name:
112
113    example.net.
114
115    The determined DNS name will be submitted as a DNS query using the 
116    algorithm defined in section 4.
117
118
119 4. Locating LDAP servers through DNS
120
121    LDAP server location information is to be stored using DNS Service
122    Location Record (SRV)[5].  The data in a SRV record contains the DNS
123    name of the server that provides the LDAP service, corresponding
124    Port number, and parameters that enable the client to choose an
125    appropriate server from multiple servers according to the algorithm
126    described in [5].  The name of this record has the following format:
127
128       _<Service>._<Proto>.<Domain>
129
130    where <Service> is always "ldap", and <Proto> is a protocol that can
131    be either "udp" or "tcp".  "_ldap._tcp" applies to services 
132    compatible with LDAPv2 [7] or LDAPv3 [1].  "_ldap._udp" 
133    applies to services compatible with CLDAP [8].  <Domain> is 
134    the domain name formed by converting the DN of a naming context 
135    mastered by the LDAP Server into a domain name using the algorithm in 
136    Section 3.  Note that "ldap" is the symbolic name for the LDAP service 
137    in Assigned Numbers[6], as required by [5].
138
139    Presence of such records enables clients to find the LDAP servers
140    using standard DNS query [4].  A client (or server) seeking an LDAP
141    server for a particular DN converts that DN to a domain name using
142    the algorithm of Section 2, does a SRV record query using the DNS
143    name formed as described in the preceding paragraph, and interprets
144    the response as described in [5] to determine a host (or hosts) to
145    contact. As an example, a client that searches for an LDAP server
146    for the DN "ou=foo,dc=example,dc=net" that supports the TCP protocol
147    will submit a DNS query for a set of SRV records with owner name:
148
149       _ldap._tcp.example.net.
150
151    The client will receive the list of SRV records published in DNS
152    that satisfy the requested criteria.  The following is an example of
153    such a record:
154
155       _ldap._tcp.example.net.   IN        SRV  0 0 389 phoenix.example.net.
156
157    The set of returned records may contain multiple records in the case
158    where multiple LDAP servers serve the same domain.  If there are no 
159    matching SRV records available for the converted DN the client SHOULD 
160    NOT attempt to 'walk the tree' by removing the least significant 
161    portion of the constructed fully qualified domain name.
162
163
164 5. Security Considerations
165
166    This document describes a method that uses DNS SRV records to 
167    discover LDAP servers.  All security considerations related to DNS
168    SRV records are inherited by this document.  See the security 
169    considerations section in [6] for more details.
170
171
172 6. References
173
174    [1]  Wahl, M., Howes, T. and S. Kille, "Lightweight Directory Access
175         Protocol(v3)", RFC 2251, December 1997.
176
177    [2]  Wahl, M., Kille, S. and T. Howes, "Lightweight Directory Access
178         Protocol (v3):  UTF-8 String Representation of Distinguished
179         Names", RFC 2253, December 1997.
180
181    [3]  Kille, S. and M. Wahl, "Using Domains in LDAP/X.500
182         Distinguished Names", RFC 2247, January 1998.
183
184    [4]  Mockapetris, P., "DOMAIN NAMES - CONCEPTS AND FACILITIES", RFC
185         1034, STD 13, November 1987.
186
187    [5]  Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR for
188         specifying the location of services (DNS SRV)", RFC 2782,
189         February 2000.
190
191    [6]  Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC
192         1700, October 1994.
193
194    [7]  Yeong, W., Howes, T. and Kille, S.,  "Lightweight Directory Access 
195         Protocol",  RFC 1777, March 1995
196
197    [8]  Young, A., "Connection-less Lightweight Directory Access Protocol",
198         RFC 1798, June 1995
199
200
201 7. Authors' Addresses
202
203    Michael P. Armijo
204    One Microsoft Way
205    Redmond, WA 98052
206    micharm@microsoft.com
207
208    Paul Leach
209    One Microsoft Way
210    Redmond, WA 98052
211    paulle@microsoft.com
212
213    Levon Esibov
214    One Microsoft Way
215    Redmond, WA 98052
216    levone@microsoft.com
217
218    RL "Bob" Morgan
219    University of Washington
220    4545 15th Ave NE
221    Seattle, WA  98105
222    US
223
224    Phone: +1 206 221 3307
225    EMail: rlmorgan@washington.edu
226    URI:   http://staff.washington.edu/rlmorgan/
227
228    Expires January, 2001
229
230
231