ietf-corpus

rfc-4519

Lightweight Directory Access Protocol (LDAP): Schema for User Applications

A. Sciberras (Editor)
date2006-06 streamIETF areaapp wgldapbis statusPROPOSED STANDARD pages35 canonicalhttps://www.rfc-editor.org/rfc/rfc4519 doi10.17487/RFC4519 errataview
This document is an integral part of the Lightweight Directory Access Protocol (LDAP) technical specification. It provides a technical specification of attribute types and object classes intended for use by LDAP directory clients for many directory services, such as White Pages. These objects are widely used as a basis for the schema in many LDAP directories. This document does not cover attributes used for the administration of directory servers, nor does it include directory objects defined for specific uses in other documents. [STANDARDS-TRACK]

obsoletes

updates

Extracted elements (30)

design-rationale §1.1

PKI-related schema elements (certificate attributes and object classes) were removed from this document and placed in RFC 4523 to separate general-purpose user schema from specialized PKI schema.

ldap, pkix

design-rationale §3.3

The 'dcObject' and 'uidObject' object classes are defined as AUXILIARY rather than STRUCTURAL because they add supplemental identity information to entries already typed by an existing structural class, avoiding requiring a separate entry hierarchy.

ldap

design-rationale §2.7

The 'distinguishedName' and 'name' attribute types are defined as supertypes that are unlikely to appear directly in entries; they exist so that user attribute types with DN or name syntax can inherit matching rules via attribute subtyping.

ldap

interoperability-note §2.4

The directory service will not enforce that 'dc' values conform to host label restrictions (RFC 1123) or that 'destinationIndicator' values conform to CCITT F.1/F.31; enforcement is the client application's responsibility.

ldap, dns

interoperability-note §2

The 'searchGuide' attribute is superseded by 'enhancedSearchGuide'; both 'searchGuide' and 'teletexTerminalIdentifier' are greatly discouraged and servers need not implement them.

ldap

interoperability-note §2.43

The 'x500UniqueIdentifier' attribute (OID 2.5.4.45) is distinct from both the 'uid' attribute and the 'uniqueIdentifier' attribute defined in RFC 4524, despite sharing the name 'uniqueIdentifier' in X.520.

ldap

normative-requirement §2 SHOULD

An LDAP server implementation SHOULD recognize the attribute types described in Section 2, with the exception of 'searchGuide' and 'teletexTerminalIdentifier' whose use is greatly discouraged.

ldap

normative-requirement §2.41 SHOULD

Applications SHOULD prepare textual strings used as passwords by transcoding to Unicode, applying SASLprep (RFC 4013), and encoding as UTF-8 before storing in 'userPassword'.

ldap, security

normative-requirement §2.7 MUST NOT

Client implementations MUST NOT assume that LDAP servers are capable of performing attribute subtyping, as noted for both 'distinguishedName' and 'name' supertypes.

ldap

normative-requirement §2.4 REQUIRED

Directory applications supporting International Domain Names SHALL use the ToASCII method (RFC 3490) to produce the domain component label for the 'dc' attribute.

ldap, dns

normative-requirement §3 SHOULD

LDAP servers SHOULD recognize all the Object Classes listed in Section 3 as values of the 'objectClass' attribute.

ldap

privacy-consideration §5

Directory entry attributes represent real-world information about people, organizations, or devices; most countries have privacy laws regarding the publication of such information, which implementers must consider.

ldap, privacy

protocol-element §2.2

The 'c' (countryName) attribute type (OID 2.5.4.6) is SINGLE-VALUE, uses Country String syntax, and contains a two-letter ISO 3166 country code.

ldap

protocol-element §2.3

The 'cn' (commonName) attribute type (OID 2.5.4.3) is a multi-valued attribute containing names of an object, inheriting from the 'name' supertype; for persons it is typically the full name.

ldap

protocol-element §2.4

The 'dc' (domainComponent) attribute type (OID 0.9.2342.19200300.100.1.25) holds a single DNS domain label encoded as IA5String with case-insensitive equality matching; it is SINGLE-VALUE.

ldap, dns

protocol-element §3.3

The 'dcObject' object class (OID 1.3.6.1.4.1.1466.344) is AUXILIARY, requiring 'dc', and is used in conjunction with an existing structural object class to add domain component information.

ldap, dns

protocol-element §2.7

The 'distinguishedName' attribute type (OID 2.5.4.49) is a base supertype for user attribute types with DN syntax; it uses distinguishedNameMatch equality and DN syntax.

ldap

protocol-element §3.5

The 'groupOfNames' object class (OID 2.5.6.9) is STRUCTURAL, requires 'member' and 'cn', and represents a set of named objects including group maintenance information.

ldap

protocol-element §3.6

The 'groupOfUniqueNames' object class (OID 2.5.6.17) is STRUCTURAL, requires 'uniqueMember' and 'cn', and ensures object names are not repeated or reassigned within a set scope.

ldap

protocol-element §3.8

The 'organization' object class (OID 2.5.6.4) is STRUCTURAL, requires 'o', and permits a broad set of optional contact and address attributes including 'userPassword' and telecom numbers.

ldap

protocol-element §3.12

The 'person' object class (OID 2.5.6.6) is a STRUCTURAL class requiring 'sn' and 'cn', with optional 'userPassword', 'telephoneNumber', 'seeAlso', and 'description'.

ldap

protocol-element §2.39

The 'uid' (userid) attribute type (OID 0.9.2342.19200300.100.1.1) contains computer system login names, uses caseIgnoreMatch equality and Directory String syntax.

ldap

protocol-element §3.14

The 'uidObject' object class (OID 1.3.6.1.1.3.1) is AUXILIARY, requiring 'uid', and is used in conjunction with an existing structural object class to add user identification.

ldap

protocol-element §2.40

The 'uniqueMember' attribute type (OID 2.5.4.50) uses Name and Optional UID syntax (1.3.6.1.4.1.1466.115.121.1.34) with uniqueMemberMatch equality to handle reused distinguished names.

ldap

protocol-element §2.41

The 'userPassword' attribute (OID 2.5.4.35) stores octet strings using Octet String syntax with octetStringMatch equality; passwords are not encrypted at rest.

ldap, security

registry §4

IANA updated the LDAP descriptors registry to map all attribute type and object class short names defined in RFC 4519 (e.g., 'cn', 'dc', 'uid', 'person', 'organization') to their OIDs under RFC 4519.

ldap, registry

security-consideration §5

Multiple values for 'userPassword' must be used with care; administrator password reset becomes tricky or impossible if multiple application-specific values are present, and servers are encouraged to provide controls restricting 'userPassword' to one value.

ldap, security

security-consideration §5

Transfer of cleartext passwords via 'userPassword' is strongly discouraged where the underlying transport cannot guarantee confidentiality and integrity, as this may disclose passwords to unauthorized parties.

ldap, security

wire-format §2.4

The 'dc' attribute value is an ASCII label conforming to the ABNF: label = (ALPHA / DIGIT) [*61(ALPHA / DIGIT / HYPHEN) (ALPHA / DIGIT)], encoded as IA5String.

ldap, dns

wire-format §2.23

The 'postalAddress' attribute uses Postal Address syntax (OID 1.3.6.1.4.1.1466.115.121.1.41) with caseIgnoreListMatch equality and caseIgnoreListSubstringsMatch substring matching.

ldap