Home | History | Annotate | Line # | Download | only in rfc
      1 
      2 
      3 
      4 
      5 
      6 
      7 Network Working Group                                        K. Zeilenga
      8 Request for Comments: 3062                           OpenLDAP Foundation
      9 Category: Standards Track                                  February 2001
     10 
     11 
     12                 LDAP Password Modify Extended Operation
     13 
     14 Status of this Memo
     15 
     16    This document specifies an Internet standards track protocol for the
     17    Internet community, and requests discussion and suggestions for
     18    improvements.  Please refer to the current edition of the "Internet
     19    Official Protocol Standards" (STD 1) for the standardization state
     20    and status of this protocol.  Distribution of this memo is unlimited.
     21 
     22 Copyright Notice
     23 
     24    Copyright (C) The Internet Society (2001).  All Rights Reserved.
     25 
     26 Abstract
     27 
     28    The integration of the Lightweight Directory Access Protocol (LDAP)
     29    and external authentication services has introduced non-DN
     30    authentication identities and allowed for non-directory storage of
     31    passwords.  As such, mechanisms which update the directory (e.g.,
     32    Modify) cannot be used to change a user's password.  This document
     33    describes an LDAP extended operation to allow modification of user
     34    passwords which is not dependent upon the form of the authentication
     35    identity nor the password storage mechanism used.
     36 
     37    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
     38    "SHOULD", "SHOULD NOT", "RECOMMENDED", and "MAY" in this document are
     39    to be interpreted as described in RFC 2119.
     40 
     41 1.  Background and Intent of Use
     42 
     43    Lightweight Directory Access Protocol (LDAP) [RFC2251] is designed to
     44    support an number of authentication mechanisms including simple user
     45    name/password pairs.  Traditionally, LDAP users where identified by
     46    the Distinguished Name [RFC2253] of a directory entry and this entry
     47    contained a userPassword [RFC2256] attribute containing one or more
     48    passwords.
     49 
     50    The protocol does not mandate that passwords associated with a user
     51    be stored in the directory server.  The server may use any attribute
     52    suitable for password storage (e.g., userPassword), or use non-
     53    directory storage.
     54 
     55 
     56 
     57 
     58 Zeilenga                    Standards Track                     [Page 1]
     59 
     61 RFC 3062        LDAP Password Modify Extended Operation    February 2001
     62 
     63 
     64    The integration [RFC2829] of application neutral SASL [RFC2222]
     65    services which support simple username/password mechanisms (such as
     66    DIGEST-MD5) has introduced non-LDAP DN authentication identity forms
     67    and made storage of passwords the responsibility of the SASL service
     68    provider.
     69 
     70    LDAP update operations are designed to act upon attributes of an
     71    entry within the directory.  LDAP update operations cannot be used to
     72    modify a user's password when the user is not represented by a DN,
     73    does not have a entry, or when that password used by the server is
     74    not stored as an attribute of an entry.  An alternative mechanism is
     75    needed.
     76 
     77    This document describes an LDAP Extended Operation intended to allow
     78    directory clients to update user passwords.  The user may or may not
     79    be associated with a directory entry.  The user may or may not be
     80    represented as an LDAP DN.  The user's password may or may not be
     81    stored in the directory.
     82 
     83    The operation SHOULD NOT be used without adequate security protection
     84    as the operation affords no privacy or integrity protect itself.
     85    This operation SHALL NOT be used anonymously.
     86 
     87 2.  Password Modify Request and Response
     88 
     89    The Password Modify operation is an LDAPv3 Extended Operation
     90    [RFC2251, Section 4.12] and is identified by the OBJECT IDENTIFIER
     91    passwdModifyOID.  This section details the syntax of the protocol
     92    request and response.
     93 
     94    passwdModifyOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.11.1
     95 
     96    PasswdModifyRequestValue ::= SEQUENCE {
     97      userIdentity    [0]  OCTET STRING OPTIONAL
     98      oldPasswd       [1]  OCTET STRING OPTIONAL
     99      newPasswd       [2]  OCTET STRING OPTIONAL }
    100 
    101    PasswdModifyResponseValue ::= SEQUENCE {
    102      genPasswd       [0]     OCTET STRING OPTIONAL }
    103 
    104 2.1.  Password Modify Request
    105 
    106    A Password Modify request is an ExtendedRequest with the requestName
    107    field containing passwdModifyOID OID and optionally provides a
    108    requestValue field.  If the requestValue field is provided, it SHALL
    109    contain a PasswdModifyRequestValue with one or more fields present.
    110 
    111 
    112 
    113 
    114 
    115 Zeilenga                    Standards Track                     [Page 2]
    116 
    118 RFC 3062        LDAP Password Modify Extended Operation    February 2001
    119 
    120 
    121    The userIdentity field, if present, SHALL contain an octet string
    122    representation of the user associated with the request.  This string
    123    may or may not be an LDAPDN [RFC2253].  If no userIdentity field is
    124    present, the request acts up upon the password of the user currently
    125    associated with the LDAP session.
    126 
    127    The oldPasswd field, if present, SHALL contain the user's current
    128    password.
    129 
    130    The newPasswd field, if present, SHALL contain the desired password
    131    for this user.
    132 
    133 2.2.  Password Modify Response
    134 
    135    A Password Modify response is an ExtendedResponse where the
    136    responseName field is absent and the response field is optional.  The
    137    response field, if present, SHALL contain a PasswdModifyResponseValue
    138    with genPasswd field present.
    139 
    140    The genPasswd field, if present, SHALL contain a generated password
    141    for the user.
    142 
    143    If an resultCode other than success (0) is indicated in the response,
    144    the response field MUST be absent.
    145 
    146 3.  Operation Requirements
    147 
    148    Clients SHOULD NOT submit a Password Modification request without
    149    ensuring adequate security safeguards are in place.  Servers SHOULD
    150    return a non-success resultCode if sufficient security protection are
    151    not in place.
    152 
    153    Servers SHOULD indicate their support for this extended operation by
    154    providing PasswdModifyOID as a value of the supportedExtension
    155    attribute type in their root DSE.  A server MAY choose to advertise
    156    this extension only when the client is authorized and/or has
    157    established the necessary security protections to use this operation.
    158    Clients SHOULD verify the server implements this extended operation
    159    prior to attempting the operation by asserting the supportedExtension
    160    attribute contains a value of PasswdModifyOID.
    161 
    162    The server SHALL only return success upon successfully changing the
    163    user's password.  The server SHALL leave the password unmodified and
    164    return a non-success resultCode otherwise.
    165 
    166    If the server does not recognize provided fields or does not support
    167    the combination of fields provided, it SHALL NOT change the user
    168    password.
    169 
    170 
    171 
    172 Zeilenga                    Standards Track                     [Page 3]
    173 
    175 RFC 3062        LDAP Password Modify Extended Operation    February 2001
    176 
    177 
    178    If oldPasswd is present and the provided value cannot be verified or
    179    is incorrect, the server SHALL NOT change the user password.  If
    180    oldPasswd is not present, the server MAY use other policy to
    181    determine whether or not to change the password.
    182 
    183    The server SHALL NOT generate a password on behalf of the client if
    184    the client has provided a newPasswd.  In absence of a client provided
    185    newPasswd, the server SHALL either generate a password on behalf of
    186    the client or return a non-success result code.  The server MUST
    187    provide the generated password upon success as the value of the
    188    genPasswd field.
    189 
    190    The server MAY return adminLimitExceeded, busy,
    191    confidentialityRequired, operationsError, unavailable,
    192    unwillingToPerform, or other non-success resultCode as appropriate to
    193    indicate that it was unable to successfully complete the operation.
    194 
    195    Servers MAY implement administrative policies which restrict this
    196    operation.
    197 
    198 4.  Security Considerations
    199 
    200    This operation is used to modify user passwords.  The operation
    201    itself does not provide any security protection to ensure integrity
    202    and/or confidentiality of the information.  Use of this operation is
    203    strongly discouraged when privacy protections are not in place to
    204    guarantee confidentiality and may result in the disclosure of the
    205    password to unauthorized parties.  This extension MUST be used with
    206    confidentiality protection, such as Start TLS [RFC 2830].  The NULL
    207    cipher suite MUST NOT be used.
    208 
    209 5. Bibliography
    210 
    211    [RFC2219]  Bradner, S., "Key words for use in RFCs to Indicate
    212               Requirement Levels", BCP 14, RFC 2119, March 1997.
    213 
    214    [RFC2222]  Myers, J., "Simple Authentication and Security Layer
    215               (SASL)", RFC 2222, October 1997.
    216 
    217    [RFC2251]  Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
    218               Access Protocol (v3)", RFC 2251, December 1997.
    219 
    220    [RFC2252]  Wahl, M., Coulbeck, A., Howes, T. and S. Kille,
    221               "Lightweight Directory Access Protocol (v3): Attribute
    222               Syntax Definitions", RFC 2252, December 1997.
    223 
    224 
    225 
    226 
    227 
    228 
    229 Zeilenga                    Standards Track                     [Page 4]
    230 
    232 RFC 3062        LDAP Password Modify Extended Operation    February 2001
    233 
    234 
    235    [RFC2253]  Wahl, M., Kille,S. and T. Howes, "Lightweight Directory
    236               Access Protocol (v3): UTF-8 String Representation of
    237               Distinguished Names", RFC 2253, December 1997.
    238 
    239    [RFC2256]  Wahl, M., "A Summary of the X.500(96) User Schema for use
    240               with LDAPv3", RFC 2256, December 1997.
    241 
    242    [RFC2829]  Wahl, M., Alvestrand, H., Hodges, J. and R. Morgan,
    243               "Authentication Methods for LDAP", RFC 2829, May 2000.
    244 
    245    [RFC2830]  Hodges, J., Morgan, R. and M. Wahl, "Lightweight Directory
    246               Access Protocol (v3): Extension for Transport Layer
    247               Security", RFC 2830, May 2000.
    248 
    249 6.  Acknowledgment
    250 
    251    This document borrows from a number of IETF documents and is based
    252    upon input from the IETF LDAPext working group.
    253 
    254 7.  Author's Address
    255 
    256    Kurt D. Zeilenga
    257    OpenLDAP Foundation
    258 
    259    EMail: Kurt (a] OpenLDAP.org
    260 
    261 
    262 
    263 
    264 
    265 
    266 
    267 
    268 
    269 
    270 
    271 
    272 
    273 
    274 
    275 
    276 
    277 
    278 
    279 
    280 
    281 
    282 
    283 
    284 
    285 
    286 Zeilenga                    Standards Track                     [Page 5]
    287 
    289 RFC 3062        LDAP Password Modify Extended Operation    February 2001
    290 
    291 
    292 8.  Full Copyright Statement
    293 
    294    Copyright (C) The Internet Society (2001).  All Rights Reserved.
    295 
    296    This document and translations of it may be copied and furnished to
    297    others, and derivative works that comment on or otherwise explain it
    298    or assist in its implementation may be prepared, copied, published
    299    and distributed, in whole or in part, without restriction of any
    300    kind, provided that the above copyright notice and this paragraph are
    301    included on all such copies and derivative works.  However, this
    302    document itself may not be modified in any way, such as by removing
    303    the copyright notice or references to the Internet Society or other
    304    Internet organizations, except as needed for the purpose of
    305    developing Internet standards in which case the procedures for
    306    copyrights defined in the Internet Standards process must be
    307    followed, or as required to translate it into languages other than
    308    English.
    309 
    310    The limited permissions granted above are perpetual and will not be
    311    revoked by the Internet Society or its successors or assigns.
    312 
    313    This document and the information contained herein is provided on an
    314    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    315    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
    316    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
    317    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
    318    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
    319 
    320 Acknowledgement
    321 
    322    Funding for the RFC Editor function is currently provided by the
    323    Internet Society.
    324 
    325 
    326 
    327 
    328 
    329 
    330 
    331 
    332 
    333 
    334 
    335 
    336 
    337 
    338 
    339 
    340 
    341 
    342 
    343 Zeilenga                    Standards Track                     [Page 6]
    344 
    346