2005-11-26 03:23:13 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
INTERNET-DRAFT Editor: R. Harrison
|
2006-02-14 05:58:54 +08:00
|
|
|
|
draft-ietf-ldapbis-authmeth-19.txt Novell, Inc.
|
|
|
|
|
Obsoletes: 2251, 2829, 2830 February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Intended Category: Standards Track
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LDAP: Authentication Methods
|
|
|
|
|
and
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Security Mechanisms
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
Status of this Memo
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
By submitting this Internet-Draft, each author represents that any
|
|
|
|
|
applicable patent or other IPR claims of which he or she is aware
|
|
|
|
|
have been or will be disclosed, and any of which he or she becomes
|
|
|
|
|
aware will be disclosed, in accordance with Section 6 of BCP 79.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
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 Revision 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
|
2003-06-01 06:47:07 +08:00
|
|
|
|
other groups may also distribute working documents as Internet-
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Drafts.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
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
|
2005-11-26 03:23:13 +08:00
|
|
|
|
http://www.ietf.org/ietf/1id-abstracts.html
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
The list of Internet-Draft Shadow Directories can be accessed at
|
|
|
|
|
http://www.ietf.org/shadow.html.
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This document describes authentication methods and security
|
|
|
|
|
mechanisms of the Lightweight Directory Access Protocol (LDAP).
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 1]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
This document details establishment of Transport Layer Security
|
|
|
|
|
(TLS) using the StartTLS operation.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
This document details the simple Bind authentication method
|
2005-11-26 03:23:13 +08:00
|
|
|
|
including anonymous, unauthenticated, and name/password mechanisms
|
2006-02-14 05:58:54 +08:00
|
|
|
|
and the Simple Authentication and Security Layer (SASL) Bind
|
2005-11-26 03:23:13 +08:00
|
|
|
|
authentication method including the EXTERNAL mechanism.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
This document discusses various authentication and authorization
|
2005-11-26 03:23:13 +08:00
|
|
|
|
states through which a session to an LDAP server may pass and the
|
2004-08-28 02:41:02 +08:00
|
|
|
|
actions that trigger these state changes.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
This document, together with other documents in the LDAP Technical
|
|
|
|
|
Specification (see section 1 of [Roadmap]), obsoletes RFC 2251, RFC
|
|
|
|
|
2829 and RFC 2830.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
1. Introduction.....................................................3
|
|
|
|
|
1.1. Relationship to Other Documents................................5
|
2005-11-26 03:23:13 +08:00
|
|
|
|
1.2. Conventions....................................................6
|
2006-02-14 05:58:54 +08:00
|
|
|
|
2. Implementation Requirements......................................7
|
2004-08-28 02:41:02 +08:00
|
|
|
|
3. StartTLS Operation...............................................7
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1. TLS Establishment Procedures...................................7
|
2006-02-14 05:58:54 +08:00
|
|
|
|
3.1.1. StartTLS Request Sequencing..................................8
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.2. Client Certificate...........................................8
|
|
|
|
|
3.1.3. Server Identity Check........................................8
|
2006-02-14 05:58:54 +08:00
|
|
|
|
3.1.3.1. Comparison of DNS Names...................................10
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.3.2. Comparison of IP Addresses................................10
|
|
|
|
|
3.1.3.3. Comparison of other subjectName types.....................10
|
|
|
|
|
3.1.4. Discovery of Resultant Security Level.......................10
|
|
|
|
|
3.1.5. Refresh of Server Capabilities Information..................11
|
|
|
|
|
3.2. Effect of TLS on Authorization State..........................11
|
|
|
|
|
3.3. TLS Ciphersuites..............................................11
|
|
|
|
|
4. Authorization State.............................................12
|
|
|
|
|
5. Bind Operation..................................................13
|
|
|
|
|
5.1. Simple Authentication Method..................................13
|
|
|
|
|
5.1.1. Anonymous Authentication Mechanism of Simple Bind...........13
|
|
|
|
|
5.1.2. Unauthenticated Authentication Mechanism of Simple Bind.....13
|
|
|
|
|
5.1.3. Name/Password Authentication Mechanism of Simple Bind.......14
|
|
|
|
|
5.2. SASL Authentication Method....................................15
|
|
|
|
|
5.2.1. SASL Protocol Profile.......................................15
|
|
|
|
|
5.2.1.1. SASL Service Name for LDAP................................15
|
|
|
|
|
5.2.1.2. SASL Authentication Initiation and Protocol Exchange......15
|
|
|
|
|
5.2.1.3. Optional Fields...........................................16
|
|
|
|
|
5.2.1.4. Octet Where Negotiated Security Layers Take Effect........17
|
|
|
|
|
5.2.1.5. Determination of Supported SASL Mechanisms................17
|
|
|
|
|
5.2.1.6. Rules for Using SASL Layers...............................17
|
|
|
|
|
5.2.1.7. Support for Multiple Authentications......................18
|
|
|
|
|
5.2.1.8. SASL Authorization Identities.............................18
|
|
|
|
|
5.2.2. SASL Semantics Within LDAP..................................19
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 2]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2.3. SASL EXTERNAL Authentication Mechanism......................19
|
|
|
|
|
5.2.3.1. Implicit Assertion........................................19
|
|
|
|
|
5.2.3.2. Explicit Assertion........................................20
|
|
|
|
|
6. Security Considerations.........................................20
|
|
|
|
|
6.1. General LDAP Security Considerations..........................20
|
2006-02-14 05:58:54 +08:00
|
|
|
|
6.2. StartTLS Security Considerations..............................21
|
2005-11-26 03:23:13 +08:00
|
|
|
|
6.3. Bind Operation Security Considerations........................21
|
|
|
|
|
6.3.1. Unauthenticated Mechanism Security Considerations...........21
|
2006-02-14 05:58:54 +08:00
|
|
|
|
6.3.2. Name/Password Mechanism Security Considerations.............22
|
2005-11-26 03:23:13 +08:00
|
|
|
|
6.3.3. Password-related Security Considerations....................22
|
|
|
|
|
6.3.4. Hashed Password Security Considerations.....................23
|
2006-02-14 05:58:54 +08:00
|
|
|
|
6.4.SASL Security Considerations...................................23
|
|
|
|
|
6.5. Related Security Considerations...............................23
|
|
|
|
|
7. IANA Considerations.............................................24
|
|
|
|
|
8. Acknowledgments.................................................24
|
|
|
|
|
9. Normative References............................................24
|
2005-11-26 03:23:13 +08:00
|
|
|
|
10. Informative References.........................................25
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Author's Address...................................................26
|
|
|
|
|
Appendix A. Authentication and Authorization Concepts..............26
|
2005-11-26 03:23:13 +08:00
|
|
|
|
A.1. Access Control Policy.........................................26
|
|
|
|
|
A.2. Access Control Factors........................................26
|
2006-02-14 05:58:54 +08:00
|
|
|
|
A.3. Authentication, Credentials, Identity.........................27
|
|
|
|
|
A.4. Authorization Identity........................................27
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Appendix B. Summary of Changes.....................................27
|
2006-02-14 05:58:54 +08:00
|
|
|
|
B.1. Changes Made to RFC 2251......................................28
|
|
|
|
|
B.1.1. Section 4.2.1 (Sequencing of the Bind Request)..............28
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.1.2. Section 4.2.2 (Authentication and Other Security Services)..28
|
|
|
|
|
B.2. Changes Made to RFC 2829......................................28
|
2006-02-14 05:58:54 +08:00
|
|
|
|
B.2.1. Section 4 (Required security mechanisms)....................29
|
|
|
|
|
B.2.2. Section 5.1 (Anonymous authentication procedure)............29
|
|
|
|
|
B.2.3. Section 6 (Password-based authentication)...................29
|
|
|
|
|
B.2.4. Section 6.1 (Digest authentication).........................29
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.5. Section 6.2 ("simple" authentication choice with TLS).......29
|
|
|
|
|
B.2.6. Section 6.3 (Other authentication choices with TLS).........29
|
2006-02-14 05:58:54 +08:00
|
|
|
|
B.2.7. Section 7.1 (Certificate-based authentication with TLS).....30
|
|
|
|
|
B.2.8. Section 8 (Other mechanisms)................................30
|
|
|
|
|
B.2.9. Section 9 (Authorization identity)..........................30
|
|
|
|
|
B.2.10. Section 10 (TLS Ciphersuites)..............................30
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.3. Changes Made to RFC 2830: ....................................30
|
|
|
|
|
B.3.1. Section 3.6 (Server Identity Check).........................30
|
2006-02-14 05:58:54 +08:00
|
|
|
|
B.3.2. Section 3.7 (Refresh of Server Capabilities Information)....31
|
|
|
|
|
B.3.3. Section 5.2 (Effects of TLS on Authorization Identity)......31
|
|
|
|
|
B.3.4. Section 5.1.1 (TLS Closure Effects).........................31
|
|
|
|
|
Appendix C. Changes for draft-ldapbis-authmeth-19..................31
|
|
|
|
|
Intellectual Property Rights.......................................32
|
|
|
|
|
Full Copyright Statement...........................................33
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
1. Introduction
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 3]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
The Lightweight Directory Access Protocol (LDAP) [Roadmap] is a
|
2005-11-26 03:23:13 +08:00
|
|
|
|
powerful protocol for accessing directories. It offers means of
|
|
|
|
|
searching, retrieving and manipulating directory content and ways to
|
|
|
|
|
access a rich set of security functions.
|
|
|
|
|
|
2004-08-28 02:41:02 +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
|
|
|
|
|
implementations that claim LDAP conformance.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Basic threats to an LDAP directory service include (but are not
|
|
|
|
|
limited to):
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
(1) Unauthorized access to directory data via data-retrieval
|
|
|
|
|
operations.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(2) Unauthorized access to directory data by monitoring access of
|
|
|
|
|
others.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
(3) Unauthorized access to reusable client authentication
|
2005-11-26 03:23:13 +08:00
|
|
|
|
information by monitoring access of others.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
(4) Unauthorized modification of directory data.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(5) Unauthorized modification of configuration information.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
(6) Denial of Service: Use of resources (commonly in excess) in a
|
2005-06-26 07:06:51 +08:00
|
|
|
|
manner intended to deny service to others.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(7) Spoofing: Tricking a user or 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
|
2005-11-26 03:23:13 +08:00
|
|
|
|
transport connection. Tricking a user or client into sending
|
|
|
|
|
privileged information to a hostile entity that appears to be
|
|
|
|
|
the directory server but is not. Tricking a directory server
|
|
|
|
|
into believing that information came from a particular client
|
|
|
|
|
when in fact it came from a hostile entity.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(8) Hijacking: An attacker seizes control of an established protocol
|
|
|
|
|
session.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Threats (1), (4), (5), (6), (7) are (8) are active attacks. Threats
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(2) and (3) are passive attacks.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Threats (1), (4), (5) and (6) are due to hostile clients. Threats
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(2), (3), (7) and (8) are due to hostile agents on the path between
|
2006-02-14 05:58:54 +08:00
|
|
|
|
client and server or hostile agents posing as a server, e.g., IP
|
2004-08-28 02:41:02 +08:00
|
|
|
|
spoofing.
|
|
|
|
|
|
|
|
|
|
LDAP offers the following security mechanisms:
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 4]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(1) Authentication by means of the Bind operation. The Bind
|
|
|
|
|
operation provides a simple method which supports anonymous,
|
2006-02-14 05:58:54 +08:00
|
|
|
|
unauthenticated, and name/password mechanisms, and the Simple
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Authentication and Security Layer (SASL) method which supports a
|
|
|
|
|
wide variety of authentication mechanisms.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
(2) Mechanisms to support vendor-specific access control facilities
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(LDAP does not offer a standard access control facility).
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(3) Data integrity service by means of security layers in Transport
|
|
|
|
|
Layer Security (TLS) or SASL mechanisms.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(4) Data confidentiality service by means of security layers in TLS
|
|
|
|
|
or SASL mechanisms.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(5) Server resource usage limitation by means of administrative
|
2005-11-26 03:23:13 +08:00
|
|
|
|
limits configured on the server.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
(6) Server authentication by means of the TLS protocol or SASL
|
2005-06-26 07:06:51 +08:00
|
|
|
|
mechanisms.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
LDAP may also be protected by means outside the LDAP protocol, e.g.,
|
|
|
|
|
with IP-level security [RFC4301].
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Experience has shown that simply allowing implementations to pick
|
|
|
|
|
and choose the security mechanisms that will be implemented is not a
|
|
|
|
|
strategy that leads to interoperability. In the absence of
|
|
|
|
|
mandates, clients will continue to be written that do not support
|
|
|
|
|
any security function supported by the server, or worse, they will
|
|
|
|
|
only support mechanisms that provide inadequate security for most
|
|
|
|
|
circumstances.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
It is desirable to allow clients to authenticate using a variety of
|
|
|
|
|
mechanisms including mechanisms where identities are represented as
|
2005-11-26 03:23:13 +08:00
|
|
|
|
distinguished names [X.501][Models] in string form [LDAPDN] or as
|
2006-02-14 05:58:54 +08:00
|
|
|
|
used in different systems (e.g., simple user names [RFC4013]).
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Because some authentication mechanisms transmit credentials in plain
|
|
|
|
|
text form, and/or do not provide data security services and/or are
|
|
|
|
|
subject to passive attacks, it is necessary to ensure secure
|
|
|
|
|
interoperability by identifying a mandatory-to-implement mechanism
|
|
|
|
|
for establishing transport-layer security services.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +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
|
2005-11-26 03:23:13 +08:00
|
|
|
|
interoperability among various LDAP implementations and deployments.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
1.1. Relationship to Other Documents
|
|
|
|
|
|
|
|
|
|
This document is an integral part of the LDAP Technical
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Specification [Roadmap].
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 5]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This document, together with [Roadmap], [Protocol], and [Models],
|
|
|
|
|
obsoletes RFC 2251 in its entirety. Sections 4.2.1 (portions), and
|
|
|
|
|
4.2.2 of RFC 2251 are obsoleted by this document. Appendix B.1
|
|
|
|
|
summarizes the substantive changes made to RFC 2251 by this document.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This document obsoletes RFC 2829 in its entirety. Appendix B.2
|
|
|
|
|
summarizes the substantive changes made to RFC 2829 by this document.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Sections 2 and 4 of RFC 2830 are obsoleted by [Protocol]. The
|
|
|
|
|
remainder of RFC 2830 is obsoleted by this document. Appendix B.3
|
|
|
|
|
summarizes the substantive changes made to RFC 2830 by this document.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
1.2. Conventions
|
|
|
|
|
|
|
|
|
|
The key words "MUST", "MUST NOT", "SHALL", "SHOULD", "SHOULD NOT",
|
|
|
|
|
"MAY", and "OPTIONAL" in this document are to be interpreted as
|
|
|
|
|
described in RFC 2119 [RFC2119].
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
The term "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).
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
The term "transport connection" refers to the underlying transport
|
|
|
|
|
services used to carry the protocol exchange, as well as
|
|
|
|
|
associations established by these services.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
The term "TLS layer" refers to TLS services used in providing
|
|
|
|
|
security services, as well as associations established by these
|
|
|
|
|
services.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
The term "SASL layer" refers to SASL services used in providing
|
|
|
|
|
security services, as well as associations established by these
|
|
|
|
|
services.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
The term "LDAP message layer" refers to the LDAP Message (PDU)
|
|
|
|
|
services used in providing directory services, as well as
|
|
|
|
|
associations established by these services.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
The term "LDAP session" refers to combined services (transport
|
|
|
|
|
connection, TLS layer, SASL layer, LDAP message layer) and their
|
|
|
|
|
associations.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
In general, security terms in this document are used consistently
|
2005-11-26 03:23:13 +08:00
|
|
|
|
with the definitions provided in [RFC2828]. In addition, several
|
2004-08-28 02:41:02 +08:00
|
|
|
|
terms and concepts relating to security, authentication, and
|
2005-11-26 03:23:13 +08:00
|
|
|
|
authorization are presented in Appendix A of this document. While
|
2004-08-28 02:41:02 +08:00
|
|
|
|
the formal definition of these terms and concepts is outside the
|
|
|
|
|
scope of this document, an understanding of them is prerequisite to
|
2005-11-26 03:23:13 +08:00
|
|
|
|
understanding much of the material in this document. Readers who
|
|
|
|
|
are unfamiliar with security-related concepts are encouraged to
|
|
|
|
|
review Appendix A before reading the remainder of this document.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 6]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
2. Implementation Requirements
|
|
|
|
|
|
|
|
|
|
LDAP server implementations MUST support the anonymous
|
2005-11-26 03:23:13 +08:00
|
|
|
|
authentication mechanism of the simple Bind method (section 5.1.1).
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
LDAP implementations that support any authentication mechanism other
|
|
|
|
|
than the anonymous authentication mechanism of the simple Bind
|
|
|
|
|
method MUST support the name/password authentication mechanism of
|
|
|
|
|
the simple Bind method (section 5.1.3) and MUST be capable of
|
|
|
|
|
protecting this name/password authentication using TLS as
|
|
|
|
|
established by the StartTLS operation (section 3).
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Implementations SHOULD disallow the use of the name/password
|
2005-06-26 07:06:51 +08:00
|
|
|
|
authentication mechanism by default when suitable data security
|
|
|
|
|
services are not in place, and MAY provide other suitable data
|
|
|
|
|
security services for use with this authentication mechanism.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
|
|
|
|
Implementations MAY support additional authentication mechanisms.
|
|
|
|
|
Some of these mechanisms are discussed below.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
LDAP server implementations SHOULD support client assertion of
|
2005-11-26 03:23:13 +08:00
|
|
|
|
authorization identity via the SASL EXTERNAL mechanism (section
|
|
|
|
|
5.2.3).
|
|
|
|
|
|
|
|
|
|
LDAP server implementations that support no authentication mechanism
|
|
|
|
|
other than the anonymous mechanism of the simple bind method SHOULD
|
|
|
|
|
support use of TLS as established by the the StartTLS operation
|
|
|
|
|
(section 3). (Other servers MUST support TLS per the second
|
|
|
|
|
paragraph of this section.)
|
|
|
|
|
|
|
|
|
|
Implementations supporting TLS MUST support the
|
2006-02-14 05:58:54 +08:00
|
|
|
|
TLS_RSA_WITH_3DES_EDE_CBC_SHA ciphersuite and SHOULD support the
|
|
|
|
|
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA ciphersuite. Support for the
|
|
|
|
|
latter ciphersuite is recommended to encourage interoperability with
|
|
|
|
|
implementations conforming to earlier LDAP StartTLS specifications.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
3. StartTLS Operation
|
|
|
|
|
|
|
|
|
|
The Start Transport Layer Security (StartTLS) operation defined in
|
|
|
|
|
section 4.14 of [Protocol] provides the ability to establish TLS
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[TLS] in an LDAP session.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
The goals of using the TLS [TLS] protocol with LDAP are to ensure
|
|
|
|
|
data confidentiality and integrity, and to optionally provide for
|
|
|
|
|
authentication. TLS expressly provides these capabilities, although
|
|
|
|
|
the authentication services of TLS are available to LDAP only in
|
|
|
|
|
combination with the SASL EXTERNAL authentication method (see
|
2005-11-26 03:23:13 +08:00
|
|
|
|
section 5.2.3), and then only if the SASL EXTERNAL implementation
|
2004-10-27 12:52:02 +08:00
|
|
|
|
chooses to make use of the TLS credentials.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
3.1. TLS Establishment Procedures
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 7]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
This section describes the overall procedures clients and servers
|
2005-11-26 03:23:13 +08:00
|
|
|
|
must follow for TLS establishment. These procedures take into
|
|
|
|
|
consideration various aspects of the TLS layer including discovery
|
2004-10-27 12:52:02 +08:00
|
|
|
|
of resultant security level and assertion of the client's
|
|
|
|
|
authorization identity.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.1. StartTLS Request Sequencing
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
A client may send the StartTLS extended request at any time after
|
|
|
|
|
establishing an LDAP session, except:
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- when TLS is currently established on the session,
|
|
|
|
|
- when a multi-stage SASL negotiation is in progress on the
|
|
|
|
|
session, or
|
|
|
|
|
- when there are outstanding responses for operation requests
|
|
|
|
|
previously issued on the session.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
As described in [Protocol] Section 4.14.1, a (detected) violation of
|
|
|
|
|
any of these requirements results in a return of the operationsError
|
|
|
|
|
resultCode.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
Client implementers should ensure that they strictly follow these
|
|
|
|
|
operation sequencing requirements to prevent interoperability
|
2005-11-26 03:23:13 +08:00
|
|
|
|
issues. Operational experience has shown that violating these
|
2004-08-28 02:41:02 +08:00
|
|
|
|
requirements causes interoperability issues because there are race
|
|
|
|
|
conditions that prevent servers from detecting some violations of
|
2005-11-26 03:23:13 +08:00
|
|
|
|
these requirements due to factors such as server hardware speed and
|
|
|
|
|
network latencies.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
There is no general requirement that the client have or have not
|
2005-11-26 03:23:13 +08:00
|
|
|
|
already performed a Bind operation (section 5) before sending a
|
|
|
|
|
StartTLS operation request, however where a client intends to
|
|
|
|
|
perform both a Bind operation and a StartTLS operation, it SHOULD
|
|
|
|
|
first perform the StartTLS operation so that the Bind request and
|
|
|
|
|
response messages are protected by the data security services
|
|
|
|
|
established by the StartTLS operation.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.2. Client Certificate
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
If an LDAP server requests or demands that a client provide a user
|
|
|
|
|
certificate during TLS negotiation and the client does not present a
|
2006-02-14 05:58:54 +08:00
|
|
|
|
suitable user certificate (e.g., one that can be validated), the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
server may use a local security policy to determine whether to
|
|
|
|
|
successfully complete TLS negotiation.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
If a client that has provided a suitable certificate subsequently
|
|
|
|
|
performs a Bind operation using the SASL EXTERNAL authentication
|
|
|
|
|
mechanism (section 5.2.3), information in the certificate may be
|
|
|
|
|
used by the server to identify and authenticate the client.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.3. Server Identity Check
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 8]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
In order to prevent man-in-the-middle attacks the client MUST verify
|
|
|
|
|
the server's identity (as presented in the server's Certificate
|
|
|
|
|
message). In this section, the client's understanding of the
|
|
|
|
|
server's identity (typically the identity used to establish the
|
|
|
|
|
transport connection) is called the "reference identity".
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
The client determines the type (e.g., DNS name or IP address) of the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
reference identity and performs a comparison between the reference
|
|
|
|
|
identity and each subjectAltName value of the corresponding type
|
|
|
|
|
until a match is produced. Once a match is produced, the server's
|
|
|
|
|
identity has been verified and the server identity check is
|
|
|
|
|
complete. Different subjectAltName types are matched in different
|
|
|
|
|
ways. Sections 3.1.3.1 - 3.1.3.3 explain how to compare values of
|
|
|
|
|
various subjectAltName types.
|
|
|
|
|
|
|
|
|
|
The client may map the reference identity to a different type prior
|
|
|
|
|
to performing a comparison. Mappings may be performed for all
|
|
|
|
|
available subjectAltName types to which the reference identity can
|
|
|
|
|
be mapped, however the reference identity should only be mapped to
|
2006-02-14 05:58:54 +08:00
|
|
|
|
types for which the mapping is either inherently secure (e.g.,
|
2005-11-26 03:23:13 +08:00
|
|
|
|
extracting the DNS name from a URI to compare with a subjectAltName
|
|
|
|
|
of type dNSName) or for which the mapping is performed in a secure
|
2006-02-14 05:58:54 +08:00
|
|
|
|
manner (e.g., using DNSSec, or using user- (or admin-) configured
|
2005-11-26 03:23:13 +08:00
|
|
|
|
host-to-address/address-to-host lookup tables).
|
|
|
|
|
|
|
|
|
|
The server's identity may also be verified by comparing the
|
|
|
|
|
reference identity to the Common Name (CN) [Schema] value in the
|
|
|
|
|
leaf RDN of the subjectName field of the server's certificate. This
|
|
|
|
|
comparison is performed using the rules for comparison of DNS names
|
|
|
|
|
in section 3.1.3.1 below, with the exception that no wildcard
|
|
|
|
|
matching is allowed. Although the use of the Common Name value is
|
|
|
|
|
existing practice, it is deprecated and Certification Authorities
|
|
|
|
|
are encouraged to provide subjectAltName values instead. Note that
|
|
|
|
|
the TLS implementation may represent DNs in certificates according
|
|
|
|
|
to X.500 or other conventions. For example, some X.500
|
|
|
|
|
implementations order the RDNs in a DN using a left-to-right (most
|
|
|
|
|
significant to least significant) convention instead of LDAP's
|
|
|
|
|
right-to-left convention.
|
|
|
|
|
|
|
|
|
|
If the server identity check fails, user-oriented clients SHOULD
|
|
|
|
|
either notify the user (clients may give the user the opportunity to
|
|
|
|
|
continue with the LDAP session in this case) or close the transport
|
|
|
|
|
connection and indicate that the server's identity is suspect.
|
|
|
|
|
Automated clients SHOULD close the transport connection and then
|
|
|
|
|
return or log an error indicating that the server's identity is
|
|
|
|
|
suspect or both.
|
|
|
|
|
|
|
|
|
|
Beyond the server identity check 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 requested to provide.
|
|
|
|
|
The client may need to make use of local policy information in
|
|
|
|
|
making this determination.
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 9]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
3.1.3.1. Comparison of DNS Names
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
If the reference identity is an internationalized domain name,
|
|
|
|
|
conforming implementations MUST convert it to the ASCII Compatible
|
|
|
|
|
Encoding (ACE) format as specified in section 4 of RFC 3490
|
|
|
|
|
[RFC3490] before comparison with subjectAltName values of type
|
|
|
|
|
dNSName. Specifically, conforming implementations MUST perform the
|
|
|
|
|
conversion operation specified in section 4 of RFC 3490 as follows:
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
* in step 1, the domain name SHALL be considered a "stored
|
|
|
|
|
string";
|
|
|
|
|
* in step 3, set the flag called "UseSTD3ASCIIRules";
|
|
|
|
|
* in step 4, process each label with the "ToASCII"
|
|
|
|
|
operation; and
|
|
|
|
|
* in step 5, change all label separators to U+002E (full
|
|
|
|
|
stop).
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
After performing the "to-ASCII" conversion, the DNS labels and names
|
|
|
|
|
MUST be compared for equality according to the rules specified in
|
|
|
|
|
section 3 of RFC3490.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
The '*' (ASCII 42) wildcard character is allowed in subjectAltName
|
|
|
|
|
values of type dNSName and then only as the left-most (least
|
|
|
|
|
significant) DNS label in that value. This wildcard matches any
|
|
|
|
|
left-most DNS label in the server name. That is, the subject
|
|
|
|
|
*.example.com matches the server names a.example.com and
|
|
|
|
|
b.example.com but does not match example.com or a.b.example.com.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.3.2. Comparison of IP Addresses
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
When the reference identity is an IP address, the identity MUST be
|
|
|
|
|
converted to the "network byte order" octet string representation
|
|
|
|
|
[RFC791][RFC2460]. For IP Version 4, as specified in RFC 791, the
|
|
|
|
|
octet string will contain exactly four octets. For IP Version 6, as
|
|
|
|
|
specified in RFC 2460, the octet string will contain exactly sixteen
|
|
|
|
|
octets. This octet string is then compared against subjectAltName
|
|
|
|
|
values of type iPAddress. A match occurs if the reference identity
|
|
|
|
|
octet string and value octet strings are identical.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.3.3. Comparison of other subjectName types
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Client implementations MAY support matching against subjectAltName
|
|
|
|
|
values of other types as described in other documents.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
3.1.4. Discovery of Resultant Security Level
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 10]
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
After a TLS layer is established in an LDAP session, both parties
|
|
|
|
|
are to each independently decide whether or not to continue based on
|
|
|
|
|
local policy and the security level achieved. If either party
|
|
|
|
|
decides that the security level is inadequate for it to continue, it
|
|
|
|
|
SHOULD remove the TLS layer immediately after the TLS
|
|
|
|
|
(re)negotiation has completed (see [Protocol] section 4.14.3 and
|
|
|
|
|
section 3.2 below). Implementations may reevaluate the security
|
|
|
|
|
level at any time and, upon finding it inadequate, should remove the
|
|
|
|
|
TLS layer.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
3.1.5. Refresh of Server Capabilities Information
|
|
|
|
|
|
|
|
|
|
After a TLS layer is established in an LDAP session, the client
|
|
|
|
|
SHOULD discard or refresh all information about the server it
|
|
|
|
|
obtained prior to the initiation of the TLS negotiation and not
|
|
|
|
|
obtained through secure mechanisms. This protects against man-in-
|
|
|
|
|
the-middle attacks that may have altered any server capabilities
|
|
|
|
|
information retrieved prior to TLS layer installation.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
The server may advertise different capabilities after installing a
|
2005-11-26 03:23:13 +08:00
|
|
|
|
TLS layer. In particular, the value of 'supportedSASLMechanisms'
|
|
|
|
|
may be different after a TLS layer has been installed (specifically,
|
|
|
|
|
the EXTERNAL and PLAIN [PLAIN] mechanisms are likely to be listed
|
|
|
|
|
only after a TLS layer has been installed).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.2. Effect of TLS on Authorization State
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
The establishment, change, and/or closure of TLS may cause the
|
|
|
|
|
authorization state to move to a new state. This is discussed
|
|
|
|
|
further in Section 4.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.3. TLS Ciphersuites
|
|
|
|
|
|
|
|
|
|
Several issues should be considered when selecting TLS ciphersuites
|
2005-11-26 03:23:13 +08:00
|
|
|
|
that are appropriate for use in a given circumstance. These issues
|
2004-08-28 02:41:02 +08:00
|
|
|
|
include the following:
|
|
|
|
|
|
|
|
|
|
- The ciphersuite's ability to provide adequate confidentiality
|
2005-06-26 07:06:51 +08:00
|
|
|
|
protection for passwords and other data sent over the transport
|
2005-11-26 03:23:13 +08:00
|
|
|
|
connection. Client and server implementers should recognize
|
|
|
|
|
that some TLS ciphersuites provide no confidentiality protection
|
2004-08-28 02:41:02 +08:00
|
|
|
|
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.
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
- Client and server implementers should carefully consider the
|
2004-08-28 02:41:02 +08:00
|
|
|
|
value of the password or data being protected versus the level
|
2005-11-26 03:23:13 +08:00
|
|
|
|
of confidentiality protection provided by the ciphersuite to
|
2004-08-28 02:41:02 +08:00
|
|
|
|
ensure that the level of protection afforded by the ciphersuite
|
|
|
|
|
is appropriate.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 11]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
|
2003-12-07 15:50:23 +08:00
|
|
|
|
- The ciphersuite's vulnerability (or lack thereof) to man-in-the-
|
2005-11-26 03:23:13 +08:00
|
|
|
|
middle attacks. Ciphersuites vulnerable to man-in-the-middle
|
2004-08-28 02:41:02 +08:00
|
|
|
|
attacks SHOULD NOT be used to protect passwords or sensitive
|
|
|
|
|
data, unless the network configuration is such that the danger
|
2006-02-14 05:58:54 +08:00
|
|
|
|
of a man-in-the-middle attack is negligible.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- After a TLS negotiation (either initial or subsequent) is
|
|
|
|
|
completed, both protocol peers should independently verify that
|
|
|
|
|
the security services provided by the negotiated ciphersuite are
|
|
|
|
|
adequate for the intended use of the LDAP session. If not, the
|
|
|
|
|
TLS layer should be closed.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
4. Authorization State
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Every LDAP session has an associated authorization state. This
|
|
|
|
|
state is comprised of numerous factors such as what (if any)
|
|
|
|
|
authorization state has been established, how it was established,
|
|
|
|
|
and what security services are in place. Some factors may be
|
2006-02-14 05:58:54 +08:00
|
|
|
|
determined and/or affected by protocol events (e.g., Bind, StartTLS,
|
2005-11-26 03:23:13 +08:00
|
|
|
|
or TLS closure), and some factors may be determined by external
|
2006-02-14 05:58:54 +08:00
|
|
|
|
events (e.g., time of day or server load).
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
While it is often convenient to view authorization state in
|
|
|
|
|
simplistic terms (as we often do in this technical specification)
|
|
|
|
|
such as "an anonymous state", it is noted that authorization systems
|
|
|
|
|
in LDAP implementations commonly involve many factors which
|
|
|
|
|
interrelate in complex manners.
|
|
|
|
|
|
|
|
|
|
Authorization in LDAP is a local matter. One of the key factors in
|
|
|
|
|
making authorization decisions is authorization identity. The Bind
|
|
|
|
|
operation defined in section 4.2 of [Protocol] and discussed further
|
|
|
|
|
in section 5 below allows information to be exchanged between the
|
|
|
|
|
client and server to establish an authorization identity for the
|
|
|
|
|
LDAP session. The Bind operation may also be used to move the LDAP
|
|
|
|
|
session to an anonymous authorization state (see section 5.1.1).
|
|
|
|
|
|
|
|
|
|
Upon initial establishment of the LDAP session, the session has an
|
|
|
|
|
anonymous authorization identity. Among other things this implies
|
|
|
|
|
that the client need not send a BindRequest in the first PDU of the
|
|
|
|
|
LDAP message layer. The client may send any operation request prior
|
|
|
|
|
to performing a Bind operation, and the server MUST treat it as if
|
|
|
|
|
it had been performed after an anonymous Bind operation (section
|
|
|
|
|
5.1.1).
|
|
|
|
|
|
|
|
|
|
Upon receipt of a Bind request, the server immediately moves the
|
|
|
|
|
session to an anonymous authorization state. If the Bind request is
|
|
|
|
|
successful, the session is moved to the requested authentication
|
|
|
|
|
state with its associated authorization state. Otherwise, the
|
|
|
|
|
session remains in an anonymous state.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 12]
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
It is noted that other events both internal and external to LDAP may
|
|
|
|
|
result in the authentication and authorization states being moved to
|
|
|
|
|
an anonymous one. For instance, the establishment, change or
|
|
|
|
|
closure of data security services may result in a move to an
|
2006-02-14 05:58:54 +08:00
|
|
|
|
anonymous state, or the user's credential information (e.g.,
|
2005-11-26 03:23:13 +08:00
|
|
|
|
certificate) may have expired. The former is an example of an event
|
|
|
|
|
internal to LDAP whereas the latter is an example of an event
|
|
|
|
|
external to LDAP.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
5. Bind Operation
|
|
|
|
|
|
|
|
|
|
The Bind operation ([Protocol] section 4.2) allows authentication
|
|
|
|
|
information to be exchanged between the client and server to
|
2005-11-26 03:23:13 +08:00
|
|
|
|
establish a new authorization state.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
The Bind request typically specifies the desired authentication
|
|
|
|
|
identity. Some Bind mechanisms also allow the client to specify the
|
|
|
|
|
authorization identity. If the authorization identity is not
|
|
|
|
|
specified, the server derives it from the authentication identity in
|
|
|
|
|
an implementation-specific manner.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
If the authorization identity is specified, the server MUST verify
|
2004-08-28 02:41:02 +08:00
|
|
|
|
that the client's authentication identity is permitted to assume
|
2006-02-14 05:58:54 +08:00
|
|
|
|
(e.g., proxy for) the asserted authorization identity. The server
|
2004-08-28 02:41:02 +08:00
|
|
|
|
MUST reject the Bind operation with an invalidCredentials resultCode
|
|
|
|
|
in the Bind response if the client is not so authorized.
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.1. Simple Authentication Method
|
|
|
|
|
|
|
|
|
|
The simple authentication method of the Bind Operation provides
|
2004-08-28 02:41:02 +08:00
|
|
|
|
three authentication mechanisms:
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- An anonymous authentication mechanism (section 5.1.1).
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- An unauthenticated authentication mechanism (section 5.1.2).
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- A name/password authentication mechanism using credentials
|
|
|
|
|
consisting of a name (in the form of an LDAP distinguished name
|
|
|
|
|
[LDAPDN]) and a password (section 5.1.3).
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.1.1. Anonymous Authentication Mechanism of Simple Bind
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
An LDAP client may use the anonymous authentication mechanism of the
|
|
|
|
|
simple Bind method to explicitly establish an anonymous
|
|
|
|
|
authorization state by sending a Bind request with a name value of
|
|
|
|
|
zero length and specifying the simple authentication choice
|
|
|
|
|
containing a password value of zero length.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.1.2. Unauthenticated Authentication Mechanism of Simple Bind
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 13]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
An LDAP client may use the unauthenticated authentication mechanism
|
2005-11-26 03:23:13 +08:00
|
|
|
|
of the simple Bind method to establish an anonymous authorization
|
|
|
|
|
state by sending a Bind request with a name value (a distinguished
|
|
|
|
|
name in LDAP string form [LDAPDN] of non-zero length) and specifying
|
|
|
|
|
the simple authentication choice containing a password value of zero
|
|
|
|
|
length.
|
|
|
|
|
|
|
|
|
|
The distinguished name value provided by the client is intended to
|
2006-02-14 05:58:54 +08:00
|
|
|
|
be used for trace (e.g., logging) purposes only. The value is not
|
|
|
|
|
to be authenticated or otherwise validated (including verification
|
|
|
|
|
that the DN refers to an existing directory object). The value is
|
|
|
|
|
not to be used (directly or indirectly) for authorization purposes.
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
Unauthenticated Bind operations can have significant security issues
|
|
|
|
|
(see section 6.3.1). In particular, users intending to perform
|
|
|
|
|
Name/Password Authentication may inadvertently provide an empty
|
|
|
|
|
password and thus cause poorly implemented clients to request
|
|
|
|
|
Unauthenticated access. Clients SHOULD be implemented to require
|
|
|
|
|
user selection of the Unauthenticated Authentication Mechanism by
|
|
|
|
|
means other than user input of an empty password. Clients SHOULD
|
|
|
|
|
disallow an empty password input to a Name/Password Authentication
|
|
|
|
|
user interface. Additionally, Servers SHOULD by default fail
|
|
|
|
|
Unauthenticated Bind requests with a resultCode of
|
|
|
|
|
unwillingToPerform.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.1.3. Name/Password Authentication Mechanism of Simple Bind
|
|
|
|
|
|
|
|
|
|
An LDAP client may use the name/password authentication mechanism of
|
|
|
|
|
the simple Bind method to establish an authenticated authorization
|
|
|
|
|
state by sending a Bind request with a name value (a distinguished
|
|
|
|
|
name in LDAP string form [LDAPDN] of non-zero length) and specifying
|
|
|
|
|
the simple authentication choice containing an OCTET STRING password
|
2005-06-26 07:06:51 +08:00
|
|
|
|
value of non-zero length.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Servers that map the DN sent in the Bind request to a directory
|
2004-10-27 12:52:02 +08:00
|
|
|
|
entry with an associated set of one or more passwords used with this
|
2005-06-26 07:06:51 +08:00
|
|
|
|
mechanism will compare the presented password to that set of
|
2004-10-27 12:52:02 +08:00
|
|
|
|
passwords. The presented password is considered valid if it matches
|
|
|
|
|
any member of this set.
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
A resultCode of invalidDNSyntax indicates that the DN sent in the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
name value is syntactically invalid. A resultCode of
|
2005-06-26 07:06:51 +08:00
|
|
|
|
invalidCredentials indicates that the DN is syntactically correct
|
|
|
|
|
but not valid for purposes of authentication, or the password is not
|
2005-11-26 03:23:13 +08:00
|
|
|
|
valid for the DN or the server otherwise considers the credentials
|
|
|
|
|
to be invalid. A resultCode of success indicates that the
|
|
|
|
|
credentials are valid and the server is willing to provide service
|
|
|
|
|
to the entity these credentials identify.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Server behavior is undefined for Bind requests specifying the
|
|
|
|
|
name/password authentication mechanism with a zero-length name value
|
|
|
|
|
and a password value of non-zero length.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 14]
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
The name/password authentication mechanism of the simple Bind method
|
|
|
|
|
is not suitable for authentication in environments without
|
|
|
|
|
confidentiality protection.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2. SASL Authentication Method
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
The sasl authentication method of the Bind Operation provides
|
|
|
|
|
facilities for using any SASL mechanism including authentication
|
2006-02-14 05:58:54 +08:00
|
|
|
|
mechanisms and other services (e.g., data security services).
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
5.2.1. SASL Protocol Profile
|
|
|
|
|
|
|
|
|
|
LDAP allows authentication via any SASL mechanism [SASL]. As LDAP
|
|
|
|
|
includes native anonymous and name/password (plain text)
|
|
|
|
|
authentication methods, the ANONYMOUS [ANONYMOUS] and PLAIN [PLAIN]
|
|
|
|
|
SASL mechanisms are typically not used with LDAP.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
Each protocol that utilizes SASL services is required to supply
|
|
|
|
|
certain information profiling the way they are exposed through the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
protocol ([SASL] section 4). This section explains how each of
|
|
|
|
|
these profiling requirements are met by LDAP.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
5.2.1.1. SASL Service Name for LDAP
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
The SASL service name for LDAP is "ldap", which has been registered
|
2004-10-27 12:52:02 +08:00
|
|
|
|
with the IANA as a SASL service name.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2.1.2. SASL Authentication Initiation and Protocol Exchange
|
|
|
|
|
|
|
|
|
|
SASL authentication is initiated via a BindRequest message
|
2004-08-28 02:41:02 +08:00
|
|
|
|
([Protocol] section 4.2) with the following parameters:
|
|
|
|
|
|
|
|
|
|
- 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
|
2005-11-26 03:23:13 +08:00
|
|
|
|
MAY be used to provide an initial client response for
|
2004-08-28 02:41:02 +08:00
|
|
|
|
mechanisms that are defined to have the client send data first
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(see [SASL] sections 3 and 5 ).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 15]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
In general, a SASL authentication protocol exchange consists of a
|
|
|
|
|
series of server challenges and client responses, the contents of
|
2005-11-26 03:23:13 +08:00
|
|
|
|
which are specific to and defined by the SASL mechanism. Thus for
|
2004-08-28 02:41:02 +08:00
|
|
|
|
some SASL authentication mechanisms, it may be necessary for the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
client to respond to one or more server challenges by sending
|
|
|
|
|
BindRequest messages multiple times. A challenge is indicated by
|
|
|
|
|
the server sending a BindResponse message with the resultCode set to
|
|
|
|
|
saslBindInProgress. This indicates that the server requires the
|
|
|
|
|
client to send a new BindRequest message with the same SASL
|
|
|
|
|
mechanism to continue the authentication process.
|
|
|
|
|
|
|
|
|
|
To the LDAP message layer, these challenges and responses are opaque
|
|
|
|
|
binary tokens of arbitrary length. LDAP servers use the
|
|
|
|
|
serverSaslCreds field (an OCTET STRING) in a BindResponse message to
|
|
|
|
|
transmit each challenge. LDAP clients use the credentials field
|
|
|
|
|
(an OCTET STRING) in the SaslCredentials sequence of a BindRequest
|
|
|
|
|
message to transmit each response. Note that unlike some Internet
|
|
|
|
|
protocols where SASL is used, LDAP is not text based and does not
|
|
|
|
|
Base64-transform these challenge and response values.
|
|
|
|
|
|
|
|
|
|
Clients sending a BindRequest message with the sasl choice selected
|
|
|
|
|
SHOULD send a zero-length value in the name field. Servers
|
|
|
|
|
receiving a BindRequest message with the sasl choice selected SHALL
|
|
|
|
|
ignore any value in the name field.
|
|
|
|
|
|
|
|
|
|
A client may abort a SASL Bind negotiation by sending a BindRequest
|
|
|
|
|
message with a different value in the mechanism field of
|
|
|
|
|
SaslCredentials or with an AuthenticationChoice other than sasl.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
If the client sends a BindRequest with the sasl mechanism field as
|
2005-06-26 07:06:51 +08:00
|
|
|
|
an empty string, the server MUST return a BindResponse with a
|
2005-11-26 03:23:13 +08:00
|
|
|
|
resultCode of authMethodNotSupported. This will allow the client to
|
2004-08-28 02:41:02 +08:00
|
|
|
|
abort a negotiation if it wishes to try again with the same SASL
|
|
|
|
|
mechanism.
|
|
|
|
|
|
|
|
|
|
The server indicates completion of the SASL challenge-response
|
2005-06-26 07:06:51 +08:00
|
|
|
|
exchange by responding with a BindResponse in which the resultCode
|
2005-11-26 03:23:13 +08:00
|
|
|
|
value is not saslBindInProgress.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
The serverSaslCreds field in the BindResponse 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
|
2005-11-26 03:23:13 +08:00
|
|
|
|
the indication of successful completion.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.2.1.3. Optional Fields
|
|
|
|
|
|
|
|
|
|
As discussed above, LDAP provides an optional field for carrying an
|
|
|
|
|
initial response in the message initiating the SASL exchange and
|
|
|
|
|
provides an optional field for carrying additional data in the
|
|
|
|
|
message indicating outcome of the authentication exchange. As the
|
|
|
|
|
mechanism-specific content in these fields may be zero-length, SASL
|
|
|
|
|
requires protocol specifications to detail how an empty field is
|
|
|
|
|
distinguished from an absent field.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 16]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Zero-length initial response data is distinguished from no initial
|
|
|
|
|
response data in the initiating message, a BindRequest PDU, by the
|
|
|
|
|
presence of the SaslCredentials.credentials OCTET STRING (of length
|
|
|
|
|
zero) in that PDU. If the client does not intend to send an
|
|
|
|
|
initial response with the BindRequest initiating the SASL exchange,
|
|
|
|
|
it MUST omit the SaslCredentials.credentials OCTET STRING (rather
|
|
|
|
|
than including an zero-length OCTET STRING).
|
|
|
|
|
|
|
|
|
|
Zero-length additional data is distinguished from no additional
|
|
|
|
|
response data in the outcome message, a BindResponse PDU, by the
|
|
|
|
|
presence of the serverSaslCreds OCTET STRING (of length zero) in
|
|
|
|
|
that PDU. If a server does not intend to send additional data in
|
|
|
|
|
the BindResponse message indicating outcome of the exchange, the
|
|
|
|
|
server SHALL omit the serverSaslCreds OCTET STRING (rather than
|
|
|
|
|
including a zero-length OCTET STRING).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.2.1.4. Octet Where Negotiated Security Layers Take Effect
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
SASL layers take effect following the transmission by the server and
|
2005-11-26 03:23:13 +08:00
|
|
|
|
reception by the client of the final BindResponse in the SASL
|
|
|
|
|
exchange with a resultCode of success.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
Once a SASL layer providing data 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
|
2005-11-26 03:23:13 +08:00
|
|
|
|
BindResponse of the Bind operation that caused the new layer to take
|
2005-06-26 07:06:51 +08:00
|
|
|
|
effect). Thus, an established SASL layer is not affected by a
|
|
|
|
|
failed or non-SASL Bind.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
5.2.1.5. Determination of Supported SASL Mechanisms
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
Clients may determine the SASL mechanisms a server supports by
|
2005-11-26 03:23:13 +08:00
|
|
|
|
reading the 'supportedSASLMechanisms' attribute from the root DSE
|
2004-08-28 02:41:02 +08:00
|
|
|
|
(DSA-Specific Entry) ([Models] section 5.1). The values of this
|
|
|
|
|
attribute, if any, list the mechanisms the server supports in the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
current LDAP session state. LDAP servers SHOULD allow all clients--
|
|
|
|
|
even those with an anonymous authorization--to retrieve the
|
2006-02-14 05:58:54 +08:00
|
|
|
|
'supportedSASLMechanisms' attribute of the root DSE both before and
|
|
|
|
|
after the SASL authentication exchange. The purpose of the latter
|
|
|
|
|
is to allow the client to detect possible downgrade attacks (see
|
|
|
|
|
section 6.4 and [SASL] section 6.1.2).
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
|
|
|
|
Because SASL mechanisms provide critical security functions, clients
|
2004-08-28 02:41:02 +08:00
|
|
|
|
and servers should be configurable to specify what mechanisms are
|
2005-11-26 03:23:13 +08:00
|
|
|
|
acceptable and allow only those mechanisms to be used. Both clients
|
2004-08-28 02:41:02 +08:00
|
|
|
|
and servers must confirm that the negotiated security level meets
|
2005-11-26 03:23:13 +08:00
|
|
|
|
their requirements before proceeding to use the session.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2.1.6. Rules for Using SASL Layers
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 17]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Upon installing a SASL layer, the client SHOULD discard or refresh
|
|
|
|
|
all information about the server it obtained prior to the initiation
|
|
|
|
|
of the SASL negotiation and not obtained through secure mechanisms.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
If a lower level security layer (such as TLS) is installed, any SASL
|
|
|
|
|
layer SHALL be layered on top of such security layers regardless of
|
2005-11-26 03:23:13 +08:00
|
|
|
|
the order of their negotiation. In all other respects, the SASL
|
2006-02-14 05:58:54 +08:00
|
|
|
|
layer and other security layers act independently, e.g., if both a
|
|
|
|
|
TLS layer and a SASL layer are in effect then removing the TLS layer
|
|
|
|
|
does not affect the continuing service of the SASL layer.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2.1.7. Support for Multiple Authentications
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
LDAP supports multiple SASL authentications as defined in [SASL]
|
|
|
|
|
section 4.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2.1.8. SASL Authorization Identities
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Some SASL mechanisms allow clients to request a desired
|
|
|
|
|
authorization identity for the LDAP session ([SASL] section 3.4.
|
|
|
|
|
The decision to allow or disallow the current authentication
|
|
|
|
|
identity to have access to the requested authorization identity is a
|
|
|
|
|
matter of local policy. The authorization identity is a string of
|
|
|
|
|
UTF-8 [RFC3629] encoded [Unicode] characters corresponding to the
|
|
|
|
|
following ABNF [RFC2234bis] grammar:
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
authzId = dnAuthzId / uAuthzId
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
; distinguished-name-based authz id
|
|
|
|
|
dnAuthzId = "dn:" distinguishedName
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
; unspecified authorization id, UTF-8 encoded
|
|
|
|
|
uAuthzId = "u:" userid
|
|
|
|
|
userid = *UTF8 ; syntax unspecified
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
where the distinguishedName rule is defined in section 3 of [LDAPDN]
|
|
|
|
|
and the UTF8 rule is defined in section 1.4 of [Models].
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
The dnAuthzId choice is used to assert authorization identities in
|
|
|
|
|
the form of a distinguished name to be matched in accordance with
|
2005-11-26 03:23:13 +08:00
|
|
|
|
the distinguishedNameMatch matching rule [Syntaxes]. There is no
|
2005-06-26 07:06:51 +08:00
|
|
|
|
requirement that the asserted distinguishedName value be that of an
|
|
|
|
|
entry in the directory.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 18]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
The uAuthzId choice allows clients to assert an authorization
|
2005-11-26 03:23:13 +08:00
|
|
|
|
identity that is not in distinguished name form. The format of
|
|
|
|
|
userid is defined only as a sequence of UTF-8 [RFC3629] encoded
|
2004-08-28 02:41:02 +08:00
|
|
|
|
[Unicode] characters, and any further interpretation is a local
|
2005-06-26 07:06:51 +08:00
|
|
|
|
matter. For example, the userid could identify a user of a specific
|
2005-11-26 03:23:13 +08:00
|
|
|
|
directory service, be a login name or be an email address. A
|
|
|
|
|
uAuthzId SHOULD NOT be assumed to be globally unique. To compare
|
|
|
|
|
uAuthzID values, each uAuthzID value MUST be prepared as a "query"
|
|
|
|
|
string using [RFC4013] and then the two values are compared octet-
|
|
|
|
|
wise.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
The above grammar is extensible. The authzId production may be
|
|
|
|
|
extended to support additional forms of identities. Each form is
|
|
|
|
|
distinguished by its unique prefix (see section 3.12 of [LDAPIANA]
|
|
|
|
|
for registration requirements).
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
5.2.2. SASL Semantics Within LDAP
|
|
|
|
|
|
|
|
|
|
Implementers must take care to maintain the semantics of SASL
|
|
|
|
|
specifications when handling data that has different semantics in
|
|
|
|
|
the LDAP protocol.
|
|
|
|
|
|
|
|
|
|
For example, the SASL DIGEST-MD5 authentication mechanism [RFC2829]
|
|
|
|
|
utilizes an authentication identity and a realm which are
|
|
|
|
|
syntactically simple strings and semantically simple username and
|
|
|
|
|
realm values ([DIGEST-MD5] section 2.1). These values are not LDAP
|
|
|
|
|
DNs, and there is no requirement that they be represented or treated
|
|
|
|
|
as such.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.2.3. SASL EXTERNAL Authentication Mechanism
|
|
|
|
|
|
|
|
|
|
A client can use the SASL EXTERNAL [SASL] mechanism to request the
|
|
|
|
|
LDAP server to authenticate and establish a resulting authorization
|
2005-06-26 07:06:51 +08:00
|
|
|
|
identity using security credentials exchanged by a lower security
|
2006-02-14 05:58:54 +08:00
|
|
|
|
layer (such as by TLS authentication). 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. Although this situation has the
|
|
|
|
|
effect of leaving the LDAP session in an anonymous state (section
|
|
|
|
|
4), the state of any installed security layer is unaffected.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
|
|
|
|
A client may either request that its authorization identity be
|
|
|
|
|
automatically derived from its authentication credentials exchanged
|
2005-11-26 03:23:13 +08:00
|
|
|
|
at a lower security layer or it may explicitly provide a desired
|
|
|
|
|
authorization identity. The former is known as an implicit
|
|
|
|
|
assertion, and the latter as an explicit assertion.
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
5.2.3.1. Implicit Assertion
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 19]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
An implicit authorization identity assertion is performed by
|
|
|
|
|
invoking a Bind request of the SASL form using the EXTERNAL
|
|
|
|
|
mechanism name that does not include the optional credentials field
|
2005-11-26 03:23:13 +08:00
|
|
|
|
(found within the SaslCredentials sequence in the BindRequest). The
|
2005-06-26 07:06:51 +08:00
|
|
|
|
server will derive the client's authorization identity from the
|
2006-02-14 05:58:54 +08:00
|
|
|
|
authentication identity supplied by a security layer (e.g., a public
|
2005-06-26 07:06:51 +08:00
|
|
|
|
key certificate used during TLS layer installation) according to
|
2005-11-26 03:23:13 +08:00
|
|
|
|
local policy. The underlying mechanics of how this is accomplished
|
2005-06-26 07:06:51 +08:00
|
|
|
|
are implementation specific.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
5.2.3.2. Explicit Assertion
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
|
|
|
|
An explicit authorization identity assertion is performed by
|
|
|
|
|
invoking a Bind request of the SASL form using the EXTERNAL
|
|
|
|
|
mechanism name that includes the credentials field (found within the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
SaslCredentials sequence in the BindRequest). The value of the
|
|
|
|
|
credentials field (an OCTET STRING) is the asserted authorization
|
|
|
|
|
identity and MUST be constructed as documented in section 5.2.1.8.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
6. Security Considerations
|
|
|
|
|
|
|
|
|
|
Security issues are discussed throughout this document. The
|
2004-08-28 02:41:02 +08:00
|
|
|
|
unsurprising conclusion is that security is an integral and
|
|
|
|
|
necessary part of LDAP. This section discusses a number of LDAP-
|
|
|
|
|
related security considerations.
|
2004-03-19 10:16:37 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
6.1. General LDAP Security Considerations
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
LDAP itself provides no security or protection from accessing or
|
|
|
|
|
updating the directory by other means than through the LDAP
|
2006-02-14 05:58:54 +08:00
|
|
|
|
protocol, e.g., from inspection of server database files by database
|
2005-11-26 03:23:13 +08:00
|
|
|
|
administrators.
|
|
|
|
|
|
|
|
|
|
Sensitive data may be carried in almost any LDAP message and its
|
|
|
|
|
disclosure may be subject to privacy laws or other legal regulation
|
|
|
|
|
in many countries. Implementers should take appropriate measures to
|
|
|
|
|
protect sensitive data from disclosure to unauthorized entities.
|
|
|
|
|
|
|
|
|
|
A session on which the client has not established data integrity and
|
2006-02-14 05:58:54 +08:00
|
|
|
|
privacy services (e.g., via StartTLS, IPsec or a suitable SASL
|
2005-11-26 03:23:13 +08:00
|
|
|
|
mechanism) is subject to man-in-the-middle attacks to view and
|
|
|
|
|
modify information in transit. Client and server implementers
|
|
|
|
|
SHOULD take measures to protect sensitive data in the LDAP session
|
|
|
|
|
from these attacks by using data protection services as discussed in
|
|
|
|
|
this document. Clients and servers should provide the ability to be
|
|
|
|
|
configured to require these protections. A resultCode of
|
|
|
|
|
confidentialityRequired indicates that the server requires
|
|
|
|
|
establishment of (stronger) data confidentiality protection in order
|
|
|
|
|
to perform the requested operation.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 20]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Access control should always be applied when reading sensitive
|
|
|
|
|
information or updating directory information.
|
|
|
|
|
|
|
|
|
|
Various security factors, including authentication and authorization
|
|
|
|
|
information and data security services may change during the course
|
|
|
|
|
of the LDAP session, or even during the performance of a particular
|
|
|
|
|
operation. Implementations should be robust in the handling of
|
|
|
|
|
changing security factors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.2. StartTLS Security Considerations
|
|
|
|
|
|
|
|
|
|
All security gained via use of the StartTLS operation is gained by
|
|
|
|
|
the use of TLS itself. The StartTLS operation, on its own, does not
|
|
|
|
|
provide any additional security.
|
|
|
|
|
|
|
|
|
|
The level of security provided through the use of TLS depends
|
|
|
|
|
directly on both the quality of the TLS implementation used and the
|
|
|
|
|
style of usage of that implementation. Additionally, a man-in-the-
|
|
|
|
|
middle attacker can remove the StartTLS extended operation from the
|
|
|
|
|
'supportedExtension' attribute of the root DSE. Both parties SHOULD
|
|
|
|
|
independently ascertain and consent to the security level achieved
|
|
|
|
|
once TLS is established and before beginning use of the TLS-
|
|
|
|
|
protected session. For example, the security level of the TLS layer
|
|
|
|
|
might have been negotiated down to plaintext.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Clients MUST either warn the user when the security level achieved
|
|
|
|
|
does not provide an acceptable level of data confidentiality and/or
|
|
|
|
|
data integrity protection, or be configurable to refuse to proceed
|
|
|
|
|
without an acceptable level of security.
|
|
|
|
|
|
|
|
|
|
As stated in section 3.1.2, a server may use a local security policy
|
|
|
|
|
to determine whether to successfully complete TLS negotiation.
|
|
|
|
|
Information in the user's certificate that is originated or verified
|
|
|
|
|
by the certification authority should be used by the policy
|
|
|
|
|
administrator when configuring the identification and authorization
|
|
|
|
|
policy.
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
Server implementers SHOULD allow server administrators to elect
|
|
|
|
|
whether and when data confidentiality and integrity are required, as
|
|
|
|
|
well as elect whether authentication of the client during the TLS
|
|
|
|
|
handshake is required.
|
|
|
|
|
|
|
|
|
|
Implementers should be aware of and understand TLS security
|
|
|
|
|
considerations as discussed in the TLS specification [TLS].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.3. Bind Operation Security Considerations
|
|
|
|
|
|
|
|
|
|
This section discusses several security considerations relevant to
|
|
|
|
|
LDAP authentication via the Bind operation.
|
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
6.3.1. Unauthenticated Mechanism Security Considerations
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 21]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Operational experience shows that clients can (and frequently do)
|
|
|
|
|
misuse the unauthenticated authentication mechanism of the simple
|
|
|
|
|
Bind method (see section 5.1.2). For example, a client program
|
|
|
|
|
might make a decision to grant access to non-directory information
|
|
|
|
|
on the basis of successfully completing a Bind operation. LDAP
|
|
|
|
|
server implementations may return a success response to an
|
|
|
|
|
unauthenticated Bind request. This may erroneously leave the client
|
|
|
|
|
with the impression that the server has successfully authenticated
|
|
|
|
|
the identity represented by the distinguished name when in reality,
|
|
|
|
|
an anonymous authorization state has been established. Clients that
|
|
|
|
|
use the results from a simple Bind operation to make authorization
|
|
|
|
|
decisions should actively detect unauthenticated Bind requests (by
|
|
|
|
|
verifying that the supplied password is not empty) and react
|
|
|
|
|
appropriately.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.3.2. Name/Password Mechanism Security Considerations
|
|
|
|
|
|
|
|
|
|
The name/password authentication mechanism of the simple Bind method
|
|
|
|
|
discloses the password to the server, which is an inherent security
|
|
|
|
|
risk. There are other mechanisms such as SASL DIGEST-MD5 [RFC2829]
|
|
|
|
|
that do not disclose the password to the server.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.3.3. Password-related Security Considerations
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
LDAP allows multi-valued password attributes. In systems where
|
|
|
|
|
entries are expected to have one and only one password,
|
|
|
|
|
administrative controls should be provided to enforce this behavior.
|
|
|
|
|
|
|
|
|
|
The use of clear text passwords and other unprotected authentication
|
|
|
|
|
credentials is strongly discouraged over open networks when the
|
2005-06-26 07:06:51 +08:00
|
|
|
|
underlying transport service cannot guarantee confidentiality. LDAP
|
2005-11-26 03:23:13 +08:00
|
|
|
|
implementations SHOULD NOT by default support authentication methods
|
|
|
|
|
using clear text passwords and other unprotected authentication
|
|
|
|
|
credentials unless the data on the session is protected using TLS or
|
|
|
|
|
other data confidentiality and data integrity protection.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +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 authentication [SASL]
|
|
|
|
|
mechanisms that do not transmit passwords in the clear or by
|
2004-10-27 12:52:02 +08:00
|
|
|
|
negotiating transport or session layer data confidentiality services
|
2004-08-28 02:41:02 +08:00
|
|
|
|
before transmitting password values.
|
|
|
|
|
|
|
|
|
|
To mitigate the security risks associated with the transfer of
|
|
|
|
|
passwords, a server implementation that supports any password-based
|
|
|
|
|
authentication mechanism that transmits passwords in the clear MUST
|
|
|
|
|
support a policy mechanism that at the time of authentication or
|
|
|
|
|
password modification, requires:
|
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
A TLS layer has been successfully installed.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 22]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
OR
|
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
Some other data confidentiality mechanism that protects the
|
2005-11-26 03:23:13 +08:00
|
|
|
|
password value from eavesdropping has been provided.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-06-26 07:06:51 +08:00
|
|
|
|
OR
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
The server returns a resultCode of confidentialityRequired for
|
2005-11-26 03:23:13 +08:00
|
|
|
|
the operation (i.e. name/password 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.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Server implementations may also want to provide policy mechanisms to
|
|
|
|
|
invalidate or otherwise protect accounts in situations where a
|
|
|
|
|
server detects that a password for an account has been transmitted
|
|
|
|
|
in the clear.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
6.3.4. Hashed Password Security Considerations
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Some authentication mechanisms (e.g., DIGEST-MD5) transmit a hash of
|
2005-11-26 03:23:13 +08:00
|
|
|
|
the password value that may be vulnerable to offline dictionary
|
|
|
|
|
attacks. Implementers should take care to protect such hashed
|
|
|
|
|
password values during transmission using TLS or other
|
|
|
|
|
confidentiality mechanisms.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
6.4.SASL Security Considerations
|
|
|
|
|
|
|
|
|
|
Until data integrity service is installed on an LDAP session, an
|
|
|
|
|
attacker can modify the transmitted values of the
|
|
|
|
|
'supportedSASLMechanisms' attribute response and thus downgrade the
|
|
|
|
|
list of available SASL mechanisms to include only the least secure
|
|
|
|
|
mechanism. To detect this type of attack, the client may retrieve
|
|
|
|
|
the SASL mechanisms the server makes available both before and after
|
|
|
|
|
data integrity service is installed on an LDAP session. If the
|
|
|
|
|
client finds that the integrity-protected list (the list obtained
|
|
|
|
|
after data integrity service was installed) contains a stronger
|
|
|
|
|
mechanism than those in the previously obtained list, the client
|
|
|
|
|
should assume the previously obtained list was modified by an
|
|
|
|
|
attacker. In this circumstance it is recommended that the client
|
|
|
|
|
close the underlying transport connection and then reconnect to
|
|
|
|
|
reestablish the session.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.5. Related Security Considerations
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
Additional security considerations relating to the various
|
|
|
|
|
authentication methods and mechanisms discussed in this document
|
2005-11-26 03:23:13 +08:00
|
|
|
|
apply and can be found in [SASL], [RFC4013], [StringPrep] and
|
2004-08-28 02:41:02 +08:00
|
|
|
|
[RFC3629].
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 23]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
7. IANA Considerations
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
It is requested that the IANA update the LDAP Protocol Mechanism
|
|
|
|
|
registry to indicate that this document and [Protocol] provide the
|
|
|
|
|
definitive technical specification for the StartTLS
|
|
|
|
|
(1.3.6.1.4.1.1466.20037) extended operation.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
8. Acknowledgments
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This document combines information originally contained in RFC 2251,
|
|
|
|
|
RFC 2829 and RFC 2830 which are products of the LDAP Extensions
|
|
|
|
|
(LDAPEXT) Working Group.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This document is a product of the IETF LDAP Revision (LDAPBIS)
|
|
|
|
|
working group.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
9. Normative References
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
[[Note to the RFC Editor: please replace the citation tags used in
|
|
|
|
|
referencing Internet-Drafts with tags of the form RFCnnnn.]]
|
|
|
|
|
|
|
|
|
|
[LDAPDN] Zeilenga, Kurt D. (editor), "LDAP: String
|
|
|
|
|
Representation of Distinguished Names", draft-ietf-
|
|
|
|
|
ldapbis-dn-xx.txt, a work in progress.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[LDAPIANA] Zeilenga, K., "IANA Considerations for LDAP", draft-
|
|
|
|
|
ietf-ldapbis-bcp64-xx.txt, (a work in progress).
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
[Matching] Hoffman, Paul and Steve Hanna, "Matching Text Strings
|
|
|
|
|
in PKIX Certificates", draft-hoffman-pkix-stringmatch-
|
|
|
|
|
xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[Models] Zeilenga, Kurt D. (editor), "LDAP: Directory
|
|
|
|
|
Information Models", draft-ietf-ldapbis-models-xx.txt,
|
|
|
|
|
a work in progress.
|
|
|
|
|
|
|
|
|
|
[Protocol] Sermersheim, J., "LDAP: The Protocol", draft-ietf-
|
|
|
|
|
ldapbis-protocol-xx.txt, a work in progress.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[RFC791] Information Sciences Institute, "INTERNET PROTOCOL
|
|
|
|
|
DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION", RFC
|
|
|
|
|
791, September 1981.
|
|
|
|
|
|
|
|
|
|
[RFC2119] Bradner, S., "Key Words for use in RFCs to Indicate
|
|
|
|
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
|
|
|
|
|
|
|
|
|
[RFC2234bis] Crocker, D., Ed. and P. Overell, "Augmented BNF for
|
|
|
|
|
Syntax Specifications: ABNF", draft-crocker-abnf-
|
|
|
|
|
rfc2234bis-xx, a work in progress.
|
|
|
|
|
|
|
|
|
|
[RFC2460] Deering, S., R. Hinden, "Internet Protocol, Version 6
|
|
|
|
|
(IPv6)", RFC 2460, December 1998.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 24]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[RFC3490] Falstrom, P., P. Hoffman, and A. Costello,
|
|
|
|
|
"Internationalizing Domain Names In Applications
|
|
|
|
|
(IDNA)", RFC 3490, March 2003.
|
|
|
|
|
|
|
|
|
|
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
|
|
|
|
|
10646", RFC 3629, STD 63, November 2003.
|
|
|
|
|
|
|
|
|
|
[RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User
|
|
|
|
|
Names and Passwords", RFC 4013, February 2005.
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
[Roadmap] K. Zeilenga, "LDAP: Technical Specification Road Map",
|
|
|
|
|
draft-ietf-ldapbis-roadmap-xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[SASL] Melnikov, A. (editor), "Simple Authentication and
|
|
|
|
|
Security Layer (SASL)", draft-ietf-sasl-rfc2222bis-
|
|
|
|
|
xx.txt, a work in progress.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[Schema] Dally, K. (editor), "LDAP: User Schema", draft-ietf-
|
|
|
|
|
ldapbis-user-schema-xx.txt, a work in progress.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
[StringPrep] M. Blanchet, "Preparation of Internationalized Strings
|
|
|
|
|
('stringprep')", draft-hoffman-rfc3454bis-xx.txt, a
|
|
|
|
|
work in progress.
|
|
|
|
|
|
2004-08-28 02:41:02 +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.
|
|
|
|
|
|
|
|
|
|
[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
|
|
|
|
|
"Unicode Standard Annex #28: Unicode 3.2"
|
|
|
|
|
(http://www.unicode.org/reports/tr28/).
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
10. Informative References
|
2004-03-19 10:16:37 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[[Note to the RFC Editor: please replace the citation tags used in
|
|
|
|
|
referencing Internet-Drafts with tags of the form RFCnnnn.]]
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[ANONYMOUS] Zeilenga, K., "Anonymous SASL Mechanism", draft-
|
|
|
|
|
zeilenga-sasl-anon-xx.txt, a work in progress.
|
|
|
|
|
|
|
|
|
|
[DIGEST-MD5] Leach, P. C. Newman, and A. Melnikov, "Using Digest
|
|
|
|
|
Authentication as a SASL Mechanism", draft-ietf-sasl-
|
|
|
|
|
rfc2831bis-xx.txt, a work in progress.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 25]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[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
|
|
|
|
|
2000.
|
|
|
|
|
|
|
|
|
|
[RFC2829] Wahl, M. et al, "Authentication Methods for LDAP", RFC
|
|
|
|
|
2829, May 2000.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
|
|
|
|
|
Internet Protocol", RFC 4301, December 2005.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
Author's Address
|
|
|
|
|
|
|
|
|
|
Roger Harrison
|
|
|
|
|
Novell, Inc.
|
|
|
|
|
1800 S. Novell Place
|
|
|
|
|
Provo, UT 84606
|
|
|
|
|
USA
|
|
|
|
|
+1 801 861 2642
|
|
|
|
|
roger_harrison@novell.com
|
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
Appendix A. Authentication and Authorization Concepts
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This appendix is non-normative.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
A.1. Access Control Policy
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
An access control policy is a set of rules defining the protection
|
|
|
|
|
of resources, generally in terms of the capabilities of persons or
|
2005-11-26 03:23:13 +08:00
|
|
|
|
other entities accessing those resources. Security objects and
|
2004-08-28 02:41:02 +08:00
|
|
|
|
mechanisms, such as those described here, enable the expression of
|
|
|
|
|
access control policies and their enforcement.
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
A.2. Access Control Factors
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
A request, when it is being processed by a server, may be associated
|
2005-11-26 03:23:13 +08:00
|
|
|
|
with a wide variety of security-related factors ([Protocol] section
|
|
|
|
|
4.2). 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
|
2004-08-28 02:41:02 +08:00
|
|
|
|
factors may be specific to the request itself, others may be
|
2005-11-26 03:23:13 +08:00
|
|
|
|
associated with the transport connection via which the request is
|
2006-02-14 05:58:54 +08:00
|
|
|
|
transmitted, others (e.g., time of day) may be "environmental".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 26]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
Access control policies are expressed in terms of access control
|
2005-11-26 03:23:13 +08:00
|
|
|
|
factors. For example, "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.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
A.3. Authentication, Credentials, Identity
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
Authentication credentials are the evidence supplied by one party to
|
2006-02-14 05:58:54 +08:00
|
|
|
|
another, asserting the identity of the supplying party (e.g., a
|
|
|
|
|
user) who is attempting to establish a new authorization state 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.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
There are many forms of authentication credentials. The form used
|
2004-08-28 02:41:02 +08:00
|
|
|
|
depends upon the particular authentication mechanism negotiated by
|
2005-11-26 03:23:13 +08:00
|
|
|
|
the parties. X.509 certificates, Kerberos tickets, and simple
|
|
|
|
|
identity and password pairs are all examples of authentication
|
|
|
|
|
credential forms. Note that an authentication mechanism may
|
|
|
|
|
constrain the form of authentication identities used with it.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
A.4. Authorization Identity
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
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; for example, "entity
|
|
|
|
|
X can perform operation Y on resource Z."
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
The authorization identity of an LDAP session is often semantically
|
|
|
|
|
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 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 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Appendix B. Summary of Changes
|
|
|
|
|
|
|
|
|
|
This appendix is non-normative.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 27]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This appendix summarizes substantive changes made to RFC 2251, RFC
|
|
|
|
|
2829 and RFC 2830. In addition to the specific changes detailed
|
|
|
|
|
below, the reader of this document should be aware that numerous
|
|
|
|
|
general editorial changes have been made to the original content
|
|
|
|
|
from the source documents. These changes include the following:
|
|
|
|
|
|
|
|
|
|
- The material originally found in RFC 2251 sections 4.2.1 and
|
|
|
|
|
4.2.2, RFC 2829 (all sections except sections 2 and 4) and RFC
|
|
|
|
|
2830 was combined into a single document
|
|
|
|
|
|
|
|
|
|
- The combined material was substantially reorganized and edited
|
|
|
|
|
to group related subjects, improve the document flow and clarify
|
|
|
|
|
intent.
|
|
|
|
|
|
|
|
|
|
- Changes were made throughout the text to align with definitions
|
|
|
|
|
of LDAP protocol layers and IETF security terminology.
|
|
|
|
|
|
|
|
|
|
- Substantial updates and additions were made to security
|
|
|
|
|
considerations from both documents based on current operational
|
|
|
|
|
experience.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.1. Changes Made to RFC 2251
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This section summarizes the substantive changes made to sections
|
|
|
|
|
4.2.1 and 4.2.2 of RFC 2251 by this document. Additional
|
|
|
|
|
substantive changes to section 4.2.1 of RFC 2251 are also documented
|
|
|
|
|
in [Protocol].
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.1.1. Section 4.2.1 (Sequencing of the Bind Request)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Paragraph 1: Removed the sentence, "If at any stage the client
|
|
|
|
|
wishes to abort the bind process it MAY unbind and then drop the
|
|
|
|
|
underlying connection." The Unbind operation still permits this
|
|
|
|
|
behavior, but it is not documented explicitly.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Clarified that the session is moved to an anonymous state upon
|
|
|
|
|
receipt of the BindRequest PDU and that it is only moved to a
|
|
|
|
|
non-anonymous state if and when the Bind request is successful.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.1.2. Section 4.2.2 (Authentication and Other Security Services)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- RFC 2251 states that anonymous authentication MUST be performed
|
|
|
|
|
using the simple bind method. This specification defines the
|
|
|
|
|
anonymous authentication mechanism of the simple bind method and
|
|
|
|
|
requires all conforming implementations to support it. Other
|
|
|
|
|
authentication mechanisms producing anonymous authentication and
|
|
|
|
|
authorization state may also be implemented and used by
|
|
|
|
|
conforming implementations.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2. Changes Made to RFC 2829
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 28]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This section summarizes the substantive changes made to RFC 2829.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.1. Section 4 (Required security mechanisms)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- The name/password authentication mechanism (see section B.2.5
|
|
|
|
|
below) protected by TLS replaces the SASL DIGEST-MD5 mechanism
|
|
|
|
|
as LDAP's mandatory-to-implement password-based authentication
|
|
|
|
|
mechanism. Implementations are encouraged to continue
|
|
|
|
|
supporting SASL DIGEST-MD5 [RFC2829].
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.2. Section 5.1 (Anonymous authentication procedure)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Clarified that anonymous authentication involves a name value of
|
|
|
|
|
zero length and a password value of zero length. The
|
|
|
|
|
unauthenticated authentication mechanism was added to handle
|
|
|
|
|
simple Bind requests involving a name value with a non-zero
|
|
|
|
|
length and a password value of zero length.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.3. Section 6 (Password-based authentication)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- See section B.2.1.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.4. Section 6.1 (Digest authentication)
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- As the SASL-DIGEST-MD5 mechanism is no longer mandatory to
|
|
|
|
|
implement, this section is now historical and was not included
|
|
|
|
|
in this document. RFC 2829 section 6.1 continues to document the
|
|
|
|
|
SASL DIGEST-MD5 authentication mechanism.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.5. Section 6.2 ("simple" authentication choice with TLS)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Renamed the "simple" authentication mechanism to the
|
|
|
|
|
name/password authentication mechanism to better describe it.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- The use of TLS was generalized to align with definitions of LDAP
|
|
|
|
|
protocol layers. TLS establishment is now discussed as an
|
|
|
|
|
independent subject and is generalized for use with all
|
|
|
|
|
authentication mechanisms and other security layers.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Removed the implication that the userPassword attribute is the
|
|
|
|
|
sole location for storage of password values to be used in
|
|
|
|
|
authentication. There is no longer any implied requirement for
|
|
|
|
|
how or where passwords are stored at the server for use in
|
|
|
|
|
authentication.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.6. Section 6.3 (Other authentication choices with TLS)
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 29]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- See section B.2.5.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.7. Section 7.1 (Certificate-based authentication with TLS)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- See section B.2.5.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.8. Section 8 (Other mechanisms)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- All SASL authentication mechanisms are explicitly allowed within
|
|
|
|
|
LDAP. Specifically, this means the SASL ANONYMOUS and SASL PLAIN
|
|
|
|
|
mechanisms are no longer precluded from use within LDAP.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.9. Section 9 (Authorization identity)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Specified matching rules for dnAuthzID and uAuthzID values. In
|
|
|
|
|
particular, the DN value in the dnAuthzID form must be matched
|
|
|
|
|
using DN matching rules and the uAuthzID value MUST be prepared
|
|
|
|
|
using SASLprep rules before being compared octet-wise.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Clarified that uAuthzID values should not be assumed to be
|
|
|
|
|
globally unique.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.2.10. Section 10 (TLS Ciphersuites)
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- TLS Ciphersuite recommendations are no longer included in this
|
|
|
|
|
specification. Implementations must still support the
|
|
|
|
|
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA ciphersuite.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Clarified that anonymous authentication involves a name value of
|
|
|
|
|
zero length and a password value of zero length. The
|
|
|
|
|
unauthenticated authentication mechanism was added to handle
|
|
|
|
|
simple Bind requests involving a name value with a non-zero
|
|
|
|
|
length and a password value of zero length.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.3. Changes Made to RFC 2830:
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This section summarizes the substantive changes made to sections 3
|
|
|
|
|
and 5 of RFC 2830. Readers should consult [Protocol] for summaries
|
|
|
|
|
of changes to other sections.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.3.1. Section 3.6 (Server Identity Check)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 30]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Substantially updated the server identity check algorithm to
|
|
|
|
|
ensure that it is complete and robust. In particular, the use
|
|
|
|
|
of all relevant values in the subjectAltName and the subjectName
|
|
|
|
|
fields are covered by the algorithm and matching rules are
|
|
|
|
|
specified for each type of value. Mapped (derived) forms of the
|
|
|
|
|
server identity may now be used when the mapping is performed in
|
|
|
|
|
a secure fashion.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.3.2. Section 3.7 (Refresh of Server Capabilities Information)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Clients are no longer required to always refresh information
|
|
|
|
|
about server capabilities following TLS establishment to allow
|
|
|
|
|
for situations where this information was obtained through a
|
|
|
|
|
secure mechanism.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.3.3. Section 5.2 (Effects of TLS on Authorization Identity)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Establishing a TLS layer on an LDAP session may now cause the
|
|
|
|
|
authorization state of the LDAP session to change.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
B.3.4. Section 5.1.1 (TLS Closure Effects)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
- Closing a TLS layer on an LDAP session changes the
|
|
|
|
|
authentication and authorization state of the LDAP session based
|
|
|
|
|
on local policy. Specifically, this means that implementations
|
|
|
|
|
are not required to to change the authentication and
|
|
|
|
|
authorization states to anonymous upon TLS closure.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Appendix C. Changes for draft-ldapbis-authmeth-19
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
[[Note to RFC Editor: Please remove this appendix upon publication
|
|
|
|
|
of this Internet-Draft as an RFC.]]
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This appendix is non-normative.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
This appendix summarizes changes made in this revision of the
|
|
|
|
|
document.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
- This draft has addressed all issues raised for the -18 version.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
- Several minor edits for clarity and to remove typos based on
|
|
|
|
|
feedback from WG, IETF and IESG reviews.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Abstract
|
|
|
|
|
- Added statement regarding RFCs obsoleted by this document.
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 2
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Harrison Expires August 2006 [Page 31]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
- Changed mandatory-to-implement TLS ciphersuite from
|
|
|
|
|
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA to
|
|
|
|
|
TLS_RSA_WITH_3DES_EDE_CBC_SHA based on IESG recommendation and
|
|
|
|
|
WG consensus.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 5.2.1.5
|
|
|
|
|
- Clarified that 'supportedSASLMechanisms' should be retrievable
|
|
|
|
|
by all clients both before and after SASL negotiation to allow
|
|
|
|
|
detection of mechanism downgrade attacks.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 5.2.1.6
|
|
|
|
|
- Changed wording to reflect the fact that SASL layers cannot be
|
|
|
|
|
uninstalled from the session.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 5.2.3
|
|
|
|
|
- Removed reference to IPsec as a source of authorization identity.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 6.2
|
|
|
|
|
- When TLS layer does not provide an acceptable level of security
|
|
|
|
|
client MUST warn the user or refuse to proceed. (This was
|
|
|
|
|
changed from SHOULD based on IESG recommendation and WG
|
|
|
|
|
consensus.)
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
- Added a security consideration regarding the proper usage of
|
|
|
|
|
information found in the client certificate.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 6.4
|
|
|
|
|
- Added a new section on SASL security considerations that
|
|
|
|
|
discusses SASL mechanism downgrade attacks.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Section 10
|
|
|
|
|
- Replaced references to RFC 2401 with RFC 4301.
|
2005-06-26 07:06:51 +08:00
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Intellectual Property Rights
|
2004-10-27 12:52:02 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
The IETF takes no position regarding the validity or scope of any
|
|
|
|
|
Intellectual Property Rights 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; nor does it represent that
|
|
|
|
|
it has made any independent effort to identify any such rights.
|
|
|
|
|
Information on the procedures with respect to rights in RFC
|
|
|
|
|
documents can be found in BCP 78 and BCP 79.
|
|
|
|
|
|
|
|
|
|
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
|
|
|
|
|
specification can be obtained from the IETF on-line IPR repository
|
|
|
|
|
at http://www.ietf.org/ipr.
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 32]
|
|
|
|
|
|
|
|
|
|
Internet-Draft LDAP Authentication Methods February 2006
|
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
The IETF invites any interested party to bring to its attention any
|
|
|
|
|
copyrights, patents or patent applications, or other proprietary
|
|
|
|
|
rights that may cover technology that may be required to implement
|
|
|
|
|
this standard. Please address the information to the IETF at ietf-
|
|
|
|
|
ipr@ietf.org.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
2004-08-28 02:41:02 +08:00
|
|
|
|
Full Copyright Statement
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
Copyright (C) The Internet Society (2006).
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
This document is subject to the rights, licenses and restrictions
|
|
|
|
|
contained in BCP 78, and except as set forth therein, the authors
|
|
|
|
|
retain all their rights.
|
2004-08-28 02:41:02 +08:00
|
|
|
|
|
|
|
|
|
This document and the information contained herein are provided on
|
|
|
|
|
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
|
|
|
|
|
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
|
|
|
|
|
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
|
|
|
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
|
|
|
|
|
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
|
|
|
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
2003-12-18 08:36:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-02-14 05:58:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Harrison Expires August 2006 [Page 33]
|
2005-11-26 03:23:13 +08:00
|
|
|
|
|