2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
INTERNET-DRAFT Editor: R. Harrison
|
2003-12-18 08:36:45 +08:00
|
|
|
|
draft-ietf-ldapbis-authmeth-09.txt Novell, Inc.
|
|
|
|
|
Obsoletes: 2251, 2829, 2830 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Intended Category: Draft Standard
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LDAP: Authentication Methods
|
|
|
|
|
and
|
|
|
|
|
Connection Level Security Mechanisms
|
|
|
|
|
|
|
|
|
|
Status of this Memo
|
|
|
|
|
|
|
|
|
|
This document is an Internet-Draft and is in full conformance with
|
|
|
|
|
all 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.
|
|
|
|
|
Distribution of this memo is unlimited. Technical discussion of
|
|
|
|
|
this document will take place on the IETF LDAP Extension Working
|
|
|
|
|
Group mailing list <ietf-ldapbis@OpenLDAP.org>. Please send
|
|
|
|
|
editorial comments directly to the author
|
|
|
|
|
<roger_harrison@novell.com>.
|
|
|
|
|
|
|
|
|
|
Internet-Drafts are working documents of the Internet Engineering
|
|
|
|
|
Task Force (IETF), its areas, and its working groups. Note that
|
|
|
|
|
other groups may also distribute working documents as Internet-
|
|
|
|
|
Drafts. Internet-Drafts are draft documents valid for a maximum of
|
|
|
|
|
six months and may be updated, replaced, or obsoleted by other
|
|
|
|
|
documents at any time. It is inappropriate to use Internet-Drafts
|
|
|
|
|
as reference material or to cite them other than as "work in
|
|
|
|
|
progress."
|
|
|
|
|
|
|
|
|
|
The list of current Internet-Drafts can be accessed at
|
|
|
|
|
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.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Copyright Notice
|
|
|
|
|
|
|
|
|
|
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Abstract
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
This document describes authentication methods and connection level
|
|
|
|
|
security mechanisms of the Lightweight Directory Access Protocol
|
|
|
|
|
(LDAP).
|
|
|
|
|
|
|
|
|
|
This document details the simple Bind authentication method
|
|
|
|
|
including anonymous, unauthenticated, and plain-text password
|
|
|
|
|
methods and the SASL (Simple Authentication and Security Layer) Bind
|
|
|
|
|
authentication method including the use of DIGEST-MD5 and EXTERNAL
|
|
|
|
|
mechanisms.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 1]
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
This document also details establishment of TLS (Transport Layer
|
|
|
|
|
Security) using the Start TLS operation.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
This document describes various authentication and authorization
|
|
|
|
|
states through which a connection to an LDAP server may pass and the
|
|
|
|
|
actions that trigger these state changes.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
1. Introduction
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The Lightweight Directory Access Protocol (LDAP) [Protocol] is a
|
|
|
|
|
powerful access protocol for directories. It offers means of
|
|
|
|
|
searching, retrieving and manipulating directory content, and ways
|
|
|
|
|
to access a rich set of security functions.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
It is vital that these security functions be interoperable among all
|
|
|
|
|
LDAP clients and servers on the Internet; therefore there has to be
|
|
|
|
|
a minimum subset of security functions that is common to all
|
2003-12-07 15:50:23 +08:00
|
|
|
|
implementations that claim LDAP conformance.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Basic threats to an LDAP directory service include:
|
|
|
|
|
|
|
|
|
|
(1) Unauthorized access to directory data via data-retrieval
|
|
|
|
|
operations,
|
|
|
|
|
|
|
|
|
|
(2) Unauthorized access to reusable client authentication
|
|
|
|
|
information by monitoring others' access,
|
|
|
|
|
|
|
|
|
|
(3) Unauthorized access to directory data by monitoring others'
|
|
|
|
|
access,
|
|
|
|
|
|
|
|
|
|
(4) Unauthorized modification of directory data,
|
|
|
|
|
|
|
|
|
|
(5) Unauthorized modification of configuration information,
|
|
|
|
|
|
|
|
|
|
(6) Unauthorized or excessive use of resources (denial of service),
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
(7) Spoofing of directory: Tricking a client into believing that
|
|
|
|
|
information came from the directory when in fact it did not,
|
|
|
|
|
either by modifying data in transit or misdirecting the client's
|
2003-12-07 15:50:23 +08:00
|
|
|
|
connection. Also, tricking a client into sending privileged
|
|
|
|
|
information to a hostile entity that appears to be the directory
|
|
|
|
|
but is not.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Threats (1), (4), (5) and (6) are due to hostile clients. Threats
|
|
|
|
|
(2), (3) and (7) are due to hostile agents on the path between
|
|
|
|
|
client and server or hostile agents posing as a server.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
LDAP can be protected with the following security mechanisms:
|
|
|
|
|
|
|
|
|
|
(1) Client authentication by means of the Secure Authentication and
|
|
|
|
|
Security Layer (SASL) [SASL] mechanism set, possibly backed by
|
|
|
|
|
the Transport Layer Security (TLS) [TLS] credentials exchange
|
2003-06-01 06:47:07 +08:00
|
|
|
|
mechanism,
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 2]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
(2) Client authorization by means of access control based on the
|
|
|
|
|
requestor's authenticated identity,
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
(3) Data integrity protection by means of TLS or SASL mechanisms
|
|
|
|
|
with security layers that provide data integrity services,
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
(4) Data confidentiality protection against snooping by means of the
|
|
|
|
|
TLS protocol or SASL mechanisms that provide data
|
|
|
|
|
confidentiality services,
|
|
|
|
|
|
|
|
|
|
(5) Server resource usage limitation by means of administrative
|
|
|
|
|
service limits configured on the server, and
|
|
|
|
|
|
|
|
|
|
(6) Server authentication by means of the TLS protocol or SASL
|
|
|
|
|
mechanism.
|
|
|
|
|
|
|
|
|
|
At the moment, imposition of access controls is done by means
|
2003-12-07 15:50:23 +08:00
|
|
|
|
outside the scope of LDAP.
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
It seems clear that allowing any implementation, faced with the
|
|
|
|
|
above requirements, to simply pick and choose among the possible
|
|
|
|
|
alternatives is not a strategy that is likely to lead to
|
|
|
|
|
interoperability. In the absence of mandates, clients will be
|
|
|
|
|
written that do not support any security function supported by the
|
2003-12-07 15:50:23 +08:00
|
|
|
|
server, or worse, they will support only mechanisms like the LDAP
|
2003-06-01 06:47:07 +08:00
|
|
|
|
simple bind using clear text passwords that provide inadequate
|
|
|
|
|
security for most circumstances.
|
|
|
|
|
|
|
|
|
|
Given the presence of the Directory, there is a strong desire to see
|
|
|
|
|
mechanisms where identities take the form of an LDAP distinguished
|
|
|
|
|
name [LDAPDN] and authentication data can be stored in the
|
|
|
|
|
directory. This means that this data must be updated outside the
|
|
|
|
|
protocol or only updated in sessions well protected against
|
|
|
|
|
snooping. It is also desirable to allow authentication methods to
|
2003-12-18 08:36:45 +08:00
|
|
|
|
carry identities not represented as LDAP DNs that are familiar to
|
|
|
|
|
the user or that are used in other systems.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
The set of security mechanisms provided in LDAP and described in
|
|
|
|
|
this document is intended to meet the security needs for a wide
|
|
|
|
|
range of deployment scenarios and still provide a high degree of
|
|
|
|
|
interoperability among various LDAP implementations and
|
|
|
|
|
deployments. Appendix A contains example deployment scenarios that
|
|
|
|
|
list the mechanisms that might be used to achieve a reasonable
|
|
|
|
|
level of security in various circumstances.
|
|
|
|
|
|
|
|
|
|
1.1. Relationship to Other Documents
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
This document is an integral part of the LDAP Technical
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Specification [Roadmap].
|
|
|
|
|
|
|
|
|
|
This document obsoletes RFC 2829.
|
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 3]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Sections 2 and 4 of RFC 2830 are obsoleted by [Protocol]. The
|
|
|
|
|
remainder of RFC 2830 is obsoleted by this document.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
2. Conventions Used in this Document
|
|
|
|
|
|
|
|
|
|
2.1. Glossary of Terms
|
|
|
|
|
|
|
|
|
|
The following terms are used in this document. To aid the reader,
|
|
|
|
|
these terms are defined here.
|
|
|
|
|
|
|
|
|
|
- "user" represents any human or application entity which is
|
|
|
|
|
accessing the directory using a directory client. A directory
|
|
|
|
|
client (or client) is also known as a directory user agent
|
|
|
|
|
(DUA).
|
|
|
|
|
|
|
|
|
|
- "connection" and "LDAP connection" both refer to the underlying
|
|
|
|
|
transport protocol connection between two protocol peers.
|
|
|
|
|
|
|
|
|
|
- "TLS connection" refers to a TLS-protected LDAP connection.
|
|
|
|
|
|
|
|
|
|
- "association" and "LDAP association" both refer to the
|
|
|
|
|
association of the LDAP connection and its current
|
|
|
|
|
authentication and authorization state.
|
|
|
|
|
|
|
|
|
|
2.2. Security Terms and Concepts
|
|
|
|
|
|
|
|
|
|
In general, security terms in this document are used consistently
|
|
|
|
|
with the definitions provided in [RFC2828]. In addition, several
|
|
|
|
|
terms and concepts relating to security, authentication, and
|
|
|
|
|
authorization are presented in Appendix B of this document. While
|
|
|
|
|
the formal definition of these terms and concepts is outside the
|
|
|
|
|
scope of this document, an understanding of them is prerequisite to
|
|
|
|
|
understanding much of the material in this document. Readers who are
|
|
|
|
|
unfamiliar with security-related concepts are encouraged to review
|
|
|
|
|
Appendix B before reading the remainder of this document.
|
|
|
|
|
|
|
|
|
|
2.3. Keywords
|
|
|
|
|
|
|
|
|
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
|
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
|
|
|
document are to be interpreted as described in RFC 2119 [RFC2119].
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
3. Bind Operation
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The Bind operation defined in section 4.2 of [Protocol] allows
|
|
|
|
|
authentication information to be exchanged between the client and
|
2003-12-07 15:50:23 +08:00
|
|
|
|
server to establish a new LDAP association. The new LDAP association
|
|
|
|
|
is established upon successful completion of the authentication
|
2003-12-18 08:36:45 +08:00
|
|
|
|
exchange.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
3.1. Implied Anonymous Bind on LDAP Association
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Prior to the successful completion of a Bind operation and during
|
|
|
|
|
any subsequent authentication exchange, the session has an anonymous
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 4]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
LDAP association. Among other things this implies that the client
|
|
|
|
|
need not send a Bind Request in the first PDU of the connection. The
|
|
|
|
|
client may send any operation request prior to binding, and the
|
|
|
|
|
server MUST treat it as if it had been performed after an anonymous
|
|
|
|
|
bind operation. This authentication state on an LDAP association is
|
|
|
|
|
sometimes referred to as an implied anonymous bind.
|
|
|
|
|
|
|
|
|
|
3.2. Simple Authentication
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The simple authentication choice provides minimal facilities for
|
|
|
|
|
establishing an anonymous association or for establishing an LDAP
|
|
|
|
|
association based upon credentials consisting of a name (in the form
|
|
|
|
|
of an [LDAPDN] and a password.
|
|
|
|
|
|
|
|
|
|
The simple authentication choice provides two different methods
|
|
|
|
|
for establishing an anonymous association: anonymous bind and
|
2003-12-18 08:36:45 +08:00
|
|
|
|
unauthenticated bind (see section 5.1).
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The simple authentication choice provides one method for
|
|
|
|
|
establishing a non-anonymous association: simple password bind.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
3.3. SASL Authentication Profile
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
LDAP allows authentication via any SASL mechanism [SASL]. As LDAP
|
|
|
|
|
includes native anonymous and plaintext authentication methods, the
|
2003-12-18 08:36:45 +08:00
|
|
|
|
ANONYMOUS [ANONYMOUS] and PLAIN [PLAIN] SASL mechanisms are
|
2003-12-07 15:50:23 +08:00
|
|
|
|
typically not used with LDAP.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Each protocol that utilizes SASL services is required to supply
|
|
|
|
|
certain information profiling the way they are exposed through the
|
|
|
|
|
protocol ([SASL] section 5). This section explains how each of these
|
|
|
|
|
profiling requirements are met by LDAP.
|
|
|
|
|
|
|
|
|
|
3.3.1. SASL Service Name for LDAP
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The SASL service name for LDAP is "ldap", which has been registered
|
|
|
|
|
with the IANA as a GSSAPI service name.
|
|
|
|
|
|
|
|
|
|
3.3.2. SASL authentication initiation and protocol exchange
|
|
|
|
|
|
|
|
|
|
SASL authentication is initiated via an LDAP bind request
|
|
|
|
|
([Protocol] section 4.2) with the following parameters:
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- The version is 3.
|
|
|
|
|
- The AuthenticationChoice is sasl.
|
|
|
|
|
- The mechanism element of the SaslCredentials sequence contains
|
|
|
|
|
the value of the desired SASL mechanism.
|
|
|
|
|
- The optional credentials field of the SaslCredentials sequence
|
|
|
|
|
may be used to provide an initial client response for
|
|
|
|
|
mechanisms that are defined to have the client send data first
|
2003-12-18 08:36:45 +08:00
|
|
|
|
(see [SASL] sections 5 and 5.1).
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
In general, a SASL authentication protocol exchange consists of a
|
|
|
|
|
series of server challenges and client responses, the contents of
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 5]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
which are specific to and defined by the SASL mechanism. Thus for
|
|
|
|
|
some SASL authentication mechanisms, it may be necessary for the
|
|
|
|
|
client to respond to one or more server challenges by invoking the
|
|
|
|
|
BindRequest multiple times. A challenge is indicated by the server
|
|
|
|
|
sending a BindResponse with the resultCode set to
|
|
|
|
|
saslBindInProgress. This indicates that the server requires the
|
|
|
|
|
client to send a new bind request, with the same sasl mechanism to
|
|
|
|
|
continue the authentication process.
|
|
|
|
|
|
|
|
|
|
To the encapsulating protocol, these challenges and responses are
|
|
|
|
|
opaque binary tokens of arbitrary length. LDAP servers use the
|
|
|
|
|
serverSaslCreds field, an OCTET STRING, in a bind response message
|
|
|
|
|
to transmit each challenge. LDAP clients use the credentials field,
|
|
|
|
|
an OCTET STRING, in the SaslCredentials sequence of a bind request
|
|
|
|
|
message to transmit each response. Note that unlike some Internet
|
2003-12-18 08:36:45 +08:00
|
|
|
|
protocols where SASL is used, LDAP is not text-based, thus no Base64
|
|
|
|
|
transformations are performed on these challenge and response
|
|
|
|
|
values.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Clients sending a bind request with the sasl choice selected SHOULD
|
|
|
|
|
NOT send a value in the name field. Servers receiving a bind request
|
|
|
|
|
with the sasl choice selected SHALL ignore any value in the name
|
|
|
|
|
field.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
A client may abort a SASL bind negotiation by sending a BindRequest
|
|
|
|
|
with a different value in the mechanism field of SaslCredentials, or
|
|
|
|
|
an AuthenticationChoice other than sasl.
|
|
|
|
|
|
|
|
|
|
If the client sends a BindRequest with the sasl mechanism field as
|
|
|
|
|
an empty string, the server MUST return a BindResponse with
|
|
|
|
|
authMethodNotSupported as the resultCode. This will allow clients to
|
|
|
|
|
abort a negotiation if it wishes to try again with the same SASL
|
|
|
|
|
mechanism.
|
|
|
|
|
|
|
|
|
|
The server indicates completion of the SASL challenge-response
|
|
|
|
|
exchange by responding with a bind response in which the resultCode
|
|
|
|
|
is either success, or an error indication.
|
|
|
|
|
|
|
|
|
|
The serverSaslCreds field in the bind response can be used to
|
|
|
|
|
include an optional challenge with a success notification for
|
|
|
|
|
mechanisms which are defined to have the server send additional data
|
|
|
|
|
along with the indication of successful completion.
|
|
|
|
|
|
|
|
|
|
3.3.3. Octet where negotiated security mechanisms take effect
|
|
|
|
|
|
|
|
|
|
When negotiated, SASL security layers take effect following the
|
|
|
|
|
transmission by the server and reception by the client of the final
|
|
|
|
|
BindResponse in the exchange.
|
|
|
|
|
|
|
|
|
|
Once a SASL security layer providing integrity or confidentiality
|
|
|
|
|
services takes effect, the layer remains in effect until a new layer
|
|
|
|
|
is installed (i.e. at the first octet following the final
|
|
|
|
|
BindResponse of the bind operation that caused the new layer to take
|
|
|
|
|
effect).
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 6]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
3.3.4. Determination of supported SASL mechanisms
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
An LDAP client may determine the SASL mechanisms a server supports
|
|
|
|
|
by performing a search request on the root DSE, requesting the
|
|
|
|
|
supportedSASLMechanisms attribute. The values of this attribute, if
|
|
|
|
|
any, list the mechanisms the server supports.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
3.3.5. Rules for using SASL security layers
|
|
|
|
|
|
|
|
|
|
If a SASL security layer is negotiated, the client SHOULD discard
|
2003-12-18 08:36:45 +08:00
|
|
|
|
information about the server it obtained prior to the initiation of
|
|
|
|
|
the SASL negotiation and not obtained through secure mechanisms.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
If a lower level security layer (such as TLS) is negotiated, any
|
|
|
|
|
SASL security services SHALL be layered on top of such security
|
2003-12-18 08:36:45 +08:00
|
|
|
|
layers regardless of the order of their negotiation. In all other
|
|
|
|
|
respects, SASL security services and other security layers act
|
|
|
|
|
independently, e.g. if both TLS and SASL security service are in
|
|
|
|
|
effect removing the SASL security service does not affect the
|
|
|
|
|
continuing service of TLS and vice versa.
|
|
|
|
|
|
|
|
|
|
Because SASL mechanisms provide critical security functions, clients
|
|
|
|
|
and servers should allow the user to specify what mechanisms are
|
|
|
|
|
acceptable and allow only those mechanisms to be used.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
3.3.6. Use of EXTERNAL SASL Mechanism
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
A client can use the EXTERNAL SASL [SASL] mechanism to request the
|
|
|
|
|
LDAP server to make use of security credentials exchanged by a lower
|
|
|
|
|
security layer (such as by TLS authentication or IP-level security
|
|
|
|
|
[RFC2401]).
|
|
|
|
|
|
|
|
|
|
If the client's authentication credentials have not been established
|
|
|
|
|
at a lower security layer, the SASL EXTERNAL bind MUST fail with a
|
|
|
|
|
resultCode of inappropriateAuthentication. Any client
|
|
|
|
|
authentication and authorization state of the LDAP association is
|
|
|
|
|
lost, so the LDAP association is in an anonymous state after the
|
|
|
|
|
failure (see [Protocol] section 4.2.1). In such a situation, the
|
|
|
|
|
state of any established security layer is unaffected.
|
|
|
|
|
|
|
|
|
|
A client may either implicitly request that its LDAP authorization
|
|
|
|
|
identity be derived from a lower layer or it may explicitly provide
|
|
|
|
|
an authorization identity and assert that it be used in combination
|
|
|
|
|
with its authenticated TLS credentials. The former is known as an
|
|
|
|
|
implicit assertion, and the latter as an explicit assertion.
|
|
|
|
|
|
|
|
|
|
3.3.6.1. Implicit Assertion
|
|
|
|
|
|
|
|
|
|
An implicit authorization identity assertion is performed by
|
|
|
|
|
invoking a Bind request of the SASL form using the EXTERNAL
|
|
|
|
|
mechanism name that SHALL NOT include the optional credentials octet
|
|
|
|
|
string (found within the SaslCredentials sequence in the Bind
|
|
|
|
|
Request). The server will derive the client's authorization identity
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 7]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
from the authentication identity supplied by the security layer
|
|
|
|
|
(e.g., a public key certificate used during TLS establishment)
|
|
|
|
|
according to local policy. The underlying mechanics of how this is
|
|
|
|
|
accomplished are implementation specific.
|
|
|
|
|
|
|
|
|
|
3.3.6.2. Explicit Assertion
|
|
|
|
|
|
|
|
|
|
An explicit authorization identity assertion is performed by
|
|
|
|
|
invoking a Bind request of the SASL form using the EXTERNAL
|
|
|
|
|
mechanism name that SHALL include the credentials octet string. This
|
|
|
|
|
string MUST be constructed as documented in section 3.4.1.
|
|
|
|
|
|
|
|
|
|
The server MUST that the client's authentication identity as
|
|
|
|
|
supplied in its TLS credentials is permitted to be mapped to the
|
|
|
|
|
asserted authorization identity. The server MUST reject the Bind
|
|
|
|
|
operation with an invalidCredentials resultCode in the Bind response
|
|
|
|
|
if the client is not so authorized.
|
|
|
|
|
|
|
|
|
|
3.3.6.3. SASL Authorization Identity
|
|
|
|
|
|
|
|
|
|
When the EXTERNAL SASL mechanism is being negotiated, if the
|
2003-12-07 15:50:23 +08:00
|
|
|
|
SaslCredentials credentials field is present, it contains an
|
|
|
|
|
authorization identity. Other mechanisms define the location of the
|
|
|
|
|
authorization identity in the credentials field. In either case, the
|
|
|
|
|
authorization identity is represented in the authzId form described
|
|
|
|
|
below.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
3.3.6.4 Authorization Identity Syntax
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The authorization identity is a string of [UTF-8] encoded [Unicode]
|
2003-12-18 08:36:45 +08:00
|
|
|
|
characters corresponding to the following [ABNF] grammar:
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
authzId = dnAuthzId / uAuthzId
|
|
|
|
|
|
|
|
|
|
DNCOLON = %x64 %x6e %x3a ; "dn:"
|
|
|
|
|
UCOLON = %x75 %x3a ; "u:"
|
|
|
|
|
|
|
|
|
|
; distinguished-name-based authz id.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
dnAuthzId = DNCOLON distinguishedName
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
; unspecified authorization id, UTF-8 encoded.
|
|
|
|
|
uAuthzId = UCOLON userid
|
2003-12-18 08:36:45 +08:00
|
|
|
|
userid = *UTF8 ; syntax unspecified
|
|
|
|
|
|
|
|
|
|
where the <distinguishedName> production is defined in section 3 of
|
|
|
|
|
[LDAPDN] and <UTF8> production is defined in section 1.3 of
|
|
|
|
|
[Models].
|
|
|
|
|
|
|
|
|
|
In order to support additional specific authorization identity
|
|
|
|
|
forms, future updates to this specification may add new choices
|
|
|
|
|
supporting other forms may be added to the authzId production.
|
|
|
|
|
|
|
|
|
|
The dnAuthzId choice allows clients to assert authorization
|
|
|
|
|
identities in the form of a distinguished name to be matched in
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 8]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
accordance with the distinguishedName matching rule [Syntaxes]. The
|
|
|
|
|
decision to allow or disallow an authentication identity to have
|
|
|
|
|
access to the requested authorization identity is a matter of local
|
|
|
|
|
policy ([SASL] section 4.2). For this reason there is no requirement
|
|
|
|
|
that the asserted dn be that of an entry in directory.
|
|
|
|
|
|
|
|
|
|
The uAuthzId choice allows for compatibility with clients that wish
|
|
|
|
|
to assert an authorization identity to a local directory but do not
|
|
|
|
|
have that identity in distinguished name form. The value contained
|
|
|
|
|
within a uAuthzId MUST be prepared using [SASLPrep] before being
|
|
|
|
|
compared octet-wise. The format of utf8string is defined as only a
|
|
|
|
|
sequence of [UTF-8] encoded [Unicode] characters, and further
|
|
|
|
|
interpretation is subject to prior agreement between the client and
|
|
|
|
|
server.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
For example, the userid could identify a user of a specific
|
2003-12-07 15:50:23 +08:00
|
|
|
|
directory service or be a login name or the local-part of an RFC 822
|
|
|
|
|
email address. A uAuthzId SHOULD NOT be assumed to be globally
|
|
|
|
|
unique.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4. Start TLS Operation
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
The Start Transport Layer Security (Start TLS) operation defined in
|
2003-12-07 15:50:23 +08:00
|
|
|
|
section 4.13 of [Protocol] provides the ability to establish [TLS]
|
|
|
|
|
on an LDAP association.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.1. Sequencing of the Start TLS Operation
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
This section describes the overall procedures clients and servers
|
|
|
|
|
must follow for TLS establishment. These procedures take into
|
|
|
|
|
consideration various aspects of the overall security of the LDAP
|
|
|
|
|
association including discovery of resultant security level and
|
|
|
|
|
assertion of the client's authorization identity.
|
|
|
|
|
|
|
|
|
|
Note that the precise effects, on a client's authorization identity,
|
|
|
|
|
of establishing TLS on an LDAP association are described in detail
|
2003-12-07 15:50:23 +08:00
|
|
|
|
in section 4.2.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
4.1.1. Start TLS Request
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The client MAY send the Start TLS extended request at any time after
|
2003-12-07 15:50:23 +08:00
|
|
|
|
establishing an LDAP connection, except:
|
|
|
|
|
|
|
|
|
|
- when TLS is currently established on the connection,
|
|
|
|
|
- when a multi-stage SASL negotiation is in progress on the
|
|
|
|
|
connection, or
|
|
|
|
|
- when there are one or more outstanding LDAP operations on the
|
|
|
|
|
connection.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The result of violating any of these requirements is a resultCode of
|
2003-12-07 15:50:23 +08:00
|
|
|
|
operationsError, as described in [Protocol] section 4.13.2.2. Client
|
|
|
|
|
implementers should note that it is possible to receive a resultCode
|
|
|
|
|
of success for a Start TLS operation that is sent on a connection
|
|
|
|
|
with outstanding LDAP operations and the server has sufficient time
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 9]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
to process them prior to its receiving the Start TLS request.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Implementors of clients should ensure that they do not inadvertently
|
|
|
|
|
depend upon this race condition.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
In particular, there is no requirement that the client have or have
|
|
|
|
|
not already performed a Bind operation before sending a Start TLS
|
|
|
|
|
operation request. The client may have already performed a Bind
|
|
|
|
|
operation when it sends a Start TLS request, or the client might
|
|
|
|
|
have not yet bound.
|
|
|
|
|
|
|
|
|
|
If the client did not establish a TLS connection before sending any
|
|
|
|
|
other requests, and the server requires the client to establish a
|
|
|
|
|
TLS connection before performing a particular request, the server
|
|
|
|
|
MUST reject that request by sending a resultCode of
|
2003-12-07 15:50:23 +08:00
|
|
|
|
confidentialityRequired or strongAuthRequired.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
4.1.2. Start TLS Response
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The server will return an extended response with the resultCode of
|
|
|
|
|
success if it is willing and able to negotiate TLS. It will return
|
2003-12-18 08:36:45 +08:00
|
|
|
|
other resultCode values (documented in [Protocol] section 4.13.2.2)
|
|
|
|
|
if it is unwilling or unable to do so.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
In the successful case, the client (which has ceased to transfer
|
|
|
|
|
LDAP requests on the connection) MUST either begin a TLS negotiation
|
|
|
|
|
or close the connection. The client will send PDUs in the TLS Record
|
|
|
|
|
Protocol directly over the underlying transport connection to the
|
2003-12-07 15:50:23 +08:00
|
|
|
|
server to initiate [TLS] negotiation.
|
|
|
|
|
|
|
|
|
|
4.1.3. TLS Version Negotiation
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Negotiating the version of TLS or SSL to be used is a part of the
|
2003-12-07 15:50:23 +08:00
|
|
|
|
[TLS] Handshake Protocol. Please refer to that document for details.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.1.4. Discovery of Resultant Security Level
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
After a TLS connection is established on an LDAP association, both
|
2003-12-18 08:36:45 +08:00
|
|
|
|
parties must individually decide whether or not to continue based on
|
2003-12-07 15:50:23 +08:00
|
|
|
|
the security level achieved. Ascertaining the TLS connection's
|
|
|
|
|
security level is implementation dependent and accomplished by
|
2003-06-01 06:47:07 +08:00
|
|
|
|
communicating with one's respective local TLS implementation.
|
|
|
|
|
|
|
|
|
|
If the client or server decides that the level of authentication or
|
2003-12-07 15:50:23 +08:00
|
|
|
|
security is not high enough for it to continue, it SHOULD gracefully
|
2003-06-01 06:47:07 +08:00
|
|
|
|
close the TLS connection immediately after the TLS negotiation has
|
2003-12-07 15:50:23 +08:00
|
|
|
|
completed (see [Protocol] section 4.13.3.1 and section 4.2.3 below).
|
|
|
|
|
If the client decides to continue, it may gracefully close the TLS
|
|
|
|
|
connection and attempt to Start TLS again, it may send an unbind
|
|
|
|
|
request, or it may send any other LDAP request.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.1.5. Server Identity Check
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 10]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
The client MUST check its understanding of the server's hostname
|
|
|
|
|
against the server's identity as presented in the server's
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Certificate message in order to prevent man-in-the-middle attacks.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Matching is performed according to these rules:
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- The client MUST use the server provided by the user (or other
|
|
|
|
|
trusted entity) as the value to compare against the server name
|
|
|
|
|
as expressed in the server's certificate. A hostname derived
|
|
|
|
|
from the user input is to be considered provided by the user
|
|
|
|
|
only if derived in a secure fashion (e.g., DNSSEC).
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
- If a subjectAltName extension of type dNSName is present in the
|
|
|
|
|
certificate, it SHOULD be used as the source of the server's
|
|
|
|
|
identity.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
- Matching is case-insensitive.
|
|
|
|
|
|
|
|
|
|
- The "*" wildcard character is allowed. If present, it applies
|
|
|
|
|
only to the left-most name component.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
For example, *.bar.com would match a.bar.com and b.bar.com, but
|
|
|
|
|
it would not match a.x.bar.com nor would it match bar.com. If
|
|
|
|
|
more than one identity of a given type is present in the
|
|
|
|
|
certificate (e.g. more than one dNSName name), a match in any
|
|
|
|
|
one of the set is considered acceptable.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
If the hostname does not match the dNSName-based identity in the
|
|
|
|
|
certificate per the above check, user-oriented clients SHOULD either
|
2003-12-07 15:50:23 +08:00
|
|
|
|
notify the user (clients may give the user the opportunity to
|
2003-06-01 06:47:07 +08:00
|
|
|
|
continue with the connection in any case) or terminate the
|
|
|
|
|
connection and indicate that the server's identity is suspect.
|
|
|
|
|
Automated clients SHOULD close the connection, returning and/or
|
|
|
|
|
logging an error indicating that the server's identity is suspect.
|
|
|
|
|
|
|
|
|
|
Beyond the server identity checks described in this section, clients
|
|
|
|
|
SHOULD be prepared to do further checking to ensure that the server
|
|
|
|
|
is authorized to provide the service it is observed to provide. The
|
2003-12-07 15:50:23 +08:00
|
|
|
|
client may need to make use of local policy information in making
|
|
|
|
|
this determination.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.1.6. Refresh of Server Capabilities Information
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Upon TLS session establishment, the client SHOULD discard or refresh
|
2003-12-18 08:36:45 +08:00
|
|
|
|
all information about the server it obtained prior to the initiation
|
|
|
|
|
of the TLS negotiation and not obtained through secure mechanisms.
|
|
|
|
|
This protects against active-intermediary attacks that may have
|
|
|
|
|
altered any server capabilities information retrieved prior to TLS
|
2003-12-07 15:50:23 +08:00
|
|
|
|
establishment.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The server may advertise different capabilities after TLS
|
2003-06-01 06:47:07 +08:00
|
|
|
|
establishment. In particular, the value of supportedSASLMechanisms
|
2003-12-07 15:50:23 +08:00
|
|
|
|
may be different after TLS has been negotiated (specifically, the
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 11]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
EXTERNAL and PLAIN [PLAIN] mechanisms are likely to be listed only
|
|
|
|
|
after a TLS negotiation has been performed).
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.2. Effects of TLS on a Client's Authorization Identity
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
This section describes the effects on a client's authorization
|
|
|
|
|
identity brought about by establishing TLS on an LDAP association.
|
|
|
|
|
The default effects are described first, and next the facilities for
|
|
|
|
|
client assertion of authorization identity are discussed including
|
|
|
|
|
error conditions. Finally, the effects of closing the TLS connection
|
|
|
|
|
are described.
|
|
|
|
|
|
|
|
|
|
Authorization identities and related concepts are described in
|
|
|
|
|
Appendix B.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
4.2.1. TLS Connection Establishment Effects
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
The decision to keep or invalidate the established authentication
|
|
|
|
|
and authorization identities in place after TLS is negotiated is a
|
|
|
|
|
matter of local server policy. If a server chooses to invalidate
|
|
|
|
|
established authentication and authorization identities after TLS is
|
|
|
|
|
negotiated, it MUST reply to subsequent valid operation requests
|
|
|
|
|
until the next TLS closure or successful bind request with a
|
|
|
|
|
resultCode of strongAuthRequired to indicate that the client needs
|
|
|
|
|
to bind to reestablish its authentication. If the client attempts to
|
|
|
|
|
bind using a method the server is unwilling to support, it responds
|
|
|
|
|
to the with a resultCode of authMethodNotSupported (per [Protocol])
|
|
|
|
|
to indicate that a different authentication method should be used.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.2.2. Client Assertion of Authorization Identity
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
After successfully establishing a TLS session, a client may request
|
|
|
|
|
that its credentials exchanged during the TLS establishment be
|
|
|
|
|
utilized to determine the client's authorization status. The client
|
2003-12-07 15:50:23 +08:00
|
|
|
|
accomplishes this via an LDAP Bind request specifying a SASL
|
2003-12-18 08:36:45 +08:00
|
|
|
|
mechanism of EXTERNAL [SASL]. See section 3.3.6 for additional
|
|
|
|
|
details.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
4.2.3. TLS Connection Closure Effects
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
The decision to keep or invalidate the established authentication
|
|
|
|
|
and authorization identities in place after TLS closure is a matter
|
|
|
|
|
of local server policy. If a server chooses to invalidate
|
|
|
|
|
established authentication and authorization identities after TLS is
|
|
|
|
|
negotiated, it MUST reply to subsequent valid operation requests
|
|
|
|
|
until the next TLS closure or successful bind request with a
|
|
|
|
|
resultCode of strongAuthRequired to indicate that the client needs
|
|
|
|
|
to bind to reestablish its authentication. If the client attempts to
|
|
|
|
|
bind using a method the server is unwilling to support, it responds
|
|
|
|
|
to the with a resultCode of authMethodNotSupported (per [Protocol])
|
|
|
|
|
to indicate that a different authentication method should be used.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
5. Anonymous Authentication
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 12]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Directory operations that modify entries or access protected
|
|
|
|
|
attributes or entries generally require client authentication.
|
|
|
|
|
Clients that do not intend to perform any of these operations
|
2003-12-18 08:36:45 +08:00
|
|
|
|
typically use anonymous authentication.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
LDAP implementations MUST support anonymous authentication, as
|
2003-12-18 08:36:45 +08:00
|
|
|
|
defined in section 5.1.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
LDAP implementations MAY support anonymous authentication with TLS,
|
2003-12-18 08:36:45 +08:00
|
|
|
|
as defined in section 5.2.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
While there may be access control restrictions to prevent access to
|
2003-06-01 06:47:07 +08:00
|
|
|
|
directory entries, an LDAP server SHOULD allow an anonymously-bound
|
|
|
|
|
client to retrieve the supportedSASLMechanisms attribute of the root
|
|
|
|
|
DSE.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
An LDAP server may use other information about the client provided
|
2003-06-01 06:47:07 +08:00
|
|
|
|
by the lower layers or external means to grant or deny access even
|
|
|
|
|
to anonymously authenticated clients.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
5.1. Anonymous Authentication Procedure
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Prior to successfully completing a Bind operation, the LDAP
|
|
|
|
|
association is anonymous. See section 3.1.
|
|
|
|
|
|
|
|
|
|
An LDAP client may also explicitly establish an anonymous
|
2003-12-18 08:36:45 +08:00
|
|
|
|
association by sending a Bind Request with the simple authentication
|
|
|
|
|
option and a password of zero length. A bind request where both the
|
|
|
|
|
name and password are of zero length is said to be an anonymous
|
|
|
|
|
bind. A bind request where the name, a DN, is of non-zero length,
|
|
|
|
|
and the password is of zero length is said to be an unauthenticated
|
|
|
|
|
bind. Both variations produce an anonymous association.
|
|
|
|
|
|
|
|
|
|
Unauthenticated binds can have significant security issues (see
|
|
|
|
|
section 10). Servers SHOULD by default reject unauthenticated bind
|
|
|
|
|
requests with a resultCode of invalidCredentials, and clients may
|
|
|
|
|
need to actively detect situations where they would make an
|
|
|
|
|
unauthenticated bind request.
|
|
|
|
|
|
|
|
|
|
5.2. Anonymous Authentication and TLS
|
|
|
|
|
|
|
|
|
|
An LDAP client may use the Start TLS operation (section 5) to
|
2003-12-07 15:50:23 +08:00
|
|
|
|
negotiate the use of [TLS] security. If the client has not bound
|
|
|
|
|
beforehand, then until the client uses the EXTERNAL SASL mechanism
|
|
|
|
|
to negotiate the recognition of the client's certificate, the client
|
|
|
|
|
is anonymously authenticated.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Recommendations on TLS ciphersuites are given in section 9.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
An LDAP server which requests that clients provide their certificate
|
|
|
|
|
during TLS negotiation MAY use a local security policy to determine
|
|
|
|
|
whether to successfully complete TLS negotiation if the client did
|
|
|
|
|
not present a certificate which could be validated.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 13]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
6. Password-based Authentication
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
This section discusses various options for performing password-based
|
2003-12-07 15:50:23 +08:00
|
|
|
|
authentication to LDAP compliant servers and the environments
|
2003-06-01 06:47:07 +08:00
|
|
|
|
suitable for their use.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
The transmission of passwords in the clear--typically for
|
|
|
|
|
authentication or modification--poses a significant security risk.
|
|
|
|
|
This risk can be avoided by using SASL bind [SASL] mechanisms that
|
|
|
|
|
do not transmit passwords in the clear and by negotiating transport
|
|
|
|
|
or session layer confidentiality services before transmitting
|
|
|
|
|
password values.
|
|
|
|
|
|
|
|
|
|
To mitigate the security risks associated with the use of passwords,
|
|
|
|
|
a server implementation MUST implement a configuration that at the
|
|
|
|
|
time of authentication or password modification, requires:
|
|
|
|
|
|
|
|
|
|
1) A Start TLS encryption layer has been successfully negotiated.
|
|
|
|
|
|
|
|
|
|
OR
|
|
|
|
|
|
|
|
|
|
2) Some other confidentiality mechanism that protects the password
|
|
|
|
|
value from snooping has been provided.
|
|
|
|
|
|
|
|
|
|
OR
|
|
|
|
|
|
|
|
|
|
3) The server returns a resultCode of confidentialityRequired for
|
|
|
|
|
the operation (i.e. simple bind with password value, SASL bind
|
|
|
|
|
transmitting a password value in the clear, add or modify
|
|
|
|
|
including a userPassword value, etc.), even if the password
|
|
|
|
|
value is correct.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
6.1. Simple Authentication
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The LDAP "simple" authentication choice is not suitable for
|
|
|
|
|
authentication in environments where there is no network or
|
|
|
|
|
transport layer confidentiality. LDAP implementations SHOULD support
|
|
|
|
|
authentication with the "simple" authentication choice when the
|
|
|
|
|
connection is protected against eavesdropping using TLS, as defined
|
2003-12-07 15:50:23 +08:00
|
|
|
|
in section 4. LDAP implementations SHOULD NOT support authentication
|
2003-06-01 06:47:07 +08:00
|
|
|
|
with the "simple" authentication choice unless the data on the
|
|
|
|
|
connection is protected using TLS or other data confidentiality and
|
|
|
|
|
data integrity protection.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
6.2. Digest Authentication
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
LDAP servers that implement any authentication method or mechanism
|
|
|
|
|
(other than simple anonymous bind) MUST implement the SASL
|
2003-12-18 08:36:45 +08:00
|
|
|
|
DIGEST-MD5 mechanism [DIGEST-MD5]. This provides client
|
|
|
|
|
authentication with protection against passive eavesdropping
|
|
|
|
|
attacks, but does not provide protection against active intermediary
|
|
|
|
|
attacks. DIGEST-MD5 also provides data integrity and data
|
|
|
|
|
confidentiality capabilities.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 14]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Support for subsequent authentication is OPTIONAL in clients and
|
|
|
|
|
servers.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Implementors must take care to ensure that they maintain the
|
|
|
|
|
semantics of the DIGEST-MD5 specification even when handling data
|
|
|
|
|
that has different semantics in the LDAP protocol.
|
|
|
|
|
For example, the SASL DIGEST-MD5 authentication mechanism utilizes
|
|
|
|
|
realm and username values ([DigestAuth section 2.1) which are
|
|
|
|
|
syntactically simple strings and semsantically simple realm and
|
|
|
|
|
username values. These values are not LDAP DNs, and there is no
|
|
|
|
|
requirement that they be represented or treated as such. Username
|
2003-12-18 08:36:45 +08:00
|
|
|
|
and realm values that look like LDAP DNs in form, e.g. <cn=bob,
|
|
|
|
|
dc=example,dc=com>, are syntactically allowed, however DIGEST-MD5
|
2003-12-07 15:50:23 +08:00
|
|
|
|
treats them as simple strings for comparison purposes. To illustrate
|
2003-12-18 08:36:45 +08:00
|
|
|
|
further, the two DNs <cn=Bob,dc=example,dc=com> (upper case "B") and
|
|
|
|
|
<cn=bob,dc=example,dc=com> (lower case "b") are equivalent when
|
|
|
|
|
being compared semantically as LDAP DNs because the cn attribute is
|
|
|
|
|
defined to be case insensitive, however the two values are not
|
|
|
|
|
equivalent if they represent username values in DIGEST-MD5 because
|
|
|
|
|
[SASLPrep] semantics are used by DIGEST-MD5.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
6.3. simple authentication choice under TLS encryption
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Following the negotiation of an appropriate TLS ciphersuite
|
2003-12-07 15:50:23 +08:00
|
|
|
|
providing connection confidentiality, a client MAY authenticate to a
|
|
|
|
|
directory that supports the simple authentication choice by
|
|
|
|
|
performing a simple bind operation
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Simple authentication with TLS encryption protection is performed as
|
|
|
|
|
follows:
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
1. The client will use the Start TLS operation [Protocol] to
|
|
|
|
|
negotiate the use of TLS security [TLS] on the connection to
|
|
|
|
|
the LDAP server. The client need not have bound to the
|
|
|
|
|
directory beforehand.
|
|
|
|
|
|
|
|
|
|
For the subsequent authentication procedure to be performed
|
|
|
|
|
securely, the client and server MUST negotiate a ciphersuite
|
|
|
|
|
which contains a bulk encryption algorithm of appropriate
|
|
|
|
|
strength. Recommendations on cipher suites are given in
|
|
|
|
|
section 9.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
2. Following the successful completion of TLS negotiation, the
|
|
|
|
|
client MUST send an LDAP bind request with the version number
|
2003-12-18 08:36:45 +08:00
|
|
|
|
of 3, the name field containing a DN, and the simple
|
2003-12-07 15:50:23 +08:00
|
|
|
|
authentication choice, containing a password.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
6.3.1. simple Authentication Choice
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
DSAs that map the DN sent in the bind request to a directory entry
|
|
|
|
|
with an associated set of one or more passwords will compare the
|
|
|
|
|
presented password to the set of passwords associated with that
|
2003-12-07 15:50:23 +08:00
|
|
|
|
entry. If the presented password matches any member of that set,
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 15]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
then the server will respond with a success resultCode, otherwise
|
|
|
|
|
the server will respond with an invalidCredentials resultCode.
|
|
|
|
|
|
|
|
|
|
6.4. Other authentication choices with TLS
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
It is also possible, following the negotiation of TLS, to perform a
|
|
|
|
|
SASL authentication that does not involve the exchange of plaintext
|
|
|
|
|
reusable passwords. In this case the client and server need not
|
|
|
|
|
negotiate a ciphersuite that provides confidentiality if the only
|
|
|
|
|
service required is data integrity.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
7. Certificate-based authentication
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
LDAP server implementations SHOULD support authentication via a
|
2003-12-18 08:36:45 +08:00
|
|
|
|
client certificate in TLS, as defined in section 7.1.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
7.1. Certificate-based authentication with TLS
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
A user who has a public/private key pair in which the public key has
|
|
|
|
|
been signed by a Certification Authority may use this key pair to
|
|
|
|
|
authenticate to the directory server if the user's certificate is
|
|
|
|
|
requested by the server. The user's certificate subject field SHOULD
|
|
|
|
|
be the name of the user's directory entry, and the Certification
|
|
|
|
|
Authority that issued the user's certificate must be sufficiently
|
|
|
|
|
trusted by the directory server in order for the server to process
|
|
|
|
|
the certificate. The means by which servers validate certificate
|
|
|
|
|
paths is outside the scope of this document.
|
|
|
|
|
|
|
|
|
|
A server MAY support mappings for certificates in which the subject
|
|
|
|
|
field name is different from the name of the user's directory entry.
|
|
|
|
|
A server which supports mappings of names MUST be capable of being
|
|
|
|
|
configured to support certificates for which no mapping is required.
|
|
|
|
|
|
|
|
|
|
The client will use the Start TLS operation [Protocol] to negotiate
|
2003-12-07 15:50:23 +08:00
|
|
|
|
the use of TLS security [TLS] on the connection to the LDAP server.
|
|
|
|
|
The client need not have bound to the directory beforehand.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
In the TLS negotiation, the server MUST request a certificate. The
|
|
|
|
|
client will provide its certificate to the server, and the server
|
|
|
|
|
MUST perform a private key-based encryption, proving it has the
|
|
|
|
|
private key associated with the certificate.
|
|
|
|
|
|
|
|
|
|
In deployments that require protection of sensitive data in transit,
|
|
|
|
|
the client and server MUST negotiate a ciphersuite that contains a
|
|
|
|
|
bulk encryption algorithm of appropriate strength. Recommendations
|
2003-12-07 15:50:23 +08:00
|
|
|
|
of cipher suites are given in section 9.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The server MUST verify that the client's certificate is valid. The
|
|
|
|
|
server will normally check that the certificate is issued by a known
|
|
|
|
|
certification authority (CA), and that none of the certificates on
|
|
|
|
|
the client's certificate chain are invalid or revoked. There are
|
|
|
|
|
several procedures by which the server can perform these checks.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 16]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Following the successful completion of TLS negotiation, the client
|
2003-12-18 08:36:45 +08:00
|
|
|
|
will send an LDAP bind request with the SASL EXTERNAL mechanism.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
8. LDAP Association State Transition Tables
|
|
|
|
|
|
|
|
|
|
To comprehensively diagram the various authentication and TLS states
|
|
|
|
|
through hich an LDAP association may pass, this section provides a
|
|
|
|
|
state transition table to represent a state diagram for the various
|
|
|
|
|
states through which an LDAP association may pass during the course
|
|
|
|
|
of its existence and the actions that cause these changes in state.
|
|
|
|
|
|
|
|
|
|
8.1. LDAP Association States
|
|
|
|
|
|
|
|
|
|
The following table lists the valid LDAP association states and
|
|
|
|
|
provides a description of each state. The ID for each state is used
|
|
|
|
|
in the state transition table in section 8.4.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
ID State Description
|
|
|
|
|
-- --------------------------------------------------------------
|
|
|
|
|
S1 Anonymous
|
|
|
|
|
no Authentication ID is associated with the LDAP connection
|
|
|
|
|
no Authorization ID is in force
|
|
|
|
|
S2 Authenticated
|
|
|
|
|
Authentication ID = I
|
|
|
|
|
Authorization ID = X
|
|
|
|
|
S3 Authenticated SASL EXTERNAL, implicit authorization ID
|
|
|
|
|
Authentication ID = J
|
|
|
|
|
Authorization ID = Y
|
|
|
|
|
S4 Authenticated SASL EXTERNAL, explicit authorization ID
|
|
|
|
|
Authentication ID = J
|
|
|
|
|
Authorization ID = Z
|
|
|
|
|
|
|
|
|
|
8.2. Actions that Affect LDAP Association State
|
|
|
|
|
|
|
|
|
|
The following table lists the actions that can affect the
|
|
|
|
|
authentication and authorization state of an LDAP association. The
|
|
|
|
|
ID for each action is used in the state transition table in section
|
|
|
|
|
8.4.
|
|
|
|
|
|
|
|
|
|
ID Action
|
|
|
|
|
-- --------------------------------------------------------------
|
|
|
|
|
A1 Client bind request fails
|
|
|
|
|
A2 Client successfully performs anonymous simple bind
|
|
|
|
|
A3 Client successfully performs unauthenticated simple bind
|
|
|
|
|
A4 Client successfully performs simple bind with name and
|
|
|
|
|
password OR SASL bind with any mechanism except EXTERNAL using
|
|
|
|
|
an authentication ID = I that maps to authorization ID X
|
|
|
|
|
A5 Client Binds SASL EXTERNAL with implicit assertion of
|
|
|
|
|
authorization ID (section 3.3.6.1)]. The current
|
|
|
|
|
authentication ID maps to authorization ID = Y.
|
|
|
|
|
A6 Client Binds SASL EXTERNAL with explicit assertion of
|
|
|
|
|
authorization ID = Z (section 3.3.6.2)]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 17]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
A7 Client abandons a bind operation, and server processes the
|
|
|
|
|
abandon
|
|
|
|
|
A8 Client abandons a bind operation, and server does not process
|
|
|
|
|
the abandon
|
|
|
|
|
A9 Client Start TLS request fails
|
|
|
|
|
A10 Client Start TLS request succeeds
|
|
|
|
|
A11 Client or Server: graceful TLS closure ([Protocol] section
|
|
|
|
|
4.13.3.1.)
|
|
|
|
|
|
|
|
|
|
8.3. Decisions Used in Making LDAP Association State Changes
|
|
|
|
|
|
|
|
|
|
Certain changes in the authentication and authorization state of an
|
|
|
|
|
LDAP association are only allowed if the server can affirmatively
|
|
|
|
|
answer a question. These questions are applied as part of the
|
|
|
|
|
criteria for allowing or disallowing a state transition in the state
|
|
|
|
|
transition table in section 8.4.
|
|
|
|
|
|
|
|
|
|
ID Decision Question
|
|
|
|
|
-- --------------------------------------------------------------
|
|
|
|
|
D1 Are lower-layer credentials available?
|
|
|
|
|
D2 Can lower-layer credentials for Auth ID "K" be mapped asserted
|
|
|
|
|
AuthZID "L"?
|
|
|
|
|
|
|
|
|
|
8.4. LDAP Association State Transition Table
|
|
|
|
|
|
|
|
|
|
The LDAP Association table below lists the valid authentication and
|
|
|
|
|
authorization states for an LDAP association and the actions that
|
|
|
|
|
could affect them. For any given row in the table, the Current State
|
|
|
|
|
column gives the state of an LDAP association, the Action column
|
|
|
|
|
gives an action that could affect the state of an LDAP assocation,
|
|
|
|
|
and the Next State column gives the resulting state of an LDAP
|
|
|
|
|
association after the action occurs.
|
|
|
|
|
|
|
|
|
|
S1, the initial state for the state machine described in this table,
|
|
|
|
|
is the authentication state when an LDAP connection is initially
|
|
|
|
|
established.
|
|
|
|
|
|
|
|
|
|
Current Next
|
|
|
|
|
State Action State Comment
|
|
|
|
|
------- ------- ----- ---------------------------------------
|
|
|
|
|
Any A1 S1 [Protocol] section 4.2.1
|
|
|
|
|
Any A2 S1 Section 6
|
|
|
|
|
Any A3 S1 Section 6
|
|
|
|
|
Any A4 S2 Sections 6.1, 6.2
|
|
|
|
|
Any A5, S1 Failed bind, section 3.3.6
|
|
|
|
|
D1=no
|
|
|
|
|
Any A5, S3
|
|
|
|
|
D1=yes
|
|
|
|
|
Any A6, S1 failed bind, section 3.3.6
|
|
|
|
|
D1=no
|
|
|
|
|
Any A6, S1 failed bind, section 3.3.6.2
|
|
|
|
|
D1=yes,
|
|
|
|
|
D2=no
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 18]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
Any A6, S4
|
|
|
|
|
D1=yes,
|
|
|
|
|
D2=yes
|
|
|
|
|
Any A7 S1 [Protocol] section 4.2.1. Clients
|
|
|
|
|
cannot detect this state.
|
|
|
|
|
Any A8 no [Protocol] section 4.2.1. Clients
|
|
|
|
|
change cannot detect this state.
|
|
|
|
|
Any A9 no [Protocol] section 4.13.2.2
|
|
|
|
|
change
|
|
|
|
|
Any A10 no Section 4.2.1
|
|
|
|
|
change
|
|
|
|
|
Any A11 S1 Section 4.2.3
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
9. TLS Ciphersuites
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
A client or server that supports TLS MUST support
|
|
|
|
|
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA and MAY support other ciphersuites
|
|
|
|
|
offering equivalent or better protection.
|
|
|
|
|
|
|
|
|
|
Several issues should be considered when selecting TLS ciphersuites
|
|
|
|
|
that are appropriate for use in a given circumstance. These issues
|
|
|
|
|
include the following:
|
|
|
|
|
|
|
|
|
|
- The ciphersuite's ability to provide adequate confidentiality
|
|
|
|
|
protection for passwords and other data sent over the LDAP
|
|
|
|
|
connection. Client and server implementers should recognize that
|
|
|
|
|
some TLS ciphersuites provide no confidentiality protection
|
|
|
|
|
while other ciphersuites that do provide confidentiality
|
|
|
|
|
protection may be vulnerable to being cracked using brute force
|
|
|
|
|
methods, especially in light of ever-increasing CPU speeds that
|
|
|
|
|
reduce the time needed to successfully mount such attacks.
|
|
|
|
|
|
|
|
|
|
Client and server implementers SHOULD carefully consider the
|
|
|
|
|
value of the password or data being protected versus the level
|
|
|
|
|
of confidentially protection provided by the ciphersuite to
|
|
|
|
|
ensure that the level of protection afforded by the ciphersuite
|
|
|
|
|
is appropriate.
|
|
|
|
|
|
|
|
|
|
- The ciphersuite's vulnerability (or lack thereof) to man-in-the-
|
|
|
|
|
middle attacks. Ciphersuites vulnerable to man-in-the-middle
|
|
|
|
|
attacks SHOULD NOT be used to protect passwords or sensitive
|
|
|
|
|
data, unless the network configuration is such that the danger
|
|
|
|
|
of a man-in-the-middle attack is tolerable.
|
|
|
|
|
|
|
|
|
|
9.1. TLS Ciphersuites Recommendations
|
|
|
|
|
|
|
|
|
|
As of the writing of this document, the following recommendations
|
|
|
|
|
regarding TLS ciphersuites are applicable. Because circumstances are
|
|
|
|
|
constantly changing, this list must not be considered exhaustive,
|
|
|
|
|
but is hoped that it will serve as a useful starting point for
|
|
|
|
|
implementers.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 19]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The following ciphersuites defined in [TLS] MUST NOT be used for
|
2003-06-01 06:47:07 +08:00
|
|
|
|
confidentiality protection of passwords or data:
|
|
|
|
|
|
|
|
|
|
TLS_NULL_WITH_NULL_NULL
|
|
|
|
|
TLS_RSA_WITH_NULL_MD5
|
|
|
|
|
TLS_RSA_WITH_NULL_SHA
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The following ciphersuites defined in [TLS] can be cracked easily
|
|
|
|
|
(less than a day of CPU time on a standard CPU in 2000) and are NOT
|
|
|
|
|
RECOMMENDED for use in confidentiality protection of passwords or
|
|
|
|
|
data.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
TLS_RSA_EXPORT_WITH_RC4_40_MD5
|
|
|
|
|
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
|
|
|
|
|
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
|
2003-12-07 15:50:23 +08:00
|
|
|
|
TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
|
2003-06-01 06:47:07 +08:00
|
|
|
|
TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
|
|
|
|
|
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
|
|
|
|
|
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
|
|
|
|
|
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
|
|
|
|
|
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
|
|
|
|
|
|
|
|
|
|
The following ciphersuites are vulnerable to man-in-the-middle
|
2003-12-07 15:50:23 +08:00
|
|
|
|
attacks:
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
|
|
|
|
|
TLS_DH_anon_WITH_RC4_128_MD5
|
|
|
|
|
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
|
|
|
|
|
TLS_DH_anon_WITH_DES_CBC_SHA
|
|
|
|
|
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
10. Security Considerations
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Security issues are discussed throughout this memo; the
|
|
|
|
|
(unsurprising) conclusion is that mandatory security is important
|
|
|
|
|
and that session confidentiality protection is required when
|
|
|
|
|
snooping is a problem.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Servers are encouraged to prevent modifications by anonymous users.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Servers can minimize denial of service attacks by timing out idle
|
|
|
|
|
connections, and returning the unwillingToPerform resultCode rather
|
|
|
|
|
than performing computationally expensive operations requested by
|
|
|
|
|
unauthorized clients.
|
|
|
|
|
|
|
|
|
|
The use of cleartext passwords and other unprotected authentication
|
|
|
|
|
credentials is strongly discouraged over open networks when the
|
|
|
|
|
underlying transport service cannot guarantee confidentiality.
|
|
|
|
|
|
|
|
|
|
Operational experience shows that clients can (and frequently do)
|
|
|
|
|
misuse unauthenticated bind (see section 5.1). For example, a
|
|
|
|
|
client program might make a decision to grant access to non-
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 20]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
directory information on the basis of completing a successful bind
|
|
|
|
|
operation. Some LDAP server implementations will return a success
|
|
|
|
|
response to an unauthenticated bind thus leaving the client with the
|
|
|
|
|
impression that the server has successfully authenticated the
|
|
|
|
|
identity represented by the user name, when in effect, an anonymous
|
|
|
|
|
LDAP association has been created. Clients that use the results from
|
|
|
|
|
a simple bind operation to make authorization decisions should
|
|
|
|
|
actively detect unauthenticated bind requests (via the empty
|
|
|
|
|
password value) and react appropriately.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
Access control SHOULD always be applied when reading sensitive
|
|
|
|
|
information or updating directory information.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
A connection on which the client has not performed the Start TLS
|
|
|
|
|
operation or negotiated a suitable SASL mechanism for connection
|
|
|
|
|
integrity and encryption services is subject to man-in-the-middle
|
|
|
|
|
attacks to view and modify information in transit.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
10.1. Start TLS Security Considerations
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The goals of using the TLS protocol with LDAP are to ensure
|
|
|
|
|
connection confidentiality and integrity, and to optionally provide
|
2003-12-07 15:50:23 +08:00
|
|
|
|
for authentication. [TLS] expressly provides these capabilities.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
All security gained via use of the Start TLS operation is gained by
|
|
|
|
|
the use of TLS itself. The Start TLS operation, on its own, does not
|
|
|
|
|
provide any additional security.
|
|
|
|
|
|
|
|
|
|
Once established, TLS only provides for and ensures confidentiality
|
|
|
|
|
and integrity of the operations and data in transit over the LDAP
|
|
|
|
|
association--and only if the implementations on the client and
|
|
|
|
|
server support and negotiate it. The use of TLS does not provide or
|
|
|
|
|
ensure for confidentiality and/or non-repudiation of the data housed
|
|
|
|
|
by an LDAP-based directory server. Nor does it secure the data from
|
|
|
|
|
inspection by the server administrators.
|
|
|
|
|
|
|
|
|
|
The level of security provided though the use of TLS depends
|
|
|
|
|
directly on both the quality of the TLS implementation used and the
|
|
|
|
|
style of usage of that implementation. Additionally, an active-
|
|
|
|
|
intermediary attacker can remove the Start TLS extended operation
|
|
|
|
|
from the supportedExtension attribute of the root DSE. Therefore,
|
|
|
|
|
both parties SHOULD independently ascertain and consent to the
|
|
|
|
|
security level achieved once TLS is established and before beginning
|
|
|
|
|
use of the TLS connection. For example, the security level of the
|
|
|
|
|
TLS connection might have been negotiated down to plaintext.
|
|
|
|
|
|
|
|
|
|
Clients SHOULD either warn the user when the security level achieved
|
|
|
|
|
does not provide confidentiality and/or integrity protection, or be
|
|
|
|
|
configurable to refuse to proceed without an acceptable level of
|
|
|
|
|
security.
|
|
|
|
|
|
|
|
|
|
Client and server implementors SHOULD take measures to ensure proper
|
|
|
|
|
protection of credentials and other confidential data where such
|
|
|
|
|
measures are not otherwise provided by the TLS implementation.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 21]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Server implementors SHOULD allow for server administrators to elect
|
|
|
|
|
whether and when connection confidentiality and/or integrity is
|
|
|
|
|
required, as well as elect whether and when client authentication
|
|
|
|
|
via TLS is required.
|
|
|
|
|
|
|
|
|
|
Additional security considerations relating to the EXTERNAL
|
2003-12-07 15:50:23 +08:00
|
|
|
|
mechanism to negotiate TLS can be found in [SASL] and [TLS].
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
11. IANA Considerations
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
The following IANA considerations apply to this document:
|
|
|
|
|
|
|
|
|
|
Please update the GSSAPI service name registry to point to [Roadmap]
|
|
|
|
|
and this document.
|
|
|
|
|
|
|
|
|
|
[To be completed]
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Acknowledgements
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
This document combines information originally contained in RFC 2829
|
2003-12-07 15:50:23 +08:00
|
|
|
|
and RFC 2830. The editor acknowledges the work of Harald Tveit
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Alvestrand, Jeff Hodges, Tim Howes, Steve Kille, RL "Bob" Morgan ,
|
|
|
|
|
and Mark Wahl, each of whom authored one or more of these documents.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
This document is based upon input of the IETF LDAP Revision working
|
2003-12-07 15:50:23 +08:00
|
|
|
|
group. The contributions and suggestions made by its members in
|
|
|
|
|
shaping the contents and technical accuracy of this document is
|
|
|
|
|
greatly appreciated.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Normative References
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
[RFC2119] Bradner, S., "Key Words for use in RFCs to Indicate
|
|
|
|
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
[ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Specifications: ABNF", RFC 2234, November 1997.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
[DIGEST-MD5] Leach, P. C. Newman, and A. Melnikov, "Using Digest
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Authentication as a SASL Mechanism", draft-ietf-sasl-rfc2831bis-
|
|
|
|
|
xx.txt, a work in progress.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
[LDAPDN] Zeilenga, Kurt D. (editor), "LDAP: String Representation of
|
|
|
|
|
Distinguished Names", draft-ietf-ldapbis-dn-xx.txt, a work in
|
|
|
|
|
progress.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
[Models] Zeilenga, Kurt D. (editor), "LDAP: Directory Information
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Models", draft-ietf-ldapbis-models-xx.txt, a work in progress.
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
[Protocol] Sermersheim, J., "LDAP: The Protocol", draft-ietf-
|
|
|
|
|
ldapbis-protocol-xx.txt, a work in progress.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
[Roadmap] K. Zeilenga, "LDAP: Technical Specification Road Map",
|
2003-06-01 06:47:07 +08:00
|
|
|
|
draft-ietf-ldapbis-roadmap-xx.txt, a work in progress.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 22]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
[SASL] Melnikov, A. (editor), "Simple Authentication and Security
|
|
|
|
|
Layer (SASL)", draft-ietf-sasl-rfc2222bis-xx.txt, a work in
|
|
|
|
|
progress.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
[SASLPrep] Zeilenga, K., "Stringprep profile for user names and
|
|
|
|
|
passwords", draft-ietf-sasl-saslprep-xx.txt, (a work in
|
|
|
|
|
progress).
|
|
|
|
|
|
|
|
|
|
[StringPrep] Hoffman P. and M. Blanchet, "Preparation of
|
|
|
|
|
Internationalized Strings ('stringprep')", draft-hoffman-
|
|
|
|
|
rfc3454bis-xx.txt, a work in progress.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
[Syntaxes] Legg, S. (editor), "LDAP: Syntaxes and Matching Rules",
|
|
|
|
|
draft-ietf-ldapbis-syntaxes-xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[TLS] Dierks, T. and C. Allen. "The TLS Protocol Version 1.1",
|
|
|
|
|
draft-ietf-tls-rfc2246-bis-xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[UTF-8] Yergeau, F., "UTF-8, a transformation format of ISO 10646",
|
2003-12-18 08:36:45 +08:00
|
|
|
|
RFC 3629, STD 63, November 2003.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
[Unicode] The Unicode Consortium, "The Unicode Standard, Version
|
|
|
|
|
3.2.0" is defined by "The Unicode Standard, Version 3.0"
|
|
|
|
|
(Reading, MA, Addison-Wesley, 2000. ISBN 0-201-61633-5), as
|
|
|
|
|
amended by the "Unicode Standard Annex #27: Unicode 3.1"
|
|
|
|
|
(http://www.unicode.org/reports/tr27/) and by the <20>Unicode
|
|
|
|
|
Standard Annex #28: Unicode 3.2"
|
|
|
|
|
(http://www.unicode.org/reports/tr28/).
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Informative References
|
|
|
|
|
|
|
|
|
|
[ANONYMOUS] Zeilenga, K.,"Anonymous SASL Mechanism", draft-zeilenga-
|
|
|
|
|
sasl-anon-xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[PLAIN] Zeilenga, K.,"Plain SASL Mechanism", draft-zeilenga-sasl-
|
|
|
|
|
plain-xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[RFC2828] Shirey, R., "Internet Security Glossary", RFC 2828, May
|
2003-06-01 06:47:07 +08:00
|
|
|
|
2000.
|
|
|
|
|
|
|
|
|
|
[RFC2401] Kent, S. and R. Atkinson, "Security Architecture for the
|
|
|
|
|
Internet Protocol", RFC 2401, November 1998.
|
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Author's Address
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Roger Harrison
|
|
|
|
|
Novell, Inc.
|
|
|
|
|
1800 S. Novell Place
|
|
|
|
|
Provo, UT 84606
|
|
|
|
|
+1 801 861 2642
|
|
|
|
|
roger_harrison@novell.com
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 23]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Appendix A. Example Deployment Scenarios
|
|
|
|
|
|
|
|
|
|
The following scenarios are typical for LDAP directories on the
|
|
|
|
|
Internet, and have different security requirements. (In the
|
|
|
|
|
following discussion, "sensitive data" refers to information whose
|
|
|
|
|
disclosure, alteration, destruction, or loss would adversely affect
|
|
|
|
|
the interests or business of its owner or user. Also note that there
|
|
|
|
|
may be data that is protected but not sensitive.) This is not
|
|
|
|
|
intended to be a comprehensive list; other scenarios are possible,
|
|
|
|
|
especially on physically protected networks.
|
|
|
|
|
|
|
|
|
|
(1) A read-only directory, containing no sensitive data, accessible
|
|
|
|
|
to "anyone", and TCP connection hijacking or IP spoofing is not
|
|
|
|
|
a problem. Anonymous authentication, described in section 7, is
|
|
|
|
|
suitable for this type of deployment, and requires no additional
|
|
|
|
|
security functions except administrative service limits.
|
|
|
|
|
|
|
|
|
|
(2) A read-only directory containing no sensitive data; read access
|
|
|
|
|
is granted based on identity. TCP connection hijacking is not
|
|
|
|
|
currently a problem. This scenario requires data confidentiality
|
|
|
|
|
for sensitive authentication information AND data integrity for
|
|
|
|
|
all authentication information.
|
|
|
|
|
|
|
|
|
|
(3) A read-only directory containing no sensitive data; and the
|
|
|
|
|
client needs to ensure the identity of the directory server and
|
|
|
|
|
that the directory data is not modified while being returned
|
|
|
|
|
from the server. A data origin authentication service AND data
|
|
|
|
|
integrity service are required.
|
|
|
|
|
|
|
|
|
|
(4) A read-write directory, containing no sensitive data; read
|
|
|
|
|
access is available to "anyone", update access to properly
|
|
|
|
|
authorized persons. TCP connection hijacking is not currently a
|
|
|
|
|
problem. This scenario requires data confidentiality for
|
|
|
|
|
sensitive authentication information AND data integrity for all
|
|
|
|
|
authentication information.
|
|
|
|
|
|
|
|
|
|
(5) A directory containing sensitive data. This scenario requires
|
|
|
|
|
data confidentiality protection AND secure authentication.
|
|
|
|
|
|
|
|
|
|
Appendix B. Authentication and Authorization: Definitions and Concepts
|
|
|
|
|
|
|
|
|
|
This appendix defines basic terms, concepts, and interrelationships
|
|
|
|
|
regarding authentication, authorization, credentials, and identity.
|
|
|
|
|
These concepts are used in describing how various security
|
|
|
|
|
approaches are utilized in client authentication and authorization.
|
|
|
|
|
|
|
|
|
|
B.1. Access Control Policy
|
|
|
|
|
|
|
|
|
|
An access control policy is a set of rules defining the protection
|
|
|
|
|
of resources, generally in terms of the capabilities of persons or
|
|
|
|
|
other entities accessing those resources. A common expression of an
|
|
|
|
|
access control policy is an access control list. Security objects
|
|
|
|
|
and mechanisms, such as those described here, enable the expression
|
|
|
|
|
of access control policies and their enforcement. Access control
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 24]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
policies are typically expressed in terms of access control factors
|
|
|
|
|
as described below.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
B.2. Access Control Factors
|
|
|
|
|
|
|
|
|
|
A request, when it is being processed by a server, may be associated
|
|
|
|
|
with a wide variety of security-related factors (section 4.2 of
|
|
|
|
|
[Protocol]). The server uses these factors to determine whether and
|
|
|
|
|
how to process the request. These are called access control factors
|
|
|
|
|
(ACFs). They might include source IP address, encryption strength,
|
|
|
|
|
the type of operation being requested, time of day, etc. Some
|
|
|
|
|
factors may be specific to the request itself, others may be
|
|
|
|
|
associated with the connection via which the request is transmitted,
|
|
|
|
|
others (e.g. time of day) may be "environmental".
|
|
|
|
|
|
|
|
|
|
Access control policies are expressed in terms of access control
|
|
|
|
|
factors. E.g., a request having ACFs i,j,k can perform operation Y
|
|
|
|
|
on resource Z. The set of ACFs that a server makes available for
|
|
|
|
|
such expressions is implementation-specific.
|
|
|
|
|
|
|
|
|
|
B.3. Authentication, Credentials, Identity
|
|
|
|
|
|
|
|
|
|
Authentication credentials are the evidence supplied by one party to
|
|
|
|
|
another, asserting the identity of the supplying party (e.g. a user)
|
|
|
|
|
who is attempting to establish an association with the other party
|
|
|
|
|
(typically a server). Authentication is the process of generating,
|
|
|
|
|
transmitting, and verifying these credentials and thus the identity
|
|
|
|
|
they assert. An authentication identity is the name presented in a
|
|
|
|
|
credential.
|
|
|
|
|
|
|
|
|
|
There are many forms of authentication credentials -- the form used
|
|
|
|
|
depends upon the particular authentication mechanism negotiated by
|
|
|
|
|
the parties. For example: X.509 certificates, Kerberos tickets,
|
|
|
|
|
simple identity and password pairs. Note that an authentication
|
|
|
|
|
mechanism may constrain the form of authentication identities used
|
|
|
|
|
with it.
|
|
|
|
|
|
|
|
|
|
B.4. Authorization Identity
|
|
|
|
|
|
|
|
|
|
An authorization identity is one kind of access control factor. It
|
|
|
|
|
is the name of the user or other entity that requests that
|
|
|
|
|
operations be performed. Access control policies are often expressed
|
|
|
|
|
in terms of authorization identities; e.g., entity X can perform
|
|
|
|
|
operation Y on resource Z.
|
|
|
|
|
|
|
|
|
|
The authorization identity bound to an association is often exactly
|
|
|
|
|
the same as the authentication identity presented by the client, but
|
|
|
|
|
it may be different. SASL allows clients to specify an authorization
|
|
|
|
|
identity distinct from the authentication identity asserted by the
|
|
|
|
|
client's credentials. This permits agents such as proxy servers to
|
|
|
|
|
authenticate using their own credentials, yet request the access
|
2003-12-07 15:50:23 +08:00
|
|
|
|
privileges of the identity for which they are proxying [SASL]. Also,
|
|
|
|
|
the form of authentication identity supplied by a service like TLS
|
|
|
|
|
may not correspond to the authorization identities used to express a
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 25]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
server's access control policy, requiring a server-specific mapping
|
|
|
|
|
to be done. The method by which a server composes and validates an
|
|
|
|
|
authorization identity from the authentication credentials supplied
|
|
|
|
|
by a client is implementation-specific.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Appendix C. RFC 2829 Change History
|
|
|
|
|
|
|
|
|
|
This appendix lists the changes made to the text of RFC 2829 in
|
|
|
|
|
preparing this document.
|
|
|
|
|
|
|
|
|
|
C.0. General Editorial Changes
|
|
|
|
|
Version -00
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Changed other instances of the term LDAP to LDAP where v3 of the
|
|
|
|
|
protocol is implied. Also made all references to LDAP use the
|
|
|
|
|
same wording.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
- Miscellaneous grammatical changes to improve readability.
|
|
|
|
|
|
|
|
|
|
- Made capitalization in section headings consistent.
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Changed title to reflect inclusion of material from RFC 2830 and
|
|
|
|
|
2251.
|
|
|
|
|
|
|
|
|
|
C.1. Changes to Section 1
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Moved conventions used in document to a separate section.
|
|
|
|
|
|
|
|
|
|
C.2. Changes to Section 2
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Moved section to an appendix.
|
|
|
|
|
|
|
|
|
|
C.3. Changes to Section 3
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Moved section to an appendix.
|
|
|
|
|
|
|
|
|
|
C.4 Changes to Section 4
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Changed "Distinguished Name" to "LDAP distinguished name".
|
|
|
|
|
|
|
|
|
|
C.5. Changes to Section 5
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 26]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
- Added the following sentence: "Servers SHOULD NOT allow clients
|
|
|
|
|
with anonymous authentication to modify directory entries or
|
|
|
|
|
access sensitive information in directory entries."
|
|
|
|
|
|
|
|
|
|
C.5.1. Changes to Section 5.1
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Replaced the text describing the procedure for performing an
|
|
|
|
|
anonymous bind (protocol) with a reference to section 4.2 of RFC
|
|
|
|
|
2251 (the protocol spec).
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Brought text describing procedure for performing an anonymous
|
|
|
|
|
bind from section 4.2 of RFC 2251 bis. This text will be
|
|
|
|
|
removed from the draft standard version of that document.
|
|
|
|
|
|
|
|
|
|
C.6. Changes to Section 6.
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
Reorganized text in section 6.1 as follows:
|
|
|
|
|
|
|
|
|
|
1. Added a new section (6.1) titled "Simple Authentication" and
|
|
|
|
|
moved one of two introductory paragraphs for section 6 into
|
|
|
|
|
section 6.1. Added sentences to the paragraph indicating:
|
|
|
|
|
|
|
|
|
|
a. simple authentication is not suitable for environments where
|
|
|
|
|
confidentiality is not available.
|
|
|
|
|
|
|
|
|
|
b. LDAP implementations SHOULD NOT support simple
|
|
|
|
|
authentication unless confidentiality and data integrity
|
|
|
|
|
mechanisms are in force.
|
|
|
|
|
|
|
|
|
|
2. Moved first paragraph of section 6 (beginning with "LDAP
|
2003-12-07 15:50:23 +08:00
|
|
|
|
implementations MUST support authentication with a password...")
|
2003-06-01 06:47:07 +08:00
|
|
|
|
to section on Digest Authentication (Now section 6.2).
|
|
|
|
|
|
|
|
|
|
C.6.1. Changes to Section 6.1.
|
|
|
|
|
|
|
|
|
|
Version -00 Renamed section to 6.2
|
|
|
|
|
|
|
|
|
|
- Added sentence from original section 6 indicating that the
|
2003-12-07 15:50:23 +08:00
|
|
|
|
DIGEST-MD5 SASL mechanism is required for all conforming LDAP
|
2003-06-01 06:47:07 +08:00
|
|
|
|
implementations
|
|
|
|
|
|
|
|
|
|
C.6.2. Changes to Section 6.2
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
- Renamed section to 6.3
|
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 27]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
- Reworded first paragraph to remove reference to user and the
|
|
|
|
|
userPassword password attribute Made the first paragraph more
|
|
|
|
|
general by simply saying that if a directory supports simple
|
|
|
|
|
authentication that the simple bind operation MAY performed
|
|
|
|
|
following negotiation of a TLS ciphersuite that supports
|
|
|
|
|
confidentiality.
|
|
|
|
|
|
|
|
|
|
- Replaced "the name of the user's entry" with "a DN" since not
|
|
|
|
|
all bind operations are performed on behalf of a "user."
|
|
|
|
|
|
|
|
|
|
- Added Section 6.3.1 heading just prior to paragraph 5.
|
|
|
|
|
|
|
|
|
|
- Paragraph 5: replaced "The server" with "DSAs that map the DN
|
|
|
|
|
sent in the bind request to a directory entry with a
|
|
|
|
|
userPassword attribute."
|
|
|
|
|
|
|
|
|
|
C.6.3. Changes to section 6.3.
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Renamed to section 6.4.
|
|
|
|
|
|
|
|
|
|
C.7. Changes to section 7.
|
|
|
|
|
|
|
|
|
|
none
|
|
|
|
|
|
|
|
|
|
C.7.1. Changes to section 7.1.
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Clarified the entity issuing a certificate by moving the phrase
|
|
|
|
|
"to have issued the certificate" immediately after
|
|
|
|
|
"Certification Authority."
|
|
|
|
|
|
|
|
|
|
C.8. Changes to section 8.
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Removed the first paragraph because simple authentication is
|
|
|
|
|
covered explicitly in section 6.
|
|
|
|
|
|
|
|
|
|
- Added section 8.1. heading just prior to second paragraph.
|
|
|
|
|
|
|
|
|
|
- Added section 8.2. heading just prior to third paragraph.
|
|
|
|
|
|
|
|
|
|
- Added section 8.3. heading just prior to fourth paragraph.
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Moved entire section 8 of RFC 2829 into section 3.4 (Using SASL
|
|
|
|
|
for Other Security Services) to bring material on SASL
|
|
|
|
|
mechanisms together into one location.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
C.9. Changes to section 9.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 28]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Paragraph 2: changed "EXTERNAL mechanism" to "EXTERNAL SASL
|
|
|
|
|
mechanism."
|
|
|
|
|
|
|
|
|
|
- Added section 9.1. heading.
|
|
|
|
|
|
|
|
|
|
- Modified a comment in the ABNF from "unspecified userid" to
|
|
|
|
|
"unspecified authz id".
|
|
|
|
|
|
|
|
|
|
- Deleted sentence, "A utf8string is defined to be the UTF-8
|
|
|
|
|
encoding of one or more ISO 10646 characters," because it is
|
|
|
|
|
redundant.
|
|
|
|
|
|
|
|
|
|
- Added section 9.1.1. heading.
|
|
|
|
|
|
|
|
|
|
- Added section 9.1.2. heading.
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Moved entire section 9 to become section 3.5 so that it would be
|
|
|
|
|
with other SASL material.
|
|
|
|
|
|
|
|
|
|
C.10. Changes to Section 10.
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Updated reference to cracking from a week of CPU time in 1997 to
|
|
|
|
|
be a day of CPU time in 2000.
|
|
|
|
|
|
|
|
|
|
- Added text: "These ciphersuites are NOT RECOMMENDED for use...
|
|
|
|
|
and server implementers SHOULD" to sentence just prior the
|
|
|
|
|
second list of ciphersuites.
|
|
|
|
|
|
|
|
|
|
- Added text: "and MAY support other ciphersuites offering
|
|
|
|
|
equivalent or better protection," to the last paragraph of the
|
|
|
|
|
section.
|
|
|
|
|
|
|
|
|
|
C.11. Changes to Section 11.
|
|
|
|
|
|
|
|
|
|
Version -01
|
|
|
|
|
|
|
|
|
|
- Moved to section 3.6 to be with other SASL material.
|
|
|
|
|
|
|
|
|
|
C.12. Changes to Section 12.
|
|
|
|
|
|
|
|
|
|
Version -00
|
|
|
|
|
|
|
|
|
|
- Inserted new section 12 that specifies when SASL protections
|
|
|
|
|
begin following SASL negotiation, etc. The original section 12
|
|
|
|
|
is renumbered to become section 13.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Version -01
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 29]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
- Moved to section 3.7 to be with other SASL material.
|
|
|
|
|
|
|
|
|
|
C.13. Changes to Section 13 (original section 12).
|
|
|
|
|
|
|
|
|
|
None
|
|
|
|
|
|
|
|
|
|
Appendix D. RFC 2830 Change History
|
|
|
|
|
|
|
|
|
|
This appendix lists the changes made to the text of RFC 2830 in
|
|
|
|
|
preparing this document.
|
|
|
|
|
|
|
|
|
|
D.0. General Editorial Changes
|
|
|
|
|
|
|
|
|
|
- Material showing the PDUs for the Start TLS response was broken
|
|
|
|
|
out into a new section.
|
|
|
|
|
|
|
|
|
|
- The wording of the definition of the Start TLS request and Start
|
|
|
|
|
TLS response was changed to make them parallel. NO changes were
|
|
|
|
|
made to the ASN.1 definition or the associated values of the
|
|
|
|
|
parameters.
|
|
|
|
|
|
|
|
|
|
- A separate section heading for graceful TLS closure was added
|
|
|
|
|
for parallelism with section on abrupt TLS closure.
|
|
|
|
|
|
|
|
|
|
Appendix E. RFC 2251 Change History
|
|
|
|
|
|
|
|
|
|
This appendix lists the changes made to the text of RFC 2251 in
|
|
|
|
|
preparing this document.
|
|
|
|
|
|
|
|
|
|
E.0. General Editorial Changes
|
|
|
|
|
|
|
|
|
|
- All material from section 4.2 of RFC 2251 was moved into this
|
|
|
|
|
document.
|
|
|
|
|
|
|
|
|
|
- A new section was created for the Bind Request
|
|
|
|
|
|
|
|
|
|
- Section 4.2.1 of RFC 2251 (Sequencing Bind Request) was moved
|
|
|
|
|
after the section on the Bind Response for parallelism with the
|
|
|
|
|
presentation of the Start TLS operations. The section was also
|
|
|
|
|
subdivided to explicitly call out the various effects being
|
|
|
|
|
described within it.
|
|
|
|
|
|
|
|
|
|
- All SASL profile information from RFC 2829 was brought within
|
|
|
|
|
the discussion of the Bind operation (primarily sections 4.4 -
|
|
|
|
|
4.7).
|
|
|
|
|
|
|
|
|
|
Appendix F. Change History to Combined Document
|
|
|
|
|
|
|
|
|
|
F.1. Changes for draft-ldap-bis-authmeth-02
|
|
|
|
|
|
|
|
|
|
General
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 30]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
- Added references to other LDAP standard documents, to sections
|
|
|
|
|
within the document, and fixed broken references.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- General editorial changes--punctuation, spelling, formatting,
|
2003-06-01 06:47:07 +08:00
|
|
|
|
etc.
|
|
|
|
|
|
|
|
|
|
Section 1.
|
|
|
|
|
|
|
|
|
|
- Added glossary of terms and added sub-section headings
|
|
|
|
|
|
|
|
|
|
Section 2.
|
|
|
|
|
|
|
|
|
|
- Clarified security mechanisms 3, 4, & 5 and brought language in
|
|
|
|
|
line with IETF security glossary.
|
|
|
|
|
|
|
|
|
|
Section 3.
|
|
|
|
|
|
|
|
|
|
- Brought language in requirement (3) in line with security
|
|
|
|
|
glossary.
|
|
|
|
|
|
|
|
|
|
- Clarified that information fetched prior to initiation of TLS
|
|
|
|
|
negotiation must be discarded
|
|
|
|
|
|
|
|
|
|
-Clarified that information fetched prior to initiation of SASL
|
|
|
|
|
negotiation must be discarded
|
|
|
|
|
|
|
|
|
|
- Rewrote paragraph on SASL negotiation requirements to clarify
|
|
|
|
|
intent
|
|
|
|
|
|
|
|
|
|
Section 4.4.
|
|
|
|
|
|
|
|
|
|
- Added stipulation that sasl choice allows for any SASL mechanism
|
|
|
|
|
not prohibited by this document. (Resolved conflict between this
|
|
|
|
|
statement and one that prohibited use of ANONYMOUS and PLAIN
|
|
|
|
|
SASL mechanisms.)
|
|
|
|
|
|
|
|
|
|
Section 5.3.6
|
|
|
|
|
|
|
|
|
|
- Added a.x.bar.com to wildcard matching example on hostname
|
|
|
|
|
check.
|
|
|
|
|
|
|
|
|
|
Section 6
|
|
|
|
|
|
|
|
|
|
- Added LDAP Association State Transition Tables to show the
|
|
|
|
|
various states through which an LDAP association may pass along
|
|
|
|
|
with the actions and decisions required to traverse from state
|
|
|
|
|
to state.
|
|
|
|
|
|
|
|
|
|
Appendix A
|
|
|
|
|
|
|
|
|
|
- Brought security terminology in line with IETF security glossary
|
|
|
|
|
throughout the appendix.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
F.2. Changes for draft-ldap-bis-authmeth-03
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 31]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
- Added introductory notes and changed title of document and
|
|
|
|
|
references to conform to WG chair suggestions for the overall
|
|
|
|
|
technical specification.
|
|
|
|
|
|
|
|
|
|
- Several issues--G.13, G.14, G.16, G.17--were resolved without
|
|
|
|
|
requiring changes to the document.
|
|
|
|
|
|
|
|
|
|
Section 3
|
|
|
|
|
|
|
|
|
|
- Removed reference to /etc/passwd file and associated text.
|
|
|
|
|
|
|
|
|
|
Section 4
|
|
|
|
|
|
|
|
|
|
- Removed sections 4.1, 4.2 and parts of section 4.3. This
|
|
|
|
|
information was being duplicated in the protocol specification
|
|
|
|
|
and will now reside there permanently.
|
|
|
|
|
Section 4.2
|
|
|
|
|
|
|
|
|
|
- changed words, "not recommended" to "strongly discouraged"
|
|
|
|
|
|
|
|
|
|
Section 4.3
|
|
|
|
|
|
|
|
|
|
- Based on ldapbis WG discussion at IETF52 two sentences were
|
|
|
|
|
added indicating that clients SHOULD NOT send a DN value when
|
|
|
|
|
binding with the sasl choice and servers SHALL ignore any value
|
|
|
|
|
received in this circumstance.
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
Section 8.3.1
|
|
|
|
|
|
|
|
|
|
- Generalized the language of this section to not refer to any
|
|
|
|
|
specific password attribute or to refer to the directory entry
|
|
|
|
|
as a "user" entry.
|
|
|
|
|
|
|
|
|
|
Section 11
|
|
|
|
|
|
|
|
|
|
- Added security consideration regarding misuse of unauthenticated
|
|
|
|
|
access.
|
|
|
|
|
|
|
|
|
|
- Added security consideration requiring access control to be
|
|
|
|
|
applied only to authenticated users and recommending it be
|
|
|
|
|
applied when reading sensitive information or updating directory
|
|
|
|
|
information.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F.3. Changes for draft-ldap-bis-authmeth-04
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
- Changed references to use [RFCnnnn] format wherever possible.
|
|
|
|
|
(References to works in progress still use [name] format.)
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 32]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
- Various edits to correct typos and bring field names, etc. in
|
|
|
|
|
line with specification in [Protocol] draft.
|
|
|
|
|
|
|
|
|
|
- Several issues--G.13, G.14, G.16, G.17--were resolved without
|
|
|
|
|
requiring changes to the document.
|
|
|
|
|
|
|
|
|
|
Section 4.4.1.
|
|
|
|
|
|
|
|
|
|
- Changed ABNF grammar to use productions that are like those in
|
|
|
|
|
the model draft.
|
|
|
|
|
|
|
|
|
|
Section 5
|
|
|
|
|
|
|
|
|
|
- Removed sections 5.1, 5.2, and 5.4 that will be added to
|
|
|
|
|
[Protocol]. Renumbered sections to accommodate this change.
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
Section 6
|
|
|
|
|
|
|
|
|
|
- Reviewed LDAP Association State table for completeness and
|
|
|
|
|
accuracy. Renumbered actions A3, A4, and A5 to be A5, A3, and A4
|
|
|
|
|
respectively. Re-ordered several lines in the table to ensure
|
|
|
|
|
that actions are in ascending order (makes analyzing the table
|
|
|
|
|
much more logical). Added action A2 to several states where it
|
|
|
|
|
was missing and valid. Added actions A7 and A8 placeholders to
|
|
|
|
|
states S1, S2, S4 and S5 pending resolution of issue G.28.
|
|
|
|
|
|
|
|
|
|
Section 11
|
|
|
|
|
|
|
|
|
|
- Modified security consideration (originally added in -03)
|
|
|
|
|
requiring access control to be applied only to authenticated
|
|
|
|
|
users. This seems nonsensical because anonymous users may have
|
|
|
|
|
access control applied to limit permissible actions.
|
|
|
|
|
-
|
|
|
|
|
Section 13
|
|
|
|
|
|
|
|
|
|
- Verified all normative references and moved informative
|
|
|
|
|
references to a new section 14.
|
|
|
|
|
|
|
|
|
|
F.4. Changes for draft-ldap-bis-authmeth-05
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
- General editory changes to fix punctuation, spelling, line
|
|
|
|
|
length issues, etc.
|
|
|
|
|
- Verified and updated intra- and inter-document references
|
|
|
|
|
throughout.
|
|
|
|
|
- Document-wide review for proper usage of RFC 2119 keywords with
|
|
|
|
|
several changes to correct improper usage.
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
- Updated to match current contents of documents. This was needed
|
|
|
|
|
due to movement of material on Bind and Start TLS operations to
|
|
|
|
|
[Protocol] in this revision.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 33]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Section 3.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Renamed section to "Rationale for LDAP Security Mechanisms" and
|
|
|
|
|
removed text that did not support this theme. Part of the
|
2003-06-01 06:47:07 +08:00
|
|
|
|
motivation for this change was to remove the implication of the
|
|
|
|
|
previous section title, "Required Security Mechanisms", and
|
|
|
|
|
other text found in the section that everything in the section
|
|
|
|
|
was a requirement
|
|
|
|
|
|
|
|
|
|
- Information from several removed paragraphs that describe
|
|
|
|
|
deployment scenarios will be added Appendix A in the next
|
|
|
|
|
revision of the draft.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Paragraph beginning, " If TLS is negotiated, the client MUST
|
|
|
|
|
discard all information..." was moved to section 5.1.7 and
|
|
|
|
|
integrated with related material there.
|
|
|
|
|
|
|
|
|
|
- Paragraph beginning, "If a SASL security layer is negotiated..."
|
|
|
|
|
was moved to section 4.2
|
|
|
|
|
|
|
|
|
|
Section 4.l.
|
|
|
|
|
|
|
|
|
|
- Changed wording of first paragraph to clarify meaning.
|
|
|
|
|
|
|
|
|
|
Section 4.2.
|
|
|
|
|
- Added paragraph from section 3 of -04 beginning, "If a SASL
|
|
|
|
|
security layer is negotiated..."
|
|
|
|
|
|
|
|
|
|
Section 4.3.3.
|
|
|
|
|
- Renamed to "Other SASL Mechanisms" and completely rewrote the
|
|
|
|
|
section (one sentence) to generalize the treatment of SASL
|
|
|
|
|
mechanisms not explicitly mentioned in this document.
|
|
|
|
|
|
|
|
|
|
Section 4.4.1.
|
|
|
|
|
|
|
|
|
|
- Added paragraph beginning, "The dnAuthzID choice allows client
|
|
|
|
|
applications..." to clarify whether DN form authorization
|
|
|
|
|
identities have to also have a corresponding directory entry.
|
|
|
|
|
This change was based on editor's perception of WG consensus.
|
|
|
|
|
|
|
|
|
|
- Made minor clarifying edits in the paragraph beginning, "The
|
|
|
|
|
uAuthzID choice allows for compatibility..."
|
|
|
|
|
|
|
|
|
|
Section 5.1.1.
|
|
|
|
|
|
|
|
|
|
- Made minor clarifying edits in the last paragraph of the
|
|
|
|
|
section.
|
|
|
|
|
|
|
|
|
|
Section 5.1.7.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 34]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
- Wording from section 3 paragraph beginning " If TLS is
|
|
|
|
|
negotiated, the client MUST discard all information..." was
|
|
|
|
|
moved to this section and integrated with existing text.
|
|
|
|
|
|
|
|
|
|
Section 5.2.
|
|
|
|
|
|
|
|
|
|
- Changed usage of "TLS connection" to "TLS session" throughout.
|
|
|
|
|
|
|
|
|
|
- Removed empty section 5.2.1 and renumbered sections it had
|
|
|
|
|
previously contained.
|
|
|
|
|
|
|
|
|
|
Section 8.
|
|
|
|
|
|
|
|
|
|
- Added introductory paragraph at beginning of section.
|
|
|
|
|
|
|
|
|
|
Section 8.1.
|
|
|
|
|
|
|
|
|
|
- Changed term "data privacy" to "data confidentiality" to be
|
|
|
|
|
consistent with usage in rest of document.
|
|
|
|
|
|
|
|
|
|
Section 8.2.
|
|
|
|
|
|
|
|
|
|
- Changed first paragraph to require implementations that
|
|
|
|
|
implement *password-based* authentication to implement and
|
|
|
|
|
support DIGEST-MD5 SASL authentication.
|
|
|
|
|
|
|
|
|
|
Section 11.
|
|
|
|
|
|
|
|
|
|
- First paragraph: changed "session encryption" to "session
|
|
|
|
|
confidentiality protection" to be consistent with usage in rest
|
|
|
|
|
of document.
|
|
|
|
|
|
|
|
|
|
Appendix A.
|
|
|
|
|
|
|
|
|
|
- Began changes to incorporate information on deployment scenarios
|
|
|
|
|
removed from section 3.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
F.5. Changes for draft-ldap-bis-authmeth-06
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
- Combined Section 2 (Introduction) and Section 3 (Motivation) and
|
|
|
|
|
moved Introduction to section 1. All following sections numbers
|
|
|
|
|
were decremented by one as result.
|
|
|
|
|
|
|
|
|
|
- Edits to fix typos, I-D nits, etc.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Opened several new issues in Appendix G based on feedback from
|
|
|
|
|
WG. Some of these have been resolved. Others require further
|
|
|
|
|
discussion.
|
|
|
|
|
|
|
|
|
|
Section 1
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 35]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Added additional example of spoofing under threat (7).
|
|
|
|
|
|
|
|
|
|
Section 2.1
|
|
|
|
|
|
|
|
|
|
- Changed definition of "LDAP association" and added terms,
|
|
|
|
|
"connection" and "TLS connection" to bring usage in line with
|
|
|
|
|
[Protocol].
|
|
|
|
|
|
|
|
|
|
Section 4.1.6
|
|
|
|
|
|
|
|
|
|
- Clarified sentence stating that the client MUST NOT use derived
|
|
|
|
|
forms of DNS names.
|
|
|
|
|
|
|
|
|
|
Section 5.1
|
|
|
|
|
|
|
|
|
|
- Began edits to LDAP Association state table to clarify meaning
|
|
|
|
|
of various states and actions.
|
|
|
|
|
|
|
|
|
|
- Added action A9 to cover abandoned bind operation and added
|
|
|
|
|
appropriate transitions to the state transition table to
|
|
|
|
|
accommodate it.
|
|
|
|
|
|
|
|
|
|
Section 7.2
|
|
|
|
|
|
|
|
|
|
- Replaced first paragraph to clarify that the "DIGEST-MD5" SASL
|
|
|
|
|
mechanism is required to implement.
|
|
|
|
|
|
|
|
|
|
Section 9
|
|
|
|
|
|
|
|
|
|
- Rewrote the section to make the advice more applicable over the
|
|
|
|
|
long term, i.e. more "timeless." The intent of content in the
|
|
|
|
|
original section was preserved.
|
|
|
|
|
|
|
|
|
|
Section 10
|
|
|
|
|
|
|
|
|
|
- Added a clarifying example to the consideration regarding misuse
|
|
|
|
|
of unauthenticated access.
|
|
|
|
|
|
|
|
|
|
F.6. Changes for draft-ldap-bis-authmeth-07
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
- Updated external and internal references to accommodate changes
|
|
|
|
|
in recent drafts.
|
|
|
|
|
|
|
|
|
|
- Opened several new issues in Appendix G based on feedback from
|
|
|
|
|
WG. Some of these have been resolved. Others require further
|
|
|
|
|
discussion.
|
|
|
|
|
|
|
|
|
|
Section 3
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
- Rewrote much of section 3.3 to meet the SASL profile
|
|
|
|
|
requirements of draft-ietf-sasl-rfc2222bis-xx.txt section 5.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 36]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Changed treatement of SASL ANONYMOUS and PLAIN mechanisms to
|
|
|
|
|
bring in line with WG consensus.
|
|
|
|
|
|
|
|
|
|
Section 4
|
|
|
|
|
|
|
|
|
|
- Note to implementers in section 4.1.1 based on operational
|
|
|
|
|
experience.
|
|
|
|
|
|
|
|
|
|
- Clarification on client continuing by performing a Start TLS
|
|
|
|
|
with TLS already established in section 4.1.4.
|
|
|
|
|
|
|
|
|
|
- Moved verification of mapping of client's authentication ID to
|
|
|
|
|
asserted authorization ID to apply only to explicit assertion.
|
|
|
|
|
The local policy in place for implicit assertion is adequate.
|
|
|
|
|
|
|
|
|
|
Section 7
|
|
|
|
|
|
|
|
|
|
- Removed most of section 7.2 as the information is now covered
|
|
|
|
|
adequately via the new SASL profile in section 3.3. Added note
|
|
|
|
|
to implementors regarding the treatment of username and realm
|
|
|
|
|
values in DIGEST-MD5.
|
|
|
|
|
|
|
|
|
|
- Section 7.3. Minor clarifications in wording.
|
|
|
|
|
|
|
|
|
|
- Section 7.3.1. Clarification that a match of the presented value
|
|
|
|
|
to any member of the set of stored passwords constitutes a
|
|
|
|
|
successful authentication.
|
|
|
|
|
|
|
|
|
|
F.6. Changes for draft-ldap-bis-authmeth-08
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
- Changed usage from LDAPv3 to LDAP for usage consistency across
|
|
|
|
|
LDAP technical specification.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Fixed a number of usage nits for consistency and to bring doc in
|
|
|
|
|
conformance with publication guidelines.
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
|
|
|
|
|
- Significant cleanup and rewording of abstract based on WG
|
|
|
|
|
feedback.
|
|
|
|
|
|
|
|
|
|
Section 2.1
|
|
|
|
|
|
|
|
|
|
- New definition of user.
|
|
|
|
|
|
|
|
|
|
Section 3
|
|
|
|
|
|
|
|
|
|
- Added 1.5 sentences at end of introductory paragraph indicating
|
|
|
|
|
the effect of the Bind op on the LDAP association.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 37]
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Section 3.1
|
|
|
|
|
|
|
|
|
|
- Retitled section and clarified wording
|
|
|
|
|
|
|
|
|
|
Section 3.2
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Clarified that simple authentication choice provides three types
|
|
|
|
|
of authentication: anonymous, unauthenticated, and simple
|
|
|
|
|
password.
|
|
|
|
|
|
|
|
|
|
Section 3.3.3
|
|
|
|
|
|
|
|
|
|
- New wording clarifying when negotiated security mechanisms take
|
|
|
|
|
effect.
|
|
|
|
|
|
|
|
|
|
Section 3.3.5
|
|
|
|
|
|
|
|
|
|
- Changed requirement to discard information about server fetched
|
2003-12-18 08:36:45 +08:00
|
|
|
|
prior to SASL negotiation from MUST to SHOULD to allow for
|
2003-12-07 15:50:23 +08:00
|
|
|
|
information obtained through secure mechanisms.
|
|
|
|
|
|
|
|
|
|
Section 3.3.6
|
|
|
|
|
|
|
|
|
|
- Simplified wording of first paragraph based on suggestion from
|
|
|
|
|
WG.
|
|
|
|
|
|
|
|
|
|
Section 3.4
|
|
|
|
|
|
|
|
|
|
- Minor clarifications in wording.
|
|
|
|
|
|
|
|
|
|
Section 3.4.1
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
- Minor clarifications in wording in first sentence.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- Explicitly called out that the DN value in the dnAuthzID form is
|
|
|
|
|
to be matched using DN matching rules.
|
|
|
|
|
- Called out that the uAuthzID MUST be prepared using SASLprep
|
|
|
|
|
rules before being compared.
|
|
|
|
|
- Clarified requirement on assuming global uniqueness by changing
|
|
|
|
|
a "generally... MUST" wording to "SHOULD".
|
|
|
|
|
|
|
|
|
|
Section 4.1.1
|
|
|
|
|
|
|
|
|
|
- Simplified wording describing conditions when Start TLS cannot
|
|
|
|
|
be sent.
|
|
|
|
|
- Simplified wording in note to implementers regarding race
|
|
|
|
|
condition with outstanding LDAP operations on connection.
|
|
|
|
|
|
|
|
|
|
Section 4.1.5
|
|
|
|
|
|
|
|
|
|
- Removed section and moved relevant text to section 4.2.2.
|
|
|
|
|
|
|
|
|
|
Section 4.1.6
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
- Renumbered to 4.1.5.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 38]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
- Updated server identity check rules for server's name based on
|
|
|
|
|
WG list discussion.
|
|
|
|
|
|
|
|
|
|
Section 4.1.7
|
|
|
|
|
|
|
|
|
|
- Renumbered to 4.1.6
|
|
|
|
|
- Changed requirement to discard information about server fetched
|
|
|
|
|
prior to TLS negotion from MUST to SHOULD to allow for
|
|
|
|
|
information obtained through secure mechanisms.
|
|
|
|
|
|
|
|
|
|
Section 6.1
|
|
|
|
|
|
|
|
|
|
- Clarified wording.
|
|
|
|
|
- Added definition of anonymous and unauthenticated binds.
|
|
|
|
|
|
|
|
|
|
Section 10
|
|
|
|
|
|
|
|
|
|
- Added security consideration (moved from elsewhere) discouraging
|
|
|
|
|
use of cleartext passwords on unprotected communication
|
|
|
|
|
channels.
|
|
|
|
|
|
|
|
|
|
Section 11
|
|
|
|
|
|
|
|
|
|
- Added an IANA consideration to update GSSAPI service name
|
|
|
|
|
registry to point to [Roadmap] and [Authmeth]
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
F.7. Changes for draft-ldap-bis-authmeth-09
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
|
|
|
|
- Updated section references within document
|
|
|
|
|
- Changed reference tags to match other docs in LDAP TS
|
|
|
|
|
- Used non-quoted names for all SAL mechanisms
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
|
|
|
|
|
- Inspected keyword usage and removed several improper usages.
|
|
|
|
|
|
|
|
|
|
- Removed sentence saying DIGEST-MD5 is LDAP's mandatory-to-
|
|
|
|
|
implement mechanism. This is covered elsewhere in document.
|
|
|
|
|
|
|
|
|
|
- Moved section 5, authentication state table, of -08 draft to
|
|
|
|
|
section 8 of -09 and completely rewrote it.
|
|
|
|
|
|
|
|
|
|
Section 1
|
|
|
|
|
|
|
|
|
|
- Reworded sentence beginning, "It is also desireable to allow
|
|
|
|
|
authentication methods to carry identities based on existing<6E>
|
|
|
|
|
non-LDAP DN<44>forms..."
|
|
|
|
|
- Clarified relationship of this document to other documents in
|
|
|
|
|
the LDAP TS.
|
|
|
|
|
|
|
|
|
|
Section 3.3.5
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 39]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Removed paragraph beginning,"If the client is configured to
|
|
|
|
|
support multiple SASL mechanisms..." because the actions
|
|
|
|
|
specified in the paragraph do not provide the protections
|
|
|
|
|
indicated. Added a new paragraph indicating that clients and
|
|
|
|
|
server should allow specification of acceptable mechanisms and
|
|
|
|
|
only allow those mechanisms to be used.
|
|
|
|
|
|
|
|
|
|
- Clarified independent behavior when TLS and SASL security layers
|
|
|
|
|
are both in force (e.g. one being removed doesn't affect the
|
|
|
|
|
other).
|
|
|
|
|
|
|
|
|
|
Section 3.3.6
|
|
|
|
|
|
|
|
|
|
- Moved most of section 4.2.2, Client Assertion of Authorization
|
|
|
|
|
Identity, to sections 3.3.6, 3.3.6.1, and 3.3.6.2.
|
|
|
|
|
|
|
|
|
|
Section 3.3.6.4
|
|
|
|
|
|
|
|
|
|
- Moved some normative comments into text body.
|
|
|
|
|
|
|
|
|
|
Section 4.1.2
|
|
|
|
|
|
|
|
|
|
- Non success resultCode values are valid if server is *unwilling*
|
|
|
|
|
or unable to negotiate TLS.
|
|
|
|
|
|
|
|
|
|
Section 4.2.1
|
|
|
|
|
|
|
|
|
|
- Rewrote entire section based on WG feedback.
|
|
|
|
|
|
|
|
|
|
Section 4.2.2
|
|
|
|
|
|
|
|
|
|
- Moved most of this section to 3.3.6 for better document flow.
|
|
|
|
|
|
|
|
|
|
Section 4.2.3
|
|
|
|
|
|
|
|
|
|
- Rewrote entire section based on WG feedback.
|
|
|
|
|
|
|
|
|
|
Section 5.1
|
|
|
|
|
|
|
|
|
|
- Moved imperative language regarding unauthenticated access from
|
|
|
|
|
security considerations to here.
|
|
|
|
|
|
|
|
|
|
Section 6
|
|
|
|
|
|
|
|
|
|
- Added several paragraphs regarding the risks of transmitting
|
|
|
|
|
passwords in the clear and requiring server implementations to
|
|
|
|
|
provide a specific configuration that reduces these risks.
|
|
|
|
|
|
|
|
|
|
Section 6.2
|
|
|
|
|
|
|
|
|
|
- Added sentence describing protections provided by DIGEST-MD5
|
|
|
|
|
method.
|
|
|
|
|
- Changed DNs in exmple to be dc=example,dc=com.
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 40]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Section 10
|
|
|
|
|
|
|
|
|
|
- Updated consideration on use of cleartext passwords to include
|
|
|
|
|
other unprotected authentication credentials
|
|
|
|
|
- Substantial rework of consideration on misuse of unauthenticated
|
|
|
|
|
bind.
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Appendix G. Issues to be Resolved
|
|
|
|
|
|
|
|
|
|
This appendix lists open questions and issues that need to be
|
|
|
|
|
resolved before work on this document is deemed complete.
|
|
|
|
|
|
|
|
|
|
G.1.
|
|
|
|
|
|
|
|
|
|
Section 1 lists 6 security mechanisms that can be used by LDAP
|
|
|
|
|
servers. I'm not sure what mechanism 5, "Resource limitation by
|
|
|
|
|
means of administrative limits on service controls" means.
|
|
|
|
|
|
|
|
|
|
Status: resolved. Changed wording to "administrative service limits"
|
|
|
|
|
to clarify meaning.
|
|
|
|
|
|
|
|
|
|
G.2.
|
|
|
|
|
|
|
|
|
|
Section 2 paragraph 1 defines the term, "sensitive." Do we want to
|
|
|
|
|
bring this term and other security-related terms in alignment with
|
|
|
|
|
usage with the IETF security glossary (RFC 2828)?
|
|
|
|
|
|
|
|
|
|
Status: resolved. WG input at IETF 51 was that we should do this, so
|
|
|
|
|
the appropriate changes have been made.
|
|
|
|
|
|
|
|
|
|
G.3.
|
|
|
|
|
|
|
|
|
|
Section 2, deployment scenario 2: What is meant by the term "secure
|
|
|
|
|
authentication function?"
|
|
|
|
|
|
|
|
|
|
Status: resolved. Based on the idea that a "secure authentication
|
|
|
|
|
function" could be provided by TLS, I changed the wording to require
|
|
|
|
|
data confidentiality for sensitive authentication information and
|
|
|
|
|
data integrity for all authentication information.
|
|
|
|
|
|
|
|
|
|
G.4.
|
|
|
|
|
|
|
|
|
|
Section 3, deployment scenario 3: What is meant by the phrase,
|
|
|
|
|
"directory data is authenticated by the server?"
|
|
|
|
|
|
|
|
|
|
Status: resolved. I interpreted this to mean the ability to ensure
|
|
|
|
|
the identity of the directory server and the integrity of the data
|
|
|
|
|
sent from that server to the client, and explictly stated such.
|
|
|
|
|
|
|
|
|
|
G.5.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 41]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Section 4 paragraph 3: What is meant by the phrase, "this means that
|
|
|
|
|
either this data is useless for faking authentication (like the Unix
|
|
|
|
|
"/etc/passwd" file format used to be)?"
|
|
|
|
|
|
|
|
|
|
Status: resolved. Discussion at IETF 52 along with discussions with
|
|
|
|
|
the original authors of this material have convinced us that this
|
|
|
|
|
reference is simply too arcane to be left in place. In -03 the text
|
|
|
|
|
has been modified to focus on the need to either update password
|
|
|
|
|
information in a protected fashion outside of the protocol or to
|
|
|
|
|
update it in session well protected against snooping, and the
|
|
|
|
|
reference to /etc/passwd has been removed.
|
|
|
|
|
|
|
|
|
|
G.6.
|
|
|
|
|
|
|
|
|
|
Section 4 paragraph 7 begins: "For a directory needing session
|
|
|
|
|
protection..." Is this referring to data confidentiality or data
|
|
|
|
|
integrity or both?
|
|
|
|
|
|
|
|
|
|
Status: resolved. Changed wording to say, "For a directory needing
|
|
|
|
|
data security (both data integrity and data confidentiality)..."
|
|
|
|
|
|
|
|
|
|
G.7.
|
|
|
|
|
|
|
|
|
|
Section 4 paragraph 8 indicates that "information about the server
|
2003-12-18 08:36:45 +08:00
|
|
|
|
fetched prior to the TLS negotiation" must be discarded. Do we want
|
|
|
|
|
to explicitly state that this applies to information fetched prior
|
|
|
|
|
to the *completion* of the TLS negotiation or is this going too far?
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Status: resolved. Based on comments in the IETF 51 LDAPBIS WG
|
|
|
|
|
meeting, this has been changed to explicitly state, "fetched prior
|
|
|
|
|
to the initiation of the TLS negotiation..."
|
|
|
|
|
|
|
|
|
|
G.8.
|
|
|
|
|
|
|
|
|
|
Section 4 paragraph 9 indicates that clients SHOULD check the
|
|
|
|
|
supportedSASLMechanisms list both before and after a SASL security
|
|
|
|
|
layer is negotiated to ensure that they are using the best available
|
|
|
|
|
security mechanism supported mutually by the client and server. A
|
|
|
|
|
note at the end of the paragraph indicates that this is a SHOULD
|
|
|
|
|
since there are environments where the client might get a list of
|
|
|
|
|
supported SASL mechanisms from a different trusted source.
|
|
|
|
|
|
|
|
|
|
I wonder if the intent of this could be restated more plainly using
|
|
|
|
|
one of these two approaches (I've paraphrased for the sake of
|
|
|
|
|
brevity):
|
|
|
|
|
|
|
|
|
|
Approach 1: Clients SHOULD check the supportedSASLMechanisms
|
|
|
|
|
list both before and after SASL negotiation or clients SHOULD
|
|
|
|
|
use a different trusted source to determine available supported
|
|
|
|
|
SASL mechanisms.
|
|
|
|
|
|
|
|
|
|
Approach 2: Clients MUST check the supportedSASLMechanisms list
|
|
|
|
|
both before and after SASL negotiation UNLESS they use a
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 42]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
different trusted source to determine available supported SASL
|
|
|
|
|
mechanisms.
|
|
|
|
|
|
|
|
|
|
Status: resolved. WG input at IETF 51 was that Approach 1 was
|
|
|
|
|
probably best. I ended up keeping the basic structure similar to the
|
|
|
|
|
original to meet this intent.
|
|
|
|
|
|
|
|
|
|
G.9.
|
|
|
|
|
|
|
|
|
|
Section 6.3.1 states: "DSAs that map the DN sent in the bind request
|
|
|
|
|
to a directory entry with a userPassword attribute will... compare
|
|
|
|
|
[each value in the named user's entry]... with the presented
|
|
|
|
|
password." This implies that this applies only to user entries with
|
|
|
|
|
userPassword attributes. What about other types of entries that
|
|
|
|
|
might allow passwords and might store in the password information in
|
|
|
|
|
other attributes? Do we want to make this text more general?
|
|
|
|
|
|
|
|
|
|
Status: resolved in -03 draft by generalizing section 8.3.1 to not
|
|
|
|
|
refer to any specific password attribute and by removing the term
|
|
|
|
|
"user" in referring to the directory entry specified by the DN in
|
|
|
|
|
the bind request.
|
|
|
|
|
|
|
|
|
|
G.10 userPassword and simple bind
|
|
|
|
|
|
|
|
|
|
We need to be sure that we don't require userPassword to be the only
|
|
|
|
|
attribute used for authenticating via simple bind. (See 2251 sec 4.2
|
|
|
|
|
and authmeth 6.3.1. Work with Jim Sermersheim on resolution to this.
|
|
|
|
|
On publication state something like: "This is the specific
|
|
|
|
|
implementation of what we discussed in our general reorg
|
|
|
|
|
conversation on the list." (Source: Kurt Zeilenga)
|
|
|
|
|
|
|
|
|
|
Status: resolved in -03 draft by generalizing section 8.3.1 to not
|
|
|
|
|
refer to any specific password attribute and by removing the term
|
|
|
|
|
"user" in referring to the directory entry specified by the DN in
|
|
|
|
|
the bind request.
|
|
|
|
|
|
|
|
|
|
G.11. Meaning of LDAP Association
|
|
|
|
|
|
|
|
|
|
The original RFC 2830 uses the term "LDAP association" in describing
|
|
|
|
|
a connection between an LDAP client and server regardless of the
|
|
|
|
|
state of TLS on that connection. This term needs to be defined or
|
|
|
|
|
possibly changed.
|
|
|
|
|
|
|
|
|
|
Status: resolved. at IETF 51 Bob Morgan indicated that the term
|
|
|
|
|
"LDAP association" was intended to distinguish the LDAP-level
|
|
|
|
|
connection from the TLS-level connection. This still needs to be
|
|
|
|
|
clarified somewhere in the draft. Added "LDAP association" to a
|
|
|
|
|
glossary in section 1.
|
|
|
|
|
|
|
|
|
|
G.12. Is DIGEST-MD5 mandatory for all implementations?
|
|
|
|
|
|
|
|
|
|
Reading 2829bis I think DIGEST-MD5 is mandatory ONLY IF your server
|
|
|
|
|
supports password based authentication...but the following makes it
|
|
|
|
|
sound mandatory to provide BOTH password authentication AND DIGEST-
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 43]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
MD5:
|
|
|
|
|
|
|
|
|
|
"6.2. Digest authentication
|
|
|
|
|
|
|
|
|
|
LDAP implementations MUST support authentication with a password
|
|
|
|
|
using the DIGEST-MD5 SASL mechanism for password protection, as
|
|
|
|
|
defined in section 6.1."
|
|
|
|
|
|
|
|
|
|
The thing is for acl it would be nice (though not critical) to be
|
|
|
|
|
able to default the required authentication level for a subject to a
|
|
|
|
|
single "fairly secure" mechanism--if there is no such mandatory
|
|
|
|
|
authentication scheme then you cannot do that. (Source: Rob Byrne)
|
|
|
|
|
|
|
|
|
|
Status: resolved. -00 version of the draft added a sentence at the
|
|
|
|
|
beginning of section 8.2 stating that LDAP server implementations
|
|
|
|
|
must support this method.
|
|
|
|
|
|
|
|
|
|
G.13. Ordering of authentication levels requested
|
|
|
|
|
|
|
|
|
|
Again on the subject of authentication level, is it possible to
|
|
|
|
|
define an ordering on authentication levels which defines their
|
|
|
|
|
relative "strengths" ? This would be useful in acl as you could say
|
|
|
|
|
things like"a given aci grants access to a given subject at this
|
|
|
|
|
authentication level AND ABOVE". David Chadwick raised this before
|
|
|
|
|
in the context of denying access to a subject at a given
|
|
|
|
|
authentication level, in which case he wanted to express "deny
|
|
|
|
|
access to this subject at this authentication level AND TO ALL
|
|
|
|
|
IDENTITIES AUTHENTICATED BELOW THAT LEVEL". (Source: Rob Byrne)
|
|
|
|
|
|
|
|
|
|
Status: out of scope. This is outside the scope of this document and
|
|
|
|
|
will not be addressed.
|
|
|
|
|
|
|
|
|
|
G.14. Document vulnerabilities of various mechanisms
|
|
|
|
|
|
|
|
|
|
While I'm here...in 2829, I think it would be good to have some
|
|
|
|
|
comments or explicit reference to a place where the security
|
|
|
|
|
properties of the particular mandatory authentication schemes are
|
|
|
|
|
outlined. When I say "security properties" I mean stuff like "This
|
|
|
|
|
scheme is vulnerable to such and such attacks, is only safe if the
|
|
|
|
|
key size is > 50, this hash is widely considered the best, etc...".
|
|
|
|
|
I think an LDAP implementor is likely to be interested in that
|
|
|
|
|
information, without having to wade through the security RFCs.
|
|
|
|
|
(Source: Rob Byrne)
|
|
|
|
|
|
|
|
|
|
Status: out of scope. This is outside the scope of this document and
|
|
|
|
|
will not be addressed.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
G.15. Include a Start TLS state transition table
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
The pictoral representation it is nominally based on is here (URL
|
|
|
|
|
possibly folded):
|
|
|
|
|
|
|
|
|
|
http://www.stanford.edu/~hodges/doc/LDAPAssociationStateDiagram-
|
|
|
|
|
1999-12-14.html
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 44]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
(Source: Jeff Hodges)
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
Table provided in -03. Review of content for accuracy in -04.
|
|
|
|
|
Additional review is needed, plus comments from WG members indicate
|
|
|
|
|
that additional description of each state's meaning would be
|
|
|
|
|
helpful.
|
|
|
|
|
|
|
|
|
|
Did a significant revision of state transition table in -09. Changes
|
|
|
|
|
were based on suggestions from WG and greatly simplified overall
|
|
|
|
|
table.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
G.16. Empty sasl credentials question
|
|
|
|
|
|
|
|
|
|
I spent some more time looking microscopically at ldap-auth-methods
|
|
|
|
|
and ldap-ext-tls drafts. The drafts say that the credential must
|
|
|
|
|
have the form dn:xxx or u:xxx or be absent, and although they don't
|
|
|
|
|
say what to do in the case of an empty octet string I would say that
|
|
|
|
|
we could send protocolError (claim it is a bad PDU).
|
|
|
|
|
|
|
|
|
|
There is still the question of what to do if the credential is 'dn:'
|
|
|
|
|
(or 'u:') followed by the empty string. (Source: ariel@columbia.edu
|
|
|
|
|
via Jeff Hodges)
|
|
|
|
|
|
|
|
|
|
Status: resolved. Kurt Zeilenga indicated during ldapbis WG
|
|
|
|
|
discussion at IETF 52 that SASL AuthzID credentials empty and absent
|
|
|
|
|
are equivalent in the latest SASL ID. This resolves the issue.
|
|
|
|
|
|
|
|
|
|
G.17. Hostname check from MUST to SHOULD?
|
|
|
|
|
|
|
|
|
|
I am uneasy about the hostname check. My experience from PKI with
|
|
|
|
|
HTTP probably is a contributing factor; we have people using the
|
|
|
|
|
short hostname to get to a server which naturally has the FQDN in
|
|
|
|
|
the certificate, no end of problems. I have a certificate on my
|
|
|
|
|
laptop which has the FQDN for the casse when the system is on our
|
|
|
|
|
Columbia network with a fixed IP; when I dial in however, I have
|
|
|
|
|
some horrible dialup name, and using the local https server becomes
|
|
|
|
|
annoying. Issuing a certificate in the name 'localhost' is not a
|
|
|
|
|
solution! Wildcard match does not solve this problem. For these
|
|
|
|
|
reasons I am inclined to argue for 'SHOULD' instead of
|
|
|
|
|
'MUST' in paragraph...
|
|
|
|
|
|
|
|
|
|
Also, The hostname check against the name in the certificate is a
|
|
|
|
|
very weak means of preventing man-in-the-middle attacks; the proper
|
|
|
|
|
solution is not here yet (SecureDNS or some equivalent). Faking out
|
|
|
|
|
DNS is not so hard, and we see this sort of thing in the press on a
|
|
|
|
|
pretty regular basis, where site A hijacks the DNS server for site B
|
|
|
|
|
and gets all their requests. Some mention of this should be made in
|
|
|
|
|
the draft. (Source: ariel@columbia.edu via Jeff Hodges)
|
|
|
|
|
|
|
|
|
|
Status: resolved. Based on discussion at IETF 52 ldapbis WG meeting,
|
|
|
|
|
this text will stand as it is. The check is a MUST, but the behavior
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 45]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
afterward is a SHOULD. This gives server implementations the room to
|
|
|
|
|
maneuver as needed.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
G.18. Must SASL DN exist in the directory?
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
If the 'dn:' form of sasl creds is used, is it the intention of the
|
|
|
|
|
draft(ers) that this DN must exist in the directory and the client
|
|
|
|
|
will have the privileges associated with that entry, or can the
|
|
|
|
|
server map the sasl DN to perhaps some other DN in the directory,
|
|
|
|
|
in an implementation-dependent fashion?
|
|
|
|
|
|
|
|
|
|
We already know that if *no* sasl credentials are presented, the DN
|
|
|
|
|
or altname in the client certificate may be mapped to a DN in an
|
|
|
|
|
implementation-dependent fashion, or indeed to something not in the
|
|
|
|
|
directory at all. (Right?) (Source: ariel@columbia.edu via Jeff
|
|
|
|
|
Hodges)
|
|
|
|
|
|
|
|
|
|
Status: resolved. (11/12/02)Based on my research I propose that the
|
|
|
|
|
DN MUST exist in the directory when the DN form of sasl creds is
|
|
|
|
|
used. I have made this proposal to the ldapbis mailing list.
|
|
|
|
|
|
|
|
|
|
(11/21/02) Feedback from mailing list has proposed removing this
|
|
|
|
|
paragraph entirely because (1) explicit assertion of authorization
|
|
|
|
|
identity should only be done when proxying (2) mapping of the
|
|
|
|
|
asserted authorization identity is implementation specific and
|
|
|
|
|
policy driven [SASL] section 4.2, and (3) keeping this paragraph is
|
|
|
|
|
not required for interoperability.
|
|
|
|
|
|
|
|
|
|
G.19. DN used in conjunction with SASL mechanism
|
|
|
|
|
|
|
|
|
|
We need to specify whether the DN field in Bind operation can/cannot
|
|
|
|
|
be used when SASL mechanism is specified. (source: RL Bob)
|
|
|
|
|
|
|
|
|
|
Status: resolved. (-03) Based on ldapbis WG discussion at IETF52 two
|
|
|
|
|
sentences were added to section 4.3 indicating that clients SHOULD
|
|
|
|
|
NOT send a DN value when binding with the sasl choice and servers
|
|
|
|
|
SHALL ignore any value received in this circumstance. During edits
|
|
|
|
|
for -04 version of draft it was noted that [Protocol] section 4.2
|
|
|
|
|
conflicts with this draft. The editor of [Protocol] has been
|
|
|
|
|
notified of the discrepancy, and they have been handled.
|
|
|
|
|
|
|
|
|
|
G.20. Bind states
|
|
|
|
|
|
|
|
|
|
Differences between unauthenticated and anonymous. There are four
|
|
|
|
|
states you can get into. One is completely undefined (this is now
|
|
|
|
|
explicitly called out in [Protocol]). This text needs to be moved
|
|
|
|
|
from [Protocol] to this draft. (source: Jim Sermersheim)
|
|
|
|
|
|
|
|
|
|
Status: Resolved. There are four states: (1) no name, no password
|
|
|
|
|
(anon); (2) name, no password (anon); (3) no name, password
|
|
|
|
|
(invalid); (4) name, password (simple bind). States 1, 2, and 4 are
|
|
|
|
|
called out in [AuthMeth]. State 3 is called out in [Protocol]; this
|
|
|
|
|
seems appropriate based on review of alternatives.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 46]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
G.21. Misuse of unauthenticated access
|
|
|
|
|
|
|
|
|
|
Add a security consideration that operational experience shows that
|
|
|
|
|
clients can misuse unauthenticated access (simple bind with name but
|
|
|
|
|
no password). Servers SHOULD by default reject authentication
|
|
|
|
|
requests that have a DN with an empty password with an error of
|
|
|
|
|
invalidCredentials. (Source: Kurt Zeilenga and Chris Newman (Sun))
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Status: Resolved. Added to security considerations in -03.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
G.22. Need to move Start TLS protocol information to [Protocol]
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
Status: Resolved. Removed Sections 5.1, 5.2, and 5.4 for -04 and
|
|
|
|
|
they are [Protocol] -11.
|
|
|
|
|
|
|
|
|
|
G.23. Split Normative and Non-normative references into separate
|
|
|
|
|
sections.
|
|
|
|
|
|
|
|
|
|
Status: Resolved. Changes made in -04
|
|
|
|
|
|
|
|
|
|
G.24. What is the authentication state if a Bind operation is
|
|
|
|
|
abandoned?
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
(3/24/03) This following text appears in section 4.2.1 of [Protocol]
|
|
|
|
|
revision -13 to cover what happens if a bind operation is abandoned:
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
A failed or abandoned Bind Operation has the effect of leaving the
|
|
|
|
|
connection in an anonymous state. To arrive at a known
|
|
|
|
|
authentication state after abandoning a bind operation, clients may
|
|
|
|
|
unbind, rebind, or make use of the BindResponse.
|
|
|
|
|
|
|
|
|
|
(6/28/03): The state table in section 6 of [AuthMeth] has been
|
|
|
|
|
updated to reflect this wording.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
G.25. Difference between checking server hostname and server's
|
|
|
|
|
canonical DNS name in Server Identity Check?
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Section 4.1.6: I now understand the intent of the check (prevent
|
2003-06-01 06:47:07 +08:00
|
|
|
|
man-in-the-middle attacks). But what is the subtle difference
|
|
|
|
|
between the "server hostname" and the "server's canonical DNS name"?
|
|
|
|
|
(Source: Tim Hahn)
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
(11/12/02) Sent suggested wording change to this paragraph to the
|
|
|
|
|
ldapbis mail list and also asked for opinion as to whether we should
|
|
|
|
|
discuss the distinction between server DNS hostname and server
|
|
|
|
|
canonical DNS hostname in [AuthMeth].
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
(11/21/02): RL Bob Morgan will provide wording that allows
|
|
|
|
|
derivations of the name that are provided securely.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 47]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
(6/28/03): posted to the WG list asking Bob or any other WG member
|
|
|
|
|
who is knowledgeable about the issues involved to help me with
|
|
|
|
|
wording or other information I can use to make this change and close
|
|
|
|
|
the work item.
|
|
|
|
|
|
|
|
|
|
(10/08/03): Based on WG list feedback, I've updated this text to
|
|
|
|
|
read what I judge to be the WG consensus, "The client MUST use the
|
|
|
|
|
server provided by the user (or other trusted entity) as the value
|
|
|
|
|
to compare against the server name as expressed in the server's
|
|
|
|
|
certificate. A hostname derived from the user input is to be
|
|
|
|
|
considered provided by the user only if derived in a secure fashion
|
|
|
|
|
(e.g., DNSSEC)."
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
G.26. Server Identity Check using servers located via SRV records
|
|
|
|
|
|
|
|
|
|
Section 4.1.6: What should be done if the server was found using SRV
|
2003-06-01 06:47:07 +08:00
|
|
|
|
records based on the "locate" draft/RFC? (Source: Tim Hahn).
|
|
|
|
|
|
|
|
|
|
Status: Resolved. Section 5 of draft-ietf-ldapext-locate-08
|
|
|
|
|
specifically calls out how the server identity should be performed
|
|
|
|
|
if the server is located using the method defined in that draft.
|
|
|
|
|
This is the right location for this information, and the coverage
|
|
|
|
|
appears to be adequate.
|
|
|
|
|
|
|
|
|
|
G.27 Inconsistency in effect of TLS closure on LDAP association.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Section 4.4.1 of authmeth -03 (section 4.1 of RFC2830) states that
|
2003-06-01 06:47:07 +08:00
|
|
|
|
TLS closure alert will leave the LDAP association intact. Contrast
|
2003-12-07 15:50:23 +08:00
|
|
|
|
this with Section 4.5.2 (section 5.2 of RFC2830) that says that the
|
2003-06-01 06:47:07 +08:00
|
|
|
|
closure of the TLS connection MUST cause the LDAP association to
|
|
|
|
|
move to an anonymous authentication.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Status: Resolved. (11/12/02) This is actually a [Protocol] issue
|
2003-06-01 06:47:07 +08:00
|
|
|
|
because these sections have now been moved to [Protocol] -11. I have
|
2003-12-07 15:50:23 +08:00
|
|
|
|
proposed the following text for Section 4.4.1 of [AuthMeth] -03
|
2003-06-01 06:47:07 +08:00
|
|
|
|
(section 4.13.3.1 of [Protocol]) to resolve this apparent
|
|
|
|
|
discrepancy:
|
|
|
|
|
|
|
|
|
|
"Either the client or server MAY terminate the TLS connection on an
|
|
|
|
|
LDAP association by sending a TLS closure alert. The LDAP
|
|
|
|
|
connection remains open for further communication after TLS closure
|
|
|
|
|
occurs although the authentication state of the LDAP connection is
|
2003-12-07 15:50:23 +08:00
|
|
|
|
affected (see [AuthMeth] section 4.2.2).
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
(11/21/02): resolution to this is expected in [Protocol] -12
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
(06/28/03): [Protocol]-15 clarifies that a TLS closure alert
|
|
|
|
|
terminates the TLS connection while leaving the LDAP connection
|
|
|
|
|
intact. The authentication state table in [AuthMeth] specifies the
|
|
|
|
|
effect on the LDAP association.
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
G.28 Ordering of external sources of authorization identities
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 48]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
Section 4.3.2 implies that external sources of authorization
|
|
|
|
|
identities other than TLS are permitted. What is the behavior when
|
|
|
|
|
two external sources of authentication credentials are available
|
|
|
|
|
(e.g. TLS and IPsec are both present (is this possible?)) and a SASL
|
|
|
|
|
EXTERNAL Bind operation is performed?
|
|
|
|
|
|
|
|
|
|
Status: resolved. 11/20/02: Resolved by Section 4.2 of [SASL] which
|
|
|
|
|
states that the decision to allow or disallow the asserted identity
|
|
|
|
|
is based on an implementation defined policy.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
G.29 Rewrite of Section 9, TLS Ciphersuites
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
This section contains anachronistic references and needs to be
|
|
|
|
|
updated/rewritten in a way that provides useful guidance for future
|
|
|
|
|
readers in a way that will transcend the passage of time.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
Status: Resolved. (6/28/03): Rewrote the section to cover the
|
|
|
|
|
general issues and considerations involved in selecting TLS
|
|
|
|
|
ciphersuites.
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
G.30 Update to Appendix A, Example Deployment Scenarios
|
|
|
|
|
|
|
|
|
|
This section needs to be updated to indicate which security
|
|
|
|
|
mechanisms and/or combinations of security mechanisms described
|
|
|
|
|
elsewhere in the document can provide the types of protections
|
|
|
|
|
suggested in this appendix.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
G.31 Use of PLAIN SASL Mechanism
|
|
|
|
|
|
|
|
|
|
At least one LDAP server implementer has found the SASL "PLAIN"
|
|
|
|
|
mechanism useful in authenticating to legacy systems that do not
|
|
|
|
|
represent authentication identities as DNs. Section 3.3.1 appears to
|
|
|
|
|
implicitly disallow the use of the SASL "PLAIN" mechanism with LDAP.
|
|
|
|
|
Should we allow the use of this mechanism? I.e. is this "SASL"
|
|
|
|
|
"PLAIN" MUST NOT be used with LDAP, or is it simply that LDAP
|
|
|
|
|
doesn't define bindings for these mechanism. If SASL "PLAIN" is
|
|
|
|
|
allowed, the following adjustments will be needed to section 3.3.1:
|
|
|
|
|
(a) change section heading, (b) remove reference to "PLAIN" in the
|
|
|
|
|
section, (c) ensure wording of last sentence regarding non-DN
|
|
|
|
|
AuthZIDs is consistent with rest of the section.
|
|
|
|
|
|
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
(6/28/03): email to WG list stating issue and asking if we should
|
|
|
|
|
remove the reference to SASL "PLAIN".
|
|
|
|
|
|
|
|
|
|
For -07 draft I've generalized the SASL profile in section 3.3 to
|
|
|
|
|
allow any SASL mechanism.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
G.32 Clarification on use of SASL mechanisms
|
|
|
|
|
|
|
|
|
|
Section 3.3.1: BTW, what _are_ the "ANONYMOUS" and "PLAIN" SASL
|
|
|
|
|
mechanisms? They are not defined in RFC2222. If you refer to other
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 49]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
SASL mechanisms than those in rfc2222, Maybe you should only list
|
|
|
|
|
which mechanisms _are_used, instead of which ones are _not. (Source:
|
|
|
|
|
Hallvard Furuseth)
|
|
|
|
|
|
|
|
|
|
I (Kurt Zeilenga) note[s] as well that the ANONYMOUS/PLAIN section
|
|
|
|
|
(4.2) should
|
|
|
|
|
be deleted. ANONYMOUS and PLAIN, like in other mechanism,
|
|
|
|
|
can be used in LDAP if a) supported and b) enabled. I note
|
|
|
|
|
that they each offer capabilities not found in their simple
|
|
|
|
|
bind equivalents (and hence are used in some deployments).
|
|
|
|
|
For example, PLAIN (over TLS) is quite useful when interacting
|
|
|
|
|
with legacy authentication subsystems. (Source: Kurt Zeilenga)
|
|
|
|
|
|
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
For -07 draft I've generalized the SASL profile in section 3.3 to
|
|
|
|
|
allow any SASL mechanism.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
G.33 Clarification on use of password protection based on AuthZID form
|
|
|
|
|
|
|
|
|
|
Section 3.3.1: "If an authorization identity of a form different
|
|
|
|
|
from a DN is requested by the client, a mechanism that protects the
|
|
|
|
|
password in transit SHOULD be used." What has that to do with DNs?
|
|
|
|
|
A mechanism that protects the password in transit should be used in
|
|
|
|
|
any case, shouldn't it?
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
In -08 draft this text was removed. There is already a general
|
|
|
|
|
security consideration that covers this issue.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
G.34 Clarification on use of matching rules in Server Identity Check
|
|
|
|
|
|
|
|
|
|
The text in section 4.1.6 isn't explicit on whether all rules apply
|
|
|
|
|
to both CN and dNSName values. The text should be clear as to which
|
|
|
|
|
rules apply to which values.... in particular, the wildcard
|
|
|
|
|
rules. (Source: Kurt Zeilenga)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
G.35 Requested Additions to Security Considerations
|
|
|
|
|
|
|
|
|
|
Requested to mention hostile servers which the user might have been
|
|
|
|
|
fooled to into contacting. Which mechanisms that are standardized by
|
|
|
|
|
the LDAP standard do/do not disclose the user's password to the
|
|
|
|
|
server? (Or to servers doing man-in-the-middle attack? Or is that a
|
|
|
|
|
stupid question?)
|
|
|
|
|
|
|
|
|
|
Requested to mention denial of service attacks.
|
|
|
|
|
|
|
|
|
|
Requested list of methods that need/don't need the server to know
|
|
|
|
|
the user's plaintext password. (I say 'know' instead of 'store'
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 50]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
because it could still store the password encrypted, but in a way
|
|
|
|
|
which it knows how to decrypt.)
|
|
|
|
|
|
|
|
|
|
(Source: Hallvard Furuseth)
|
|
|
|
|
|
|
|
|
|
G.36 Add reference to definition of DIGEST-MD5
|
|
|
|
|
|
|
|
|
|
Need a reference to the definition of DIGEST-MD5 SASL mechanism in
|
|
|
|
|
section 7.2 (Source: Hallvard Furuseth)
|
|
|
|
|
|
|
|
|
|
Status: Resolved. A reference to to the DIGEST-MD5 SASL mechanism,
|
|
|
|
|
[DigestAuth], is included in the -07 revision.
|
|
|
|
|
|
|
|
|
|
G.37 Clarification on procedure for certificate-based authentication
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8.1. Certificate-based authentication with TLS states: "Following
|
|
|
|
|
the successful completion of TLS negotiation, the client will send
|
|
|
|
|
an LDAP bind request with the SASL "EXTERNAL" mechanism." Is this
|
|
|
|
|
immediately following, or just some time later? Should the wording,
|
|
|
|
|
"the client will send..." actually read, "the client MUST send..."?
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
G.38 Effect of Start TLS on authentication state
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
Should the server drop all knowledge of connection, i.e. return to
|
2003-12-18 08:36:45 +08:00
|
|
|
|
anonymous state, if it gets a Start TLS request on a connection that
|
2003-12-07 15:50:23 +08:00
|
|
|
|
has successfully bound using the simple method?
|
|
|
|
|
|
|
|
|
|
G.39 Be sure that there is a consideration in [SCHEMA] that discusses
|
|
|
|
|
multiple password values in userPassword
|
|
|
|
|
|
|
|
|
|
Allowing multiple values obviously does raise a number of security
|
|
|
|
|
considerations and these need to be discussed in the document.
|
|
|
|
|
|
|
|
|
|
Certainly applications which intend to replace the userPassword with
|
|
|
|
|
new value(s) should use modify/replaceValues (or
|
|
|
|
|
modify/deleteAttribute+addAttribute). Additionally, server
|
|
|
|
|
implementations should be encouraged to provide administrative
|
|
|
|
|
controls which, if enabled, restrict userPassword to one value.
|
|
|
|
|
|
|
|
|
|
G.40. Clarify need to verify mapping between authentication identity
|
|
|
|
|
and resulting authorization identity on implicit assertion of AuthZID.
|
|
|
|
|
|
|
|
|
|
4.2.2.3. Error Conditions
|
|
|
|
|
|
|
|
|
|
"For either form of assertion, the server MUST verify that the
|
|
|
|
|
client's authentication identity as supplied in its TLS credentials
|
|
|
|
|
is permitted to be mapped to the asserted authorization identity."
|
|
|
|
|
|
|
|
|
|
This makes sense for the explicit assertion case, but seems to be
|
|
|
|
|
ambiguous for the implicit case.
|
|
|
|
|
IMHO, the mapping can be done as two steps:
|
|
|
|
|
a). deriving LDAP authentication identity from TLS credentials; If t
|
|
|
|
|
this steps fails, EXTERNAL mechanism returns failure.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 51]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
b). verify that the authorization identity is allowed for the
|
|
|
|
|
derived authentication identity. This is always "noop" for the
|
|
|
|
|
implicit case.
|
|
|
|
|
I am not sure that the text is saying this.
|
|
|
|
|
(Source: Alexey Melnikov email 8/1/2003 5:30:43 PM)
|
|
|
|
|
|
|
|
|
|
Status: Resolved in -07. After reading the comments and the text of
|
|
|
|
|
the draft, I believe that this should be clarified. The local policy
|
|
|
|
|
used to map the AuthNID to the AuthZID in the implicit case is
|
|
|
|
|
sufficient and that no additional verification is useful or needed.
|
|
|
|
|
This text has been moved to apply only to the explicit assertion
|
|
|
|
|
case.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
G.41. Section 7.2 contains unnecessary and misleading detail.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
" I am not sure why this section is required in the document.
|
|
|
|
|
DIGEST-MD5 is defined in a separate document and there should be
|
|
|
|
|
nothing magical about its usage in LDAP. If DIGEST-MD5 description
|
|
|
|
|
creates confusion for LDAP implementors, let's fix the DIGEST-MD5
|
|
|
|
|
document! Also, this section tries to redefine DIGEST-MD5 behavior,
|
|
|
|
|
which is explicitly prohibited by the SASL specification."
|
|
|
|
|
(Source: Alexey Melnikov: email 8/1/2003 5:30:43 PM)
|
|
|
|
|
|
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
After reading the comments and the text of the draft plus the
|
|
|
|
|
related text in draft-ietf-sasl-rfc2831bis-02.txt plus
|
|
|
|
|
http://www.ietf.org/internet-drafts/draft-ietf-sasl-rfc2222bis-
|
|
|
|
|
02.txt, I am inclined to agree with Alexey. In -07 I rewrote section
|
|
|
|
|
3.3 (SASL mechanisms) to match the profiling requirements
|
|
|
|
|
rfc2831bis. I then dramatically reduced the material in section 7.2
|
|
|
|
|
to a bare minimum and let the SASL profile stand on its own.
|
|
|
|
|
|
|
|
|
|
G.42. Does change for G.41 cause interoperability issue?
|
|
|
|
|
|
|
|
|
|
There is one issue with the way the authmeth draft is currently
|
|
|
|
|
written that changes the SASL DIGEST-MD5 behavior on the way the
|
|
|
|
|
server responds with the subsequent authentication information .
|
|
|
|
|
This has been documented in this fashion since RFC 2829 (section
|
|
|
|
|
6.1) was originally published and may cause an interoperability
|
|
|
|
|
issue at this point if it changed to follow the DIGEST-MD5 spec (as
|
|
|
|
|
it was in -07 of AuthMeth). Take this issue to the list.
|
|
|
|
|
|
|
|
|
|
Status: Resolved
|
|
|
|
|
|
|
|
|
|
(10/08/03) This item was discussed on the WG list between 5/2/03 and
|
|
|
|
|
5/9/03. Consensus apppears to support the notion that RFC 2829 was
|
|
|
|
|
in error and that the semantics of RFC 2831 are correct and should
|
|
|
|
|
be reflected in authmeth. This is already the case as of the -07
|
|
|
|
|
draft.
|
|
|
|
|
|
|
|
|
|
G.43. DIGEST-MD5 Realms recommendations for LDAP
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 52]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
From http://www.ietf.org/internet-drafts/draft-ietf-sasl-rfc2222bis-
|
|
|
|
|
02.txt: A protocol profile SHOULD provide a guidance how realms are
|
|
|
|
|
to be constructed and used in the protocol and MAY further restrict
|
|
|
|
|
its syntax and protocol-specific semantics."
|
|
|
|
|
|
|
|
|
|
I don't believe that any such guidance exists within the LDAP TS.
|
|
|
|
|
The most likely place for this to reside is in the authmeth draft.
|
|
|
|
|
|
|
|
|
|
Related email from Alexey Melnikov (8/4/2003 1:08:40 PM):
|
|
|
|
|
|
|
|
|
|
"The problem I have with the document is that it references realm
|
|
|
|
|
without explaining what it is (or at least some examples of valid
|
|
|
|
|
values). For LDAP, some recommendations should be given. For
|
|
|
|
|
example:
|
|
|
|
|
1). Use a hardcoded string as the realm (one of the implementations
|
|
|
|
|
I worked on was doing that)
|
|
|
|
|
2). Use hostname (realm==host) or domain/cluster name (realm
|
|
|
|
|
includes multiple hosts).
|
|
|
|
|
3). Use a node in DIT above user entry, for example for "cn=Barbara
|
|
|
|
|
Jensen, ou=Accounting, o=Ace Industry, c=US"
|
|
|
|
|
and "cn=John Doe, ou=Accounting, o=Ace Industry, c=US" realm can be
|
|
|
|
|
"ou=Accounting, o=Ace Industry, c=US"
|
|
|
|
|
(or "o=Ace Industry, c=US"); for "cn=Gern Jensen, ou=Product
|
|
|
|
|
Testing,o=Ace Industry, c=US" realm can be "ou=Product Testing,
|
|
|
|
|
o=Ace Industry, c=US".
|
|
|
|
|
|
|
|
|
|
Of course other choices are possible.
|
|
|
|
|
|
|
|
|
|
Alexey
|
|
|
|
|
|
|
|
|
|
To summarize: I'd like authmeth to define a realm name for use with
|
|
|
|
|
Digest-MD5 that corresponds to LDAP DNs known to this server.
|
|
|
|
|
Authzid is okay, but perhaps could be better put into context.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John McMeeking (5/12/2003)
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
draft-ietf-sasl-rfc2222bis-03.txt no longer requires this
|
|
|
|
|
information in a SASL protocol. In addition, the ldapbis WG chairs
|
|
|
|
|
have ruled this work out of scope. Individuals are welcome to make
|
|
|
|
|
submissions to provide guidance on the use of realm and realm values
|
|
|
|
|
in LDAP.
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
G.44. Use of DNs in usernames and realms in DIGEST-MD5
|
|
|
|
|
|
|
|
|
|
In reading the discussion on the mailing list, I reach the following
|
|
|
|
|
conclusions:
|
|
|
|
|
|
|
|
|
|
DIGEST-MD5 username and realm are simple strings. The syntax of
|
|
|
|
|
these strings allows strings that look like DNs in form, however,
|
|
|
|
|
DIGEST-MD5 treats them a simple strings for comparision purposes.
|
|
|
|
|
For example, the DNs cn=roger, o=US and cn=roger,o=us are equivalent
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 53]
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
when being compared semantically as DNs, however, these would be
|
|
|
|
|
considered two different username values in DIGEST-MD5 because
|
|
|
|
|
simple octet-wise semantics (rather than DN semantics) are used to
|
|
|
|
|
compare username values in DIGEST-MD5. Ditto for realm values.
|
|
|
|
|
|
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
In -07 revision I added notes to implementors expressing this issue
|
|
|
|
|
in section 7.2.
|
|
|
|
|
|
|
|
|
|
G.45: Open Issue: Is Simple+TLS mandatory to implement?
|
|
|
|
|
|
|
|
|
|
Going forward, it would be much better to clarify that simple
|
|
|
|
|
+TLS is to be used for DN/password credentials and DIGEST-MD5
|
|
|
|
|
(or PLAIN+TLS) be used for username/password credentials. (Kurt
|
|
|
|
|
Zeilenga, 5/12/2003)
|
|
|
|
|
|
|
|
|
|
I don't believe you can mandate simple/TLS! At the time RFC 2829 was
|
|
|
|
|
debated, a large number on the WG wanted this. They did not get
|
|
|
|
|
their way because of the complexity of the solution. It was argued
|
|
|
|
|
that a password-based method would be better. I think they believed
|
|
|
|
|
it would still be DN/password, though. (Ron Ramsay, 5/12/2003)
|
|
|
|
|
|
|
|
|
|
This was officially opened as an issue by WG co-chair Kurt Zeilenga
|
|
|
|
|
on 5/12/03. Little direct discussion has occurred since, however
|
|
|
|
|
there has been significant discussion on the use of DN values as the
|
|
|
|
|
username for DIGEST-MD5.
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Status: Resolved.
|
|
|
|
|
|
|
|
|
|
Based on WG list discussion, Kurt Zeilenga has gaged a lack of WG
|
|
|
|
|
consensus that Simple+TLS should be mandatory to implement. No
|
|
|
|
|
further discussion is necessary.
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
Intellectual Property Rights
|
|
|
|
|
|
|
|
|
|
The IETF takes no position regarding the validity or scope of any
|
|
|
|
|
intellectual property or other rights that might be claimed to
|
|
|
|
|
pertain to the implementation or use of the technology described in
|
|
|
|
|
this document or the extent to which any license under such rights
|
|
|
|
|
might or might not be available; neither does it represent that it
|
|
|
|
|
has made any effort to identify any such rights. Information on the
|
|
|
|
|
IETF's procedures with respect to rights in standards-track and
|
|
|
|
|
standards-related documentation can be found in BCP-11. Copies of
|
|
|
|
|
claims of rights made available for publication and any assurances
|
|
|
|
|
of licenses to be made available, or the result of an attempt made
|
|
|
|
|
to obtain a general license or permission for the use of such
|
|
|
|
|
proprietary rights by implementors or users of this specification
|
|
|
|
|
can be obtained from the IETF Secretariat.
|
|
|
|
|
|
|
|
|
|
The IETF invites any interested party to bring to its attention any
|
|
|
|
|
copyrights, patents or patent applications, or other proprietary
|
|
|
|
|
rights which may cover technology that may be required to practice
|
|
|
|
|
|
|
|
|
|
Harrison Expires June 2004 [Page 54]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods 5 December 2003
|
|
|
|
|
|
|
|
|
|
this standard. Please address the information to the IETF Executive
|
|
|
|
|
Director.
|
|
|
|
|
|
|
|
|
|
Full Copyright
|
|
|
|
|
|
|
|
|
|
Copyright (C) The Internet Society (2003). 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
|
|
|
|
|
or assist in its implementation may be prepared, copied, published
|
|
|
|
|
and distributed, in whole or in part, without restriction of any
|
|
|
|
|
kind, provided that the above copyright notice and this paragraph
|
|
|
|
|
are included on all such copies and derivative works. However, this
|
|
|
|
|
document itself may not be modified in any way, such as by removing
|
|
|
|
|
the copyright notice or references to the Internet Society or other
|
|
|
|
|
Internet organizations, except as needed for the purpose of
|
|
|
|
|
developing Internet standards in which case the procedures for
|
|
|
|
|
copyrights defined in the Internet Standards process must be
|
|
|
|
|
followed, or as required to translate it into languages other than
|
|
|
|
|
English.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
Harrison Expires June 2004 [Page 55]
|
2003-06-01 06:47:07 +08:00
|
|
|
|
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|