home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ldapsdk.zip / doc / drafts / draft-ietf-ldapext-locate-xx.txt < prev    next >
Text File  |  2000-08-31  |  10KB  |  234 lines

  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.  
  234.