LDAP Authentication Password Schema
RFC 3112

Document Type RFC - Informational (May 2001; No errata)
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 3112 (Informational)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                        K. Zeilenga
Request for Comments: 3112                           OpenLDAP Foundation
Category: Informational                                         May 2001

                  LDAP Authentication Password Schema

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

Abstract

   This document describes schema in support of user/password
   authentication in a LDAP (Lightweight Directory Access Protocol)
   directory including the authPassword attribute type.  This attribute
   type holds values derived from the user's password(s) (commonly using
   cryptographic strength one-way hash).  authPassword is intended to
   used instead of userPassword.

1. Background and Intended Use

   The userPassword attribute type [RFC2256] is intended to be used to
   support the LDAP [RFC2251] "simple" bind operation.  However, values
   of userPassword must be clear text passwords.  It is often desirable
   to store values derived from the user's password(s) instead of actual
   passwords.

   The authPassword attribute type is intended to be used to store
   information used to implement simple password based authentication.
   The attribute type may be used by LDAP servers to implement the LDAP
   Bind operation's "simple" authentication method.

   The attribute type supports multiple storage schemes.  A matching
   rule is provided for use with extensible search filters to allow
   clients to assert that a clear text password "matches" one of the
   attribute's values.

   Storage schemes often use cryptographic strength one-way hashing.
   Though the use of one-way hashing reduces the potential that exposed
   values will allow unauthorized access to the Directory (unless the

Zeilenga                     Informational                      [Page 1]
RFC 3112          LDAP Authentication Password Schema           May 2001

   hash algorithm/implementation is flawed), the hashing of passwords is
   intended to be as an additional layer of protection.  It is
   RECOMMENDED that hashed values be protected as if they were clear
   text passwords.

   This attribute may be used in conjunction with server side password
   generation mechanisms (such as the LDAP Password Modify [RFC3062]
   extended operation).

   Access to this attribute may governed by administrative controls such
   as those which implement password change policies.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", and "MAY" in this document are
   to be interpreted as described in RFC 2119 [RFC2119].

2. Schema Definitions

   The following schema definitions are described in terms of LDAPv3
   Attribute Syntax Definitions [RFC2252] with specific syntax detailed
   using Augmented BNF [RFC2234].

2.1. authPasswordSyntax

      ( 1.3.6.1.4.1.4203.1.1.2
        DESC 'authentication password syntax' )

   Values of this syntax are encoded according to:

      authPasswordValue = w scheme s authInfo s authValue w
      scheme = %x30-39 / %x41-5A / %x2D-2F / %x5F
            ; 0-9, A-Z, "-", ".", "/", or "_"
      authInfo = schemeSpecificValue
      authValue = schemeSpecificValue
              schemeSpecificValue = *( %x21-23 / %x25-7E )
            ; printable ASCII less "$" and " "
      s = w SEP w
      w = *SP
      SEP = %x24 ; "$"
      SP = %x20 ; " " (space)

   where scheme describes the mechanism and authInfo and authValue are a
   scheme specific.  The authInfo field is often a base64 encoded salt.
   The authValue field is often a base64 encoded value derived from a
   user's password(s).  Values of this attribute are case sensitive.

Zeilenga                     Informational                      [Page 2]
RFC 3112          LDAP Authentication Password Schema           May 2001

   Transfer of values of this syntax is strongly discouraged where the
   underlying transport service cannot guarantee confidentiality and may
   result in disclosure of the values to unauthorized parties.

   This document describes a number of schemes, as well as requirements
   for the scheme naming, in section 3.

2.2. authPasswordExactMatch

      ( 1.3.6.1.4.1.4203.1.2.2
        NAME 'authPasswordExactMatch'
        DESC 'authentication password exact matching rule'
        SYNTAX 1.3.6.1.4.1.4203.1.1.2 )

   This matching rule allows a client to assert that an asserted
   authPasswordSyntax value matches authPasswordSyntax values.  It is
   meant to be used as the EQUALITY matching rule of attributes whose
   SYNTAX is authPasswordSyntax.

   The assertion is "TRUE" if there is an attribute value which has the
   same scheme, authInfo, and authValue components as the asserted
   value; "FALSE" if no attribute value has the same components as the
Show full document text