mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
449 lines
17 KiB
Plaintext
449 lines
17 KiB
Plaintext
|
||
|
||
INTERNET-DRAFT S. Legg
|
||
draft-legg-ldap-binary-01.txt Adacel Technologies
|
||
Intended Category: Standards Track 16 June 2004
|
||
Updates: RFC 2251bis
|
||
|
||
|
||
Lightweight Directory Access Protocol (LDAP):
|
||
The Binary Encoding Option
|
||
|
||
Copyright (C) The Internet Society (2004). All Rights Reserved.
|
||
|
||
Status of this Memo
|
||
|
||
|
||
This document is an Internet-Draft and is in full conformance with
|
||
all provisions of Section 10 of RFC2026.
|
||
|
||
Internet-Drafts are working documents of the Internet Engineering
|
||
Task Force (IETF), its areas, and its working groups. Note that
|
||
other groups may also distribute working documents as
|
||
Internet-Drafts.
|
||
|
||
Internet-Drafts are draft documents valid for a maximum of six months
|
||
and may be updated, replaced, or obsoleted by other documents at any
|
||
time. It is inappropriate to use Internet-Drafts as reference
|
||
material or to cite them other than as "work in progress".
|
||
|
||
The list of current Internet-Drafts can be accessed at
|
||
http://www.ietf.org/ietf/1id-abstracts.txt
|
||
|
||
The list of Internet-Draft Shadow Directories can be accessed at
|
||
http://www.ietf.org/shadow.html.
|
||
|
||
This document is intended to be, after appropriate review and
|
||
revision, submitted to the RFC Editor as a Standard Track document.
|
||
Distribution of this document is unlimited. Technical discussion of
|
||
this document should take place on the IETF LDAP Revision Working
|
||
Group (LDAPbis) mailing list <ietf-ldapbis@openldap.org>. Please
|
||
send editorial comments directly to the editor
|
||
<steven.legg@adacel.com.au>.
|
||
|
||
This Internet-Draft expires on 16 December 2004.
|
||
|
||
|
||
Abstract
|
||
|
||
Each attribute stored in a Lightweight Directory Access Protocol
|
||
(LDAP) directory has a defined syntax (i.e., data type). A syntax
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 1]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
definition specifies how attribute values conforming to the syntax
|
||
are normally represented when transferred in LDAP operations. This
|
||
representation is referred to as the LDAP-specific encoding to
|
||
distinguish it from other methods of encoding attribute values. This
|
||
document defines an attribute option, the binary option, which can be
|
||
used to specify that the associated attribute values are instead
|
||
encoded according to the Basic Encoding Rules (BER) used by X.500
|
||
directories.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 2]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||
2. Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||
3. The binary Option. . . . . . . . . . . . . . . . . . . . . . . 4
|
||
4. Syntaxes Requiring Binary Transfer . . . . . . . . . . . . . . 4
|
||
5. Attributes Returned in a Search. . . . . . . . . . . . . . . . 5
|
||
6. All User Attributes. . . . . . . . . . . . . . . . . . . . . . 5
|
||
7. Conflicting Requests . . . . . . . . . . . . . . . . . . . . . 6
|
||
8. Security Considerations. . . . . . . . . . . . . . . . . . . . 6
|
||
9. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 6
|
||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
|
||
10.1. Normative References. . . . . . . . . . . . . . . . . . 6
|
||
10.2. Informative References. . . . . . . . . . . . . . . . . 7
|
||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 7
|
||
Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 8
|
||
|
||
1. Introduction
|
||
|
||
Each attribute stored in a Lightweight Directory Access Protocol
|
||
(LDAP) directory [ROADMAP] has a defined syntax (i.e., data type)
|
||
which constrains the structure and format of its values.
|
||
|
||
The description of each syntax [SYNTAX] specifies how attribute or
|
||
assertion values [MODELS] conforming to the syntax are normally
|
||
represented when transferred in LDAP operations [PROT]. This
|
||
representation is referred to as the LDAP-specific encoding to
|
||
distinguish it from other methods of encoding attribute values.
|
||
|
||
This document defines an attribute option, the binary option, which
|
||
can be used in an attribute description [MODELS] in an LDAP operation
|
||
to specify that the associated attribute values or assertion value
|
||
are, or are requested to be, encoded according to the Basic Encoding
|
||
Rules (BER) [BER] as used by X.500 [X500] directories, instead of the
|
||
usual LDAP-specific encoding.
|
||
|
||
The binary option was originally defined in RFC 2251 [RFC2251]. The
|
||
LDAP technical specification [ROADMAP] has obsoleted the previously
|
||
defined LDAP technical specification [RFC3377], which included RFC
|
||
2251. However the binary option was not included in the newer LDAP
|
||
technical specification due to a lack of consistency in its
|
||
implementation. This document reintroduces the binary option.
|
||
However, except for the case of certain attribute syntaxes whose
|
||
values are required to BER encoded, no attempt is made here to
|
||
eliminate the known consistency problems. Rather the focus is on
|
||
capturing current behaviours. A more thorough solution is left for a
|
||
future specification.
|
||
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 3]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
2. Conventions
|
||
|
||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||
document are to be interpreted as described in BCP 14, RFC 2119
|
||
[KEYWORD].
|
||
|
||
3. The binary Option
|
||
|
||
The binary option is indicated with the attribute option string
|
||
"binary" in an attribute description. Note that, like all attribute
|
||
options, the string representing the binary option is case
|
||
insensitive.
|
||
|
||
In terms of the protocol [PROT], the binary option specifies that the
|
||
contents octets of the associated AttributeValue or AssertionValue
|
||
OCTET STRING are a complete BER encoding of the relevant value.
|
||
|
||
Where the binary option is present in an attribute description the
|
||
associated attribute values or assertion value MUST be BER encoded.
|
||
Note that it is possible for a syntax to be defined such that its
|
||
LDAP-specific encoding is exactly the same as its BER encoding.
|
||
|
||
The binary option is not a tagging option [MODELS] so the presence of
|
||
the binary option does not specify an attribute subtype. An
|
||
attribute description containing the binary option references exactly
|
||
the same attribute as the same attribute description without the
|
||
binary option. The supertype/subtype relationships of attributes
|
||
with tagging options are not altered in any way by the presence or
|
||
absence of the binary option.
|
||
|
||
An attribute description SHALL be treated as unrecognized if it
|
||
contains the binary option and the syntax of the attribute does not
|
||
have an associated ASN.1 type [SYNTAX], or the BER encoding of that
|
||
type is not supported.
|
||
|
||
The presence or absence of the binary option only affects the
|
||
transfer of attribute and assertion values in protocol; servers store
|
||
any particular attribute value in a single format of their choosing.
|
||
|
||
4. Syntaxes Requiring Binary Transfer
|
||
|
||
Certain syntaxes are required to be transferred in the BER encoded
|
||
form. These syntaxes are said to have a binary transfer requirement.
|
||
The Certificate, Certificate List, Certificate Pair and Supported
|
||
Algorithm syntaxes [PKI] are examples of syntaxes with a binary
|
||
transfer requirement. These syntaxes also have an additional
|
||
requirement that the exact BER encoding must be preserved. Note that
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 4]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
this is a property of the syntaxes themselves, and not a property of
|
||
the binary option.
|
||
|
||
5. Attributes Returned in a Search
|
||
|
||
An LDAP search request [PROT] contains a list of the attributes (the
|
||
requested attributes list) to be returned from each entry matching
|
||
the search filter. An attribute description in the requested
|
||
attributes list also implicitly requests all subtypes of the
|
||
attribute type in the attribute description, whether through
|
||
attribute subtyping or attribute tagging option subtyping [MODELS].
|
||
|
||
The requested attributes list MAY contain attribute descriptions with
|
||
the binary option, but MUST NOT contain two attribute descriptions
|
||
with the same attribute type and the same tagging options (even if
|
||
only one of them has the binary option). The binary option in an
|
||
attribute description in the requested attributes list implicitly
|
||
applies to all the subtypes of the attribute type in the attribute
|
||
description (however, see Section 7).
|
||
|
||
Attributes of a syntax with the binary transfer requirement SHALL be
|
||
returned in the binary form, i.e., with the binary option in the
|
||
attribute description and the associated attribute values BER
|
||
encoded, regardless of whether the binary option was present in the
|
||
request (for the attribute or for one of its supertypes).
|
||
|
||
Attributes of a syntax without the binary transfer requirement SHOULD
|
||
be returned in the form explicitly requested. That is, if the
|
||
attribute description in the requested attributes list contains the
|
||
binary option then the corresponding attribute in the result SHOULD
|
||
be in the binary form. If the attribute description in the request
|
||
does not contain the binary option then the corresponding attribute
|
||
in the result SHOULD NOT be in the binary form. A server MAY omit an
|
||
attribute from the result if it does not support the requested
|
||
encoding.
|
||
|
||
Regardless of the encoding chosen, a particular attribute value is
|
||
returned at most once.
|
||
|
||
6. All User Attributes
|
||
|
||
If the list of attributes in a search request is empty, or contains
|
||
the special attribute description string "*", then all user
|
||
attributes are requested to be returned.
|
||
|
||
Attributes of a syntax with the binary transfer requirement SHALL be
|
||
returned in the binary form.
|
||
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 5]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
Attributes of a syntax without the binary transfer requirement and
|
||
having a defined LDAP-specific encoding SHOULD NOT be returned in the
|
||
binary form.
|
||
|
||
Attributes of a syntax without the binary transfer requirement and
|
||
without a defined LDAP-specific encoding may be returned in the
|
||
binary form or omitted from the result.
|
||
|
||
7. Conflicting Requests
|
||
|
||
A particular attribute could be explicitly requested by an attribute
|
||
description and/or implicitly requested by the attribute descriptions
|
||
of one or more of its supertypes, or by the special attribute
|
||
description string "*". If the binary option is not present in all
|
||
these attribute descriptions, nor absent in all these attribute
|
||
descriptions, then the server is free to choose whether to return the
|
||
attribute in the binary form.
|
||
|
||
8. Security Considerations
|
||
|
||
When interpreting security-sensitive fields, and in particular fields
|
||
used to grant or deny access, implementations MUST ensure that any
|
||
matching rule comparisons are done on the underlying abstract value,
|
||
regardless of the particular encoding used.
|
||
|
||
9. IANA Considerations
|
||
|
||
The Internet Assigned Numbers Authority (IANA) is requested to update
|
||
the LDAP attribute description option registry [BCP64] as indicated
|
||
by the following template:
|
||
|
||
Subject: Request for
|
||
LDAP Attribute Description Option Registration
|
||
Option Name: binary
|
||
Family of Options: NO
|
||
Person & email address to contact for further information:
|
||
Steven Legg <steven.legg@adacel.com.au>
|
||
Specification: RFC XXXX
|
||
Author/Change Controller: IESG
|
||
Comments: The existing registration for "binary"
|
||
should be updated to refer to RFC XXXX.
|
||
|
||
10. References
|
||
|
||
10.1. Normative References
|
||
|
||
[KEYWORD] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 6]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
[BCP64] Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
|
||
Considerations for the Lightweight Directory Access
|
||
Protcol (LDAP)", BCP 64, RFC 3383, September 2002.
|
||
|
||
[ROADMAP] Zeilenga, K., "Lightweight Directory Access Protocol
|
||
(LDAP): Technical Specification Road Map",
|
||
draft-ietf-ldapbis-roadmap-xx.txt, a work in progress,
|
||
June 2004.
|
||
|
||
[MODELS] Zeilenga, K., "LDAP: Directory Information Models",
|
||
draft-ietf-ldapbis-models-xx.txt, a work in progress, June
|
||
2004.
|
||
|
||
[PROT] Sermersheim, J., "LDAP: The Protocol",
|
||
draft-ietf-ldapbis-protocol-xx.txt, a work in progress,
|
||
May 2004.
|
||
|
||
[SYNTAX] Legg, S. and K. Dally, "Lightweight Directory Access
|
||
Protocol (LDAP): Syntaxes and Matching Rules",
|
||
draft-ietf-ldapbis-syntaxes-xx.txt, a work in progress,
|
||
May 2004.
|
||
|
||
[PKI] Chadwick, D. and S. Legg, "Internet X.509 Public Key
|
||
Infrastructure Additional LDAP Schema for PKIs and PMIs",
|
||
draft-pkix-ldap-schema-xx.txt, a work in progress, April
|
||
2002.
|
||
|
||
[BER] ITU-T Recommendation X.690 (07/02) | ISO/IEC 8825-1,
|
||
Information Technology - ASN.1 encoding rules:
|
||
Specification of Basic Encoding Rules (BER), Canonical
|
||
Encoding Rules (CER) and Distinguished Encoding Rules
|
||
(DER).
|
||
|
||
10.2. Informative References
|
||
|
||
[RFC2251] Wahl, M., Howes, T. and S. Kille, "Lightweight Directory
|
||
Access Protocol (v3)", RFC 2251, December 1997.
|
||
|
||
[RFC3377] Hodges, J. and R. Morgan, "Lightweight Directory Access
|
||
Protocol (v3): Technical Specification", RFC 3377,
|
||
September 2002.
|
||
|
||
[X500] ITU-T Recommendation X.500 (1993) | ISO/IEC 9594-1:1994,
|
||
"Information Technology - Open Systems Interconnection -
|
||
The Directory: Overview of concepts, models and services".
|
||
|
||
Author's Address
|
||
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 7]
|
||
|
||
INTERNET-DRAFT LDAP: The Binary Encoding Option June 16, 2004
|
||
|
||
|
||
Steven Legg
|
||
Adacel Technologies Ltd.
|
||
250 Bay Street
|
||
Brighton, Victoria 3186
|
||
AUSTRALIA
|
||
|
||
Phone: +61 3 8530 7710
|
||
Fax: +61 3 8530 7888
|
||
Email: steven.legg@adacel.com.au
|
||
|
||
Full Copyright Statement
|
||
|
||
Copyright (C) The Internet Society (2004). 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.
|
||
|
||
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.
|
||
|
||
Intellectual Property
|
||
|
||
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.
|
||
|
||
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.
|
||
|
||
|
||
|
||
|
||
Legg Expires 16 December 2004 [Page 8]
|
||
|
||
|