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]
|
|||
|
|
|||
|
|