mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
latest revisions
This commit is contained in:
parent
3f672172ad
commit
884e60a631
@ -1,11 +1,17 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INTERNET-DRAFT Kurt D. Zeilenga
|
||||
Intended Category: Standard Track OpenLDAP Foundation
|
||||
Expires: 11 January 2001 11 July 2000
|
||||
Expires: 20 July 2001 20 January 2001
|
||||
|
||||
|
||||
|
||||
LDAP Authentication Password Attribute
|
||||
<draft-zeilenga-ldap-authpasswd-03.txt>
|
||||
|
||||
<draft-zeilenga-ldap-authpasswd-04.txt>
|
||||
|
||||
|
||||
1. Status of this Memo
|
||||
@ -14,7 +20,7 @@ Expires: 11 January 2001 11 July 2000
|
||||
provisions of Section 10 of RFC2026.
|
||||
|
||||
This document is intended to be, after appropriate review and
|
||||
revision, submitted to the RFC Editor as a Standard Track document.
|
||||
revision, submitted to the RFC Editor as an Standard Track document.
|
||||
Distribution of this memo is unlimited. Technical discussion of this
|
||||
document will take place on the IETF LDAP Extension Working Group
|
||||
mailing list <ietf-ldapext@netscape.com>. Please send editorial
|
||||
@ -32,7 +38,7 @@ Expires: 11 January 2001 11 July 2000
|
||||
http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft
|
||||
Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
|
||||
|
||||
Copyright 2000, The Internet Society. All Rights Reserved.
|
||||
Copyright 2001, The Internet Society. All Rights Reserved.
|
||||
|
||||
Please see the Copyright section near the end of this document for
|
||||
more information.
|
||||
@ -40,24 +46,20 @@ Expires: 11 January 2001 11 July 2000
|
||||
|
||||
2. Abstract
|
||||
|
||||
This document describes schema for storing information in support of
|
||||
user/password authentication in a LDAP [RFC2251] directory. The
|
||||
document defines the authPassword attribute type and related schema.
|
||||
The attribute type is used to store values derived from the user's
|
||||
password(s) (commonly using cryptographic strength one-way hash).
|
||||
authPassword is intended to used instead of clear text password
|
||||
This document describes schema in support of user/password
|
||||
authentication in a LDAP 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.
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 1]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
storage mechanisms such as userPassword [RFC2256]. The values of
|
||||
authPassword may be used to support both LDAP "simple" and SASL
|
||||
[RFC2222] password authentication mechanisms [RFC2829].
|
||||
|
||||
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
|
||||
@ -73,16 +75,22 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
of actual passwords.
|
||||
|
||||
The authPassword attribute type is intended to be used to store
|
||||
information used to implement password based authentication. The
|
||||
attribute type may be used by LDAP servers to implement user/password
|
||||
authentication operations [RFC2829] such "simple" and SASL [RFC2222] /
|
||||
DIGEST-MD5 [RFC2831].
|
||||
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 of cryptographic strength one-way
|
||||
hashing.
|
||||
values.
|
||||
|
||||
Storage schemes often use of 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
|
||||
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 [PW-EXOP]).
|
||||
@ -100,38 +108,37 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
Editor's Note: object identifiers (OIDs) will be assigned before this
|
||||
document is published as an RFC.
|
||||
|
||||
4.1. authPasswordSyntax
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 2]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
4.1. authPasswordSyntax
|
||||
|
||||
( authPasswordSyntaxOID
|
||||
DESC 'authentication password syntax' )
|
||||
|
||||
Values of this syntax are encoded according to the following BNF:
|
||||
Values of this syntax are encoded according to:
|
||||
|
||||
authPasswordValue = w scheme s [authInfo] s authValue w
|
||||
scheme = <an IA5 string of uppercase letters, numbers,
|
||||
and "-", "_", and "/">
|
||||
scheme = %x30-39 / %x41-5A / %x2D-2F / %x5F
|
||||
; 0-9, A-Z, "-", ".", "/", or "_"
|
||||
authInfo = schemeSpecificValue
|
||||
authValue = schemeSpecfiicValue
|
||||
schemeSpecificValue = <an IA5 printable string
|
||||
not containing "$" or " ">
|
||||
authValue = schemeSpecificValue
|
||||
schemeSpecificValue = *( %x21-23 / %25-7E )
|
||||
; printable ascii less "$" and " "
|
||||
s = w sep w
|
||||
w = *sp
|
||||
sep = "$" ; an IA5 dollar sign (36)
|
||||
sp = " " ; an IA5 space (20)
|
||||
sep = %x24 ; dollar sign
|
||||
sp = %x20 ; space
|
||||
|
||||
where scheme describes the storage mechanism, 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.
|
||||
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.
|
||||
|
||||
This document describes a number of schemes, as well as requirements
|
||||
for the scheme naming, in section 5.
|
||||
@ -160,10 +167,9 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 3]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
4.3. supportedAuthPasswordSchemes
|
||||
@ -178,8 +184,8 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
The values of this attribute are names of supported authentication
|
||||
password schemes which the server supports. The syntax of a scheme
|
||||
name is described in section 4.1. This attribute may only be present
|
||||
in the root DSE. If the server does not support any mechanisms this
|
||||
attribute will not be present.
|
||||
in the root DSE. If the server does not support any password schemes,
|
||||
this attribute will not be present.
|
||||
|
||||
|
||||
4.4. authPassword
|
||||
@ -211,22 +217,20 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
5. Schemes
|
||||
|
||||
This section describes the "MD5", "SHA1", and "SASL/DIGEST-MD5".
|
||||
Other schemes may be defined by other documents. Schemes starting
|
||||
with string "SASL/" indicate association with a SASL mechanism.
|
||||
This section describes the "MD5" and "SHA1". Other schemes may be
|
||||
defined by other documents. Schemes which are not described by
|
||||
standard track documents SHOULD be named with a leading "X-" to
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 4]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
Schemes which are not described by standard track documents SHOULD be
|
||||
named with a leading "X-" or, if associated with a SASL mechanism,
|
||||
"SASL/X-" to indicate they are a private or implementation specific
|
||||
mechanism, or may be named using the dotted-decimal representation
|
||||
[RFC2252] of an OID assigned to the mechanism.
|
||||
indicate they are a private or implementation specific scheme, or may
|
||||
be named using the dotted-decimal representation [RFC2252] of an OID
|
||||
assigned to the scheme.
|
||||
|
||||
|
||||
5.1. MD5 scheme
|
||||
@ -234,10 +238,10 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
The MD5 [RFC1321] scheme name is "MD5".
|
||||
|
||||
The authValue is the base64 encoding of an MD5 digest of the
|
||||
concatenation the user password and optional salt. The base64
|
||||
encoding of the salt is provided in the authInfo field.
|
||||
Implementations of this scheme must support salts up to 128-bit in
|
||||
length. Use with a 64-bit or larger salt is RECOMMENDED.
|
||||
concatenation the user password and salt. The base64 encoding of the
|
||||
salt is provided in the authInfo field. The salt MUST be at least
|
||||
64-bits long. Implementations of this scheme MUST support salts up to
|
||||
128-bit in length.
|
||||
|
||||
Example:
|
||||
Given a user "joe" who's password is "mary" and a salt of "salt",
|
||||
@ -255,34 +259,31 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
Values of this scheme SHOULD only be used to implement simple
|
||||
user/password authentication.
|
||||
|
||||
It is RECOMMENDED that values of this scheme be protected as if they
|
||||
were clear text passwords.
|
||||
|
||||
|
||||
5.2. SHA1 scheme
|
||||
|
||||
The SHA1 [SHA1] scheme name is "SHA1".
|
||||
|
||||
The authValue is the base64 encoding of an SHA1 digest of the
|
||||
concatenation the user password and the optional salt. The base64
|
||||
encoding of the salt is provided in the authInfo field.
|
||||
Implementations of this scheme must support salts up to 128-bit in
|
||||
length. Use with a 64-bit or larger salt is RECOMMENDED.
|
||||
concatenation the user password and the salt. The base64 encoding of
|
||||
the salt is provided in the authInfo field. The salt MUST be at least
|
||||
64-bits long. Implementations of this scheme MUST support salts up to
|
||||
128-bit in length.
|
||||
|
||||
Example:
|
||||
Given a user "joe" who's password is "mary" and a salt of "salt",
|
||||
the authInfo field would be the base64 encoding of "salt" and the
|
||||
authValue field would be the base64 encoding of the SHA1 digest of
|
||||
"marysalt".
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 5]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
Given a user "joe" who's password is "mary" and a salt of "salt",
|
||||
the authInfo field would be the base64 encoding of "salt" and the
|
||||
authValue field would be the base64 encoding of the SHA1 digest of
|
||||
"marysalt".
|
||||
|
||||
A match against an asserted password and an attribute value of this
|
||||
scheme SHALL be true if and only if the SHA1 digest of concatenation
|
||||
of the asserted value and the salt is equal to the SHA1 digest
|
||||
@ -293,47 +294,9 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
Values of this scheme SHOULD only be used to implement simple
|
||||
user/password authentication.
|
||||
|
||||
It is RECOMMENDED that values of this scheme be protected as if they
|
||||
were clear text passwords.
|
||||
|
||||
|
||||
5.3. DIGEST-MD5 scheme
|
||||
|
||||
The DIGEST-MD5 scheme name is "SASL/DIGEST-MD5".
|
||||
|
||||
The authValue is the base64 encoding of
|
||||
H( { username-value, ":", realm-value, ":", passwd } )
|
||||
|
||||
and authInfo is the base64 encoding of
|
||||
{ username-value, ":", realm-value }
|
||||
|
||||
as defined by RFC2831.
|
||||
|
||||
Example:
|
||||
Given a user "joe" within the realm "localhost" who's password is
|
||||
"mary", the info field would be the base64 encoding of
|
||||
"joe:localhost" and the authValue field would be the base64 encoding
|
||||
of the MD5 digest of "joe:localhost:mary".
|
||||
|
||||
Values of this scheme SHOULD only be used to implement the
|
||||
SASL/DIGEST-MD5 as described by the Authentication Methods for LDAP
|
||||
[RFC2829]. A simple password assertion against a value of this scheme
|
||||
SHALL be considered undefined.
|
||||
|
||||
Values of this scheme MUST be protected as if it the values were clear
|
||||
text passwords per reasons detailed in DIGEST-MD5, Section 3.9,
|
||||
"Storing Passwords."
|
||||
|
||||
|
||||
6. Implementation Issues
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 6]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
|
||||
For implementations of this specification:
|
||||
|
||||
Servers MAY restrict which schemes are used in conjunction with a
|
||||
@ -344,8 +307,8 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
userPassword or an external password store, in conjunction with
|
||||
authPassword to support the authentication process.
|
||||
|
||||
Servers that support simple bind MUST support the MD5 scheme and
|
||||
SHOULD support the SHA1 scheme.
|
||||
Servers that support simple bind MUST support the SHA1 scheme and
|
||||
SHOULD support the MD5 scheme.
|
||||
|
||||
Servers SHOULD not publish values of authPassword nor allow
|
||||
operations which expose authPassword or AuthPasswordMatch values to
|
||||
@ -364,32 +327,36 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
7. Security Considerations
|
||||
|
||||
This document describes how authentication information may be stored
|
||||
in a directory. Authentication information must be adequately
|
||||
in a directory. Authentication information MUST be adequately
|
||||
protected as unintended disclosure will allow attackers to gain
|
||||
immediate access to the directory as described by [RFC2829].
|
||||
|
||||
Values of authPassword SHOULD be protected as if they were clear text
|
||||
passwords. When values are transferred, privacy protections, such as
|
||||
IPSEC or TLS, SHOULD be in place.
|
||||
As flaws may be discovered in the hashing algorithm or with a
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 6]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
particular implementation of the algorithm or may be subjected to
|
||||
dictionary or other attacks if exposed, values of AuthPassword SHOULD
|
||||
be protected as if they were clear text passwords. When values are
|
||||
transferred, privacy protections, such as IPSEC or TLS, SHOULD be in
|
||||
place.
|
||||
|
||||
Clients SHOULD use strong authentication mechanisms [RFC2829].
|
||||
|
||||
AuthPasswordMatch matching rule allows applications to test the
|
||||
validity of a user password and, hence, may be used to mount a
|
||||
dictionary attack. Servers SHOULD take appropriate measures to
|
||||
protect the directory from such attacks.
|
||||
validity of a user password and, hence, may be used to mount an
|
||||
attack. Servers SHOULD take appropriate measures to protect the
|
||||
directory from such attacks.
|
||||
|
||||
Some password schemes may require CPU intensive operations. Servers
|
||||
SHOULD take appropriate measures to protect against Denial of Service
|
||||
attacks.
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 7]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
|
||||
AuthPassword does not restrict an authentication identity to a single
|
||||
password. An attacker who gains write access to this attribute may
|
||||
store additional values without disabling the user's true password(s).
|
||||
@ -403,7 +370,7 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
8. Copyright
|
||||
|
||||
Copyright 2000, The Internet Society. All Rights Reserved.
|
||||
Copyright 2001, The Internet Society. All Rights Reserved.
|
||||
|
||||
This document and translations of it may be copied and furnished to
|
||||
others, and derivative works that comment on or otherwise explain it
|
||||
@ -421,6 +388,14 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
The limited permissions granted above are perpetual and will not be
|
||||
revoked by the Internet Society or its successors or assigns.
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 7]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
This document and the information contained herein is provided on an
|
||||
"AS IS" basis and THE AUTHORS, THE INTERNET SOCIETY, AND THE INTERNET
|
||||
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
|
||||
@ -438,14 +413,6 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
10. Bibliography
|
||||
|
||||
[RFC1321] R. Rivest, "The MD5 Message-Digest Algorithm", RFC 1321,
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 8]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
|
||||
April 1992
|
||||
|
||||
[RFC2219] S. Bradner, "Key words for use in RFCs to Indicate
|
||||
@ -468,20 +435,23 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
with LDAPv3", RFC 2256, December 1997.
|
||||
|
||||
[RFC2307] L. Howard, "An Approach for Using LDAP as a Network
|
||||
Information Service", RFC 2307, March 1998.
|
||||
Information Service", RFC 2307, March 1998. (not normative)
|
||||
|
||||
[RFC2829] M. Wahl, H. Alvestrand, J. Hodges, RL "Bob" Morgan,
|
||||
"Authentication Methods for LDAP", RFC 2829, June 2000.
|
||||
|
||||
[RFC2831] P. Leach, C. Newman, "Using Digest Authentication as a SASL
|
||||
Mechanism", RFC 2831, June 2000.
|
||||
|
||||
[PW-EXOP] K. Zeilenga, "LDAP Password Modify Extended Operation"
|
||||
draft-zeilenga-ldap-passwd-exop-xx.txt, a work in progress.
|
||||
|
||||
[SHA1] NIST, FIPS PUB 180-1: Secure Hash Standard, April 1995.
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 8]
|
||||
|
||||
INTERNET-DRAFT LDAP AuthPassword 20 January 2001
|
||||
|
||||
|
||||
11. Author's Address
|
||||
|
||||
Kurt D. Zeilenga
|
||||
@ -497,5 +467,41 @@ INTERNET-DRAFT LDAP AuthPasswd 11 July 2000
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 9]
|
||||
|
||||
|
@ -1,10 +1,16 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INTERNET-DRAFT Kurt D. Zeilenga
|
||||
Intended Category: Standard Track OpenLDAP Foundation
|
||||
Expires: 13 December 2000 13 June 2000
|
||||
Expires: 3 May 2001 3 Novemeber 2000
|
||||
|
||||
|
||||
LDAP Password Modify Extended Operation
|
||||
<draft-zeilenga-ldap-passwd-exop-03.txt>
|
||||
<draft-zeilenga-ldap-passwd-exop-05.txt>
|
||||
|
||||
|
||||
1. Status of this Memo
|
||||
@ -39,23 +45,21 @@ Expires: 13 December 2000 13 June 2000
|
||||
|
||||
2. Abstract
|
||||
|
||||
The integration of LDAP [RFC2251] and external authentication services
|
||||
has introduced non-DN authentication identities and allowed for
|
||||
The integration of LDAP and external authentication services has
|
||||
introduced non-DN authentication identities and allowed for
|
||||
non-directory storage of passwords. As such, mechanisms which update
|
||||
the directory, such as Modify operation, cannot be used to change a
|
||||
user's password. This document describes an LDAP extended operation
|
||||
to allow allow modification of user passwords which is not dependent
|
||||
upon the form of the authentication identity nor the password storage
|
||||
the directory (e.g. Modify) cannot be used to change a user's
|
||||
password. This document describes an LDAP extended operation to allow
|
||||
modification of user passwords which is not dependent upon the form of
|
||||
the authentication identity nor the password storage mechanism used.
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 1]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-05 3 Novemeber 2000
|
||||
|
||||
|
||||
mechanism used.
|
||||
|
||||
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
|
||||
@ -73,58 +77,55 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
|
||||
The protocol does not mandate that passwords associated with a user be
|
||||
stored in the directory server. The server may use any attribute
|
||||
suitable for password storage, such as userPassword or authPassword
|
||||
[AuthPasswd], or use non-directory storage.
|
||||
suitable for password storage (e.g. userPassword), or use
|
||||
non-directory storage.
|
||||
|
||||
The integration of application neutral SASL [RFC2222] services which
|
||||
support simple username/password mechanisms (such as DIGEST-MD5) has
|
||||
introduced non-LDAP DN authentication identity forms and made storage
|
||||
of passwords the responsibility of the SASL service provider.
|
||||
The integration [RFC2829] of application neutral SASL [RFC2222]
|
||||
services which support simple username/password mechanisms (such as
|
||||
DIGEST-MD5) has introduced non-LDAP DN authentication identity forms
|
||||
and made storage of passwords the responsibility of the SASL service
|
||||
provider.
|
||||
|
||||
LDAP update operations are designed to act upon attributes of an entry
|
||||
within the directory. LDAP update operations cannot be used to modify
|
||||
a user's password when the user is not represented by a DN, does not
|
||||
have a entry, or when that password used by the server is not stored
|
||||
as an attribute of an entry. An alternative mechanism are needed.
|
||||
as an attribute of an entry. An alternative mechanism is needed.
|
||||
|
||||
This document describes an LDAP Extended Operation intended to be
|
||||
allow directory clients to update user passwords. The user may or may
|
||||
not have be associated with a directory entry. The user may or may not
|
||||
be represented as an LDAP DN. The user's password may or may not be
|
||||
This document describes an LDAP Extended Operation intended to allow
|
||||
directory clients to update user passwords. The user may or may not
|
||||
be associated with a directory entry. The user may or may not be
|
||||
represented as an LDAP DN. The user's password may or may not be
|
||||
stored in the directory.
|
||||
|
||||
The operation SHOULD NOT be used without adequate security protection
|
||||
as the operation affords no privacy or integrity protect itself. This
|
||||
operation SHOULD NOT be used by "anonymous" clients.
|
||||
operation SHALL NOT be used anonymously.
|
||||
|
||||
|
||||
4. Password Modify Request and Response
|
||||
|
||||
The Password Modify operation is an LDAPv3 Extended Operation
|
||||
[RFC2251, Section 4.12] and is identified by the OBJECT IDENTIFIER
|
||||
passwdModifyOID. This section details the syntax of the protocol
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 2]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-05 3 Novemeber 2000
|
||||
|
||||
|
||||
passwdModifyOID. This section details the syntax of the protocol
|
||||
request and response.
|
||||
|
||||
passwdModifyOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.666.6.1
|
||||
|
||||
[Editor's Note: this OID is temporary. A permanent OID
|
||||
will be assigned to this object before this document is
|
||||
progressed as an RFC.]
|
||||
passwdModifyOID OBJECT IDENTIFIER ::= 1.3.6.1.4.1.4203.1.11.1
|
||||
|
||||
PasswdModifyRequestValue ::= SEQUENCE {
|
||||
userIdentity [0] OCTET STRING OPTIONAL
|
||||
oldPasswd [1] OCTET STRING OPTIONAL
|
||||
newPasswd [2] OCTET STRING OPTIONAL }
|
||||
|
||||
PasswordModifyResponseValue ::= SEQUENCE {
|
||||
PasswdModifyResponseValue ::= SEQUENCE {
|
||||
genPasswd [0] OCTET STRING OPTIONAL }
|
||||
|
||||
|
||||
@ -158,31 +159,32 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
The genPasswd field, if present, SHALL contain a generated password
|
||||
for the user.
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 3]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
|
||||
|
||||
If an resultCode other than success (0) is indicated in the response,
|
||||
the response field MUST be absent.
|
||||
|
||||
|
||||
5. Operation Requirements
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 3]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-05 3 Novemeber 2000
|
||||
|
||||
|
||||
Clients SHOULD NOT submit a Password Modification request without
|
||||
ensuring adequate security safeguards are in place. Servers SHOULD
|
||||
return a non-success resultCode if sufficient security protection are
|
||||
not in place.
|
||||
|
||||
Servers SHOULD indicate their support for this extended operation by
|
||||
providing PasswordModifyOID as a value of the supportedExtensions
|
||||
attribute type in their root DSE. Clients SHOULD verify the server
|
||||
implements this extended operation prior to attempting the operation
|
||||
by asserting the supportedExtensions attribute contains a value of
|
||||
PasswordModifyOID.
|
||||
providing PasswdModifyOID as a value of the supportedExtension
|
||||
attribute type in their root DSE. A server MAY choose to advertise
|
||||
this extension only when the client is authorized and/or has
|
||||
established the necessary security protections to use this operation.
|
||||
Clients SHOULD verify the server implements this extended operation
|
||||
prior to attempting the operation by asserting the supportedExtension
|
||||
attribute contains a value of PasswdModifyOID.
|
||||
|
||||
The server SHALL only return success upon successfully changing the
|
||||
user's password. The server SHALL leave the password unmodified and
|
||||
@ -192,14 +194,16 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
the combination of fields provided, it SHALL NOT change the user
|
||||
password.
|
||||
|
||||
If the provided oldPasswd value cannot be verified or is incorrect,
|
||||
the server SHALL NOT change the user password.
|
||||
If oldPasswd is present and the provided value cannot be verified or
|
||||
is incorrect, the server SHALL NOT change the user password. If
|
||||
oldPasswd is not present, the server MAY use other policy to determine
|
||||
whether or not to change the password.
|
||||
|
||||
The server SHALL NOT generate a password on behalf of the client if
|
||||
the client has provided a newPassword. In absence of a client
|
||||
provided newPassword, the server SHALL either generate a password on
|
||||
behalf of the client or return a non-success result code. The server
|
||||
MUST provide the generated password upon success as the value of the
|
||||
the client has provided a newPasswd. In absence of a client provided
|
||||
newPasswd, the server SHALL either generate a password on behalf of
|
||||
the client or return a non-success result code. The server MUST
|
||||
provide the generated password upon success as the value of the
|
||||
genPasswd field.
|
||||
|
||||
The server MAY return adminLimitExceeded, busy,
|
||||
@ -211,36 +215,26 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
operation.
|
||||
|
||||
|
||||
6. Other requirements
|
||||
6. Security Considerations
|
||||
|
||||
A server which supports this operation SHOULD provide a
|
||||
This operation is used to modify user passwords. The operation itself
|
||||
does not provide any security protection to ensure integrity and/or
|
||||
confidentiality of the information. Use of this operation is strongly
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 4]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-05 3 Novemeber 2000
|
||||
|
||||
|
||||
supportedExtension attribute in the Root DSE which contains as one of
|
||||
its values the passwdModifyOID OID. A server MAY advertise the
|
||||
extension only when the client is authorized and/or has established
|
||||
the necessary security protections to use this operation. Clients
|
||||
SHOULD verify the server has advertised the extension before
|
||||
attempting the operation.
|
||||
|
||||
|
||||
7. Security Considerations
|
||||
|
||||
This operation is used to modify user passwords. The operation itself
|
||||
does not provide any security protection to ensure integrity and/or
|
||||
confidentiality of the information. Use of this operation is strongly
|
||||
discouraged when privacy protections are not in place to guarantee
|
||||
confidentiality and may result in the disclosure of the password to
|
||||
unauthorized parties.
|
||||
unauthorized parties. Use of Start TLS [RFC 2830] is highly
|
||||
recommended.
|
||||
|
||||
|
||||
8. Copyright
|
||||
7. Copyright
|
||||
|
||||
Copyright 2000, The Internet Society. All Rights Reserved.
|
||||
|
||||
@ -268,15 +262,7 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
9. Bibliography
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 5]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
|
||||
8. Bibliography
|
||||
|
||||
[RFC2219] S. Bradner, "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", RFC 2119, March 1997.
|
||||
@ -290,6 +276,14 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
|
||||
[RFC2252] M. Wahl, A. Coulbeck, T. Howes, S. Kille,
|
||||
"Lightweight Directory Access Protocol (v3):
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 5]
|
||||
|
||||
INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-05 3 Novemeber 2000
|
||||
|
||||
|
||||
Attribute Syntax Definitions", RFC 2252,
|
||||
December 1997.
|
||||
|
||||
@ -301,17 +295,21 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
[RFC2256] M. Wahl, "A Summary of the X.500(96) User Schema
|
||||
for use with LDAPv3", RFC 2256, December 1997.
|
||||
|
||||
[AuthPasswd] K. Zeilenga, "LDAP Authentication Password
|
||||
Attribute", draft-zeilenga-ldap-authpasswd-xx.txt,
|
||||
a work in progress.
|
||||
[RFC2829] M. Wahl, H. Alvestrand, J. Hodges, and R. Morgan,
|
||||
"Authentication Methods for LDAP", RFC 2829,
|
||||
May 2000.
|
||||
|
||||
10. Acknowledgment
|
||||
[RFC2830] Hodges, J., R. Morgan, and M. Wahl, "Lightweight
|
||||
Directory Access Protocol (v3): Extension for
|
||||
Transport Layer Security", RFC 2830, May 2000.
|
||||
|
||||
9. Acknowledgment
|
||||
|
||||
This document borrows from a number of IETF documents and is based
|
||||
upon input from the IETF LDAPext working group.
|
||||
|
||||
|
||||
11. Author's Address
|
||||
10. Author's Address
|
||||
|
||||
Kurt D. Zeilenga
|
||||
OpenLDAP Foundation
|
||||
@ -328,6 +326,14 @@ INTERNET-DRAFT draft-zeilenga-ldap-passwd-exop-03 13 June 2000
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Zeilenga [Page 6]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user