ietf-corpus

rfc-1959

An LDAP URL Format

T. Howes, M. Smith
date1996-06 streamIETF areaapp wgasid statusPROPOSED STANDARD pages4 canonicalhttps://www.rfc-editor.org/rfc/rfc1959 doi10.17487/RFC1959 errataview
This document describes a format for an LDAP Uniform Resource Locator which will allow Internet clients to have direct access to the LDAP protocol. [STANDARDS-TRACK]

obsoleted by

Extracted elements (15)

design-rationale §2

Omitting the `<hostport>` component from an LDAP URL is intentionally supported so that URLs referencing X.500 namespace entries can be resolved by any available X.500-capable LDAP server, enabling location-independent references to directory entries.

ldap

design-rationale §2

The `<scope>` and `<filter>` components are made optional with well-defined defaults (`base` scope and `(objectClass=*)` filter) to allow concise LDAP URLs that reference a single known entry without requiring explicit search parameters.

ldap

design-rationale §1

The URL format is designed to be general enough to handle both LDAP servers acting as X.500 front-ends and stand-alone LDAP servers not backed by X.500, anticipating future deployment scenarios beyond the then-current X.500 front-end use case.

ldap

interoperability-note §2

If an entry resides in the X.500 namespace, it should be reachable from any LDAP server providing front-end access to X.500. If the `<hostport>` part of the URL is missing, the URL can be resolved by contacting any X.500-back-ended LDAP server.

ldap

normative-requirement §2 SHOULD

If `<filter>` is omitted from the LDAP URL, a filter of `(objectClass=*)` is assumed, which matches all object classes and effectively retrieves any entry in scope.

ldap

normative-requirement §2 SHOULD

If `<scope>` is omitted from the LDAP URL, a scope of `"base"` (base object search) is assumed by the client resolving the URL.

ldap

normative-requirement §2 SHOULD

If the `<attributes>` part of the URL is omitted, all attributes of the matching entry or entries should be returned by the LDAP server.

ldap

normative-requirement §2 SHOULD

The default port for LDAP connections resolved from an LDAP URL is TCP port 389, used when no explicit `<portnumber>` is included in the `<hostport>` component.

ldap

normative-requirement §2 MUST

URL-illegal characters in the `<dn>` and `<filter>` components (e.g., spaces) MUST be escaped using the % method described in RFC 1738 to produce a valid LDAP URL.

ldap

protocol-element §2

The `<attributes>` component specifies which attributes should be returned from matched entries. It is either NULL or a comma-separated list of `<attributetype>` names as defined in RFC 1777. If omitted, all attributes are returned.

ldap

protocol-element §2

The `<dn>` component of the LDAP URL is an LDAP Distinguished Name using the string format defined in RFC 1485 (later RFC 1779), with URL-illegal characters percent-encoded using the method described in RFC 1738.

ldap

protocol-element §2

The `<filter>` component is an LDAP search filter string as defined in RFC 1558 (LDAP search filter syntax), with URL-illegal characters percent-encoded. If omitted, a filter of `(objectClass=*)` is assumed.

ldap

protocol-element §2

The `<scope>` component specifies the LDAP search scope: `"base"` for a base object search, `"one"` for a one-level search, or `"sub"` for a subtree search. If omitted, `"base"` is assumed.

ldap

security-consideration §4

The LDAP URL format provides no mechanism to specify credentials for resolving the URL; therefore, such requests are expected to be unauthenticated. The security implications of resolving an LDAP URL are the same as those of resolving any LDAP query, as described in RFC 1777.

ldap, security

wire-format §2

An LDAP URL is defined by the grammar: `ldap://[<hostport>]/<dn>[?<attributes>[?<scope>?<filter>]]`. The `<hostport>` is `<hostname>[:<portnumber>]`, defaulting to TCP port 389. All URL-illegal characters (e.g., spaces) must be percent-encoded per RFC 1738.

ldap