RFC 1959

An LDAP URL Format

πŸ“… published June 1996, from ietf

RFC 1959 πŸŽ€ An LDAP URL Format

okay bestie, here's the whole vibe check πŸ’…

Network Working Group (the group that wrote it πŸ’œ) Request for Comments: 1959 Authors: Tim Howes and Mark Smith, both at the University of Michigan πŸ¦‹ Category: Standards Track ✨ Date: June 1996 🌸 Obsoletes and updates: this one doesn't list anything it obsoletes or updates πŸ™ˆ


Status of This Memo

okay so this doc is an Internet standards track protocol for the whole Internet community, and it's literally asking for discussion and suggestions πŸ’– for improvements. For where this protocol stands in the standardization process, check the current edition of the "Internet Official Protocol Standards" (STD 1) πŸ“š. Distribution of this memo is unlimited 🌈.

1. Abstract ✨

LDAP is the Lightweight Directory Access Protocol, defined in [1] and [2] πŸ’…. This doc describes a format for an LDAP Uniform Resource Locator, which lets Internet clients reach the LDAP protocol directly πŸ”₯. Right now LDAP is only really used as a front end to the X.500 directory, but the URL format here is general enough to cover stand-alone LDAP servers (aka LDAP servers that are not back-ended by X.500) 🫢.

2. URL Definition πŸ‘‘

An LDAP URL begins with the protocol prefix "ldap" and is defined by the grammar below πŸ’œ.

    <ldapurl> ::= "ldap://" [ <hostport> ] "/" <dn> [ "?" <attributes>
                        [ "?" <scope> "?" <filter> ] ]

    <hostport> ::= <hostname> [ ":" <portnumber> ]

    <dn> ::= a string as defined in RFC 1485

    <attributes> ::= NULL | <attributelist>

    <attributelist> ::= <attributetype>
                        | <attributetype> [ "," <attributelist> ]

    <attributetype> ::= a string as defined in RFC 1777

    <scope> ::= "base" | "one" | "sub"

    <filter> ::= a string as defined in RFC 1558

The ldap prefix points at entries living in the LDAP server running on the given <hostname> at the given <portnumber> πŸ¦‹. The default port is TCP port 389 πŸ“. The <dn> is an LDAP Distinguished Name using the string format described in [1], with any URL-illegal characters (e.g., spaces) escaped using the % method described in RFC 1738 πŸŽ€.

The <attributes> construct says which attributes should be returned from the entry or entries 🧚. Individual <attributetype> names are as defined for AttributeType in RFC 1777. If the <attributes> part is omitted, all attributes of the entry or entries should be returned ✨.

The <scope> construct sets the scope of the search in the given LDAP server πŸ”. The allowable scopes are "base" for a base object search, "one" for a one-level search, or "sub" for a subtree search πŸ’–. If <scope> is omitted, a scope of "base" is assumed 🌸.

The <filter> is the search filter applied to entries within the specified scope during the search πŸ’…. It has the format specified in [4], with any URL-illegal characters escaped using the % method described in RFC 1738 🫢. If <filter> is omitted, a filter of "(objectClass=*)" is assumed πŸ™ˆ.

Note: if the entry lives in the X.500 namespace, it should be reachable from any LDAP server that is providing front-end access to the X.500 directory 🌈. If the <hostport> part of the URL is missing, the URL can be resolved by contacting any X.500-back-ended LDAP server πŸ”₯.

3. Examples πŸ¦‹

Here are some example LDAP URLs using the format we just went over πŸ’…. An LDAP URL referring to the University of Michigan entry, available from any X.500-capable LDAP server 🌸:

  ldap:///o=University%20of%20Michigan,c=US

An LDAP URL referring to the University of Michigan entry in a particular ldap server πŸŽ€:

  ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US

This URL corresponds to a base object search of the "o=University of Michigan, c=US" entry using a filter of (objectclass=*), requesting all attributes πŸ’œ.

An LDAP URL referring to only the postalAddress attribute of the University of Michigan entry 🧚:

  ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress

The corresponding LDAP search operation is the same as in the previous example, except that only the postalAddress attribute is requested πŸ’–.

An LDAP URL referring to the set of entries found by querying any X.500-capable LDAP server and doing a subtree search of the University of Michigan for any entry with a common name of "Babs Jensen", retrieving all attributes πŸ”₯:

  ldap:///o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)

An LDAP URL referring to all children of the c=GB entry ⭐:

  ldap://ldap.itd.umich.edu/c=GB?objectClass?one

The objectClass attribute is requested to be returned along with the entries 🫢.

4. Security Considerations πŸ”’

Serious moment, bestie 😭: the LDAP URL format does not provide a way to specify credentials to use when resolving the URL πŸ’€. Therefore, it is expected that such requests will be unauthenticated. The security implications of resolving an LDAP URL are the same as those of resolving any LDAP query. See the RFC 1777 for more details πŸ™ˆ.

5. Prototype Implementation Availability πŸ’…

There is a prototype implementation of the specification defined in this document available πŸŽ€. It is an extension to the libwww client library, provided in both source and binary forms 🌈. Also included are binary versions of the Mosaic WWW client for various platforms ✨. See the following URL for more details πŸ¦‹:

     ftp://terminator.rs.itd.umich.edu/ldap/url/

6. Bibliography πŸ“š

[1] Kille, S., "A String Representation of Distinguished Names", RFC 1779, March 1995.

[2] Yeong, W., Howes, T., and S. Kille, "Lightweight Directory Access Protocol", RFC 1777, March 1995.

[3] Howes, R., Kille, S., Yeong, W., and C. Robbins, "The String Representation of Standard Attribute Syntaxes", RFC 1778, March 1995.

[4] Howes, T., "A String Representation of LDAP Search Filters", RFC 1558, December 1993.

[5] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform Resource Locators (URL)", RFC 1738, December 1994.

7. Acknowledgements 🫢

This material is based upon work supported by the National Science Foundation under Grant No. NCR-9416667 🌸.

8. Authors' Addresses πŸ¦‹

   Tim Howes
   University of Michigan
   ITD Research Systems
   535 W William St.
   Ann Arbor, MI 48103-4943
   USA

   Phone: +1 313 747-4454
   EMail: tim@umich.edu


   Mark Smith
   University of Michigan
   ITD Research Systems
   535 W William St.
   Ann Arbor, MI 48103-4943
   USA

   Phone: +1 313 764-2277
   EMail: mcs@umich.edu

That's the whole RFC, bestie 🌈✨ LDAP URLs, end of story πŸ‘‘πŸ’–

πŸ“¦ where this page comes from