6 INTERNET-DRAFT Kurt D. Zeilenga
7 Intended Category: Experimental OpenLDAP Foundation
8 Expires in six months 10 February 2005
12 LDAP Modify-Increment Extension
13 <draft-zeilenga-ldap-incr-01.txt>
18 This document is intended to be, after appropriate review and
19 revision, submitted to the RFC Editor as an Experimental document.
20 Distribution of this memo is unlimited. Technical discussion of this
21 document will take place on the IETF LDAP Extensions mailing list
22 <ldapext@ietf.org>. Please send editorial comments directly to the
23 author <Kurt@OpenLDAP.org>.
25 By submitting this Internet-Draft, I accept the provisions of Section
26 4 of RFC 3667. By submitting this Internet-Draft, I certify that any
27 applicable patent or other IPR claims of which I am aware have been
28 disclosed, or will be disclosed, and any of which I become aware will
29 be disclosed, in accordance with RFC 3668.
31 Internet-Drafts are working documents of the Internet Engineering Task
32 Force (IETF), its areas, and its working groups. Note that other
33 groups may also distribute working documents as Internet-Drafts.
35 Internet-Drafts are draft documents valid for a maximum of six months
36 and may be updated, replaced, or obsoleted by other documents at any
37 time. It is inappropriate to use Internet-Drafts as reference material
38 or to cite them other than as "work in progress."
40 The list of current Internet-Drafts can be accessed at
41 http://www.ietf.org/1id-abstracts.html
43 The list of Internet-Draft Shadow Directories can be accessed at
44 http://www.ietf.org/shadow.html
47 Copyright (C) The Internet Society (2005). All Rights Reserved.
49 Please see the Full Copyright section near the end of this document
57 Zeilenga LDAP Modify-Increment Extension [Page 1]
59 INTERNET-DRAFT draft-zeilenga-ldap-incr-01.txt 10 February 2005
64 This document describes an extension to the Lightweight Directory
65 Access Protocol (LDAP) Modify operation to support an increment
66 capability. This extension is useful in provisioning applications,
67 especially when combined with the assertion control and/or the
68 pre-read or post-read control extension.
71 1. Background and Intended Use
73 The Lightweight Directory Access Protocol [Roadmap] does not currently
74 provide an operation to increment values of an attribute. A client
75 must read the values of the attribute, then modify those values to
76 increment them by the desired amount. As the values may be updated by
77 other clients between this add and modify, the client must be careful
78 to construct the modify request so that it fails in this case, and
79 upon failure, re-read the values and construct a new modify request.
81 This document extends the LDAP Modify Operation [Protocol] to support
82 an increment values capability. This feature is intended to be used
83 with either the LDAP pre-read or post-read control extension
84 [ReadEntry]. This feature may also be used with the LDAP assertion
85 control [Assertion] to provide test-and-increment functionality.
87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
89 document are to be interpreted as described in BCP 14 [RFC2119].
92 2. The Modify-Increment Extension
94 This document extends the LDAP Modify request to support a increment
95 values capability. Implementations of this extension SHALL support an
96 additional ModifyRequest operation enumeration value increment (IANA-
97 ASSIGNED-TYPE) as described herein. Implementations not supporting
98 this extension will treat this value as they would an unlisted value,
99 e.g., as a protocol error.
101 The increment (IANA-ASSIGNED-TYPE) operation value specifies that an
102 increment values modification is requested. All existing values of
103 the modification attribute are to be incremented by the listed value.
104 The modification attribute must be appropriate for request, e.g., must
105 have INTEGER or other increment-able values, and the modification must
106 provide one and only value. If the attribute is not appropriate for
107 the request, a constraintViolation or other appropriate error is to be
108 returned. If multiple values are provided, a protocolError is to be
113 Zeilenga LDAP Modify-Increment Extension [Page 2]
115 INTERNET-DRAFT draft-zeilenga-ldap-incr-01.txt 10 February 2005
118 Servers supporting this feature SHOULD publish the object identifier
119 (OID) IANA-ASSIGNED-OID as a value of the 'supportedFeatures'
120 [RFC3674] attribute in the root DSE. Clients supporting this feature
121 SHOULD NOT use the feature unless they have knowledge the server
127 To represent Modify-Increment requests in LDAP Data Interchange Format
128 [RFC2849], the ABNF [RFC2234] production <mod-spec> is extended as
131 mod-spec /= "increment:" FILL AttributeDescription SEP
136 # Increment uidNumber
137 dn: cn=max-assigned uidNumber,dc=example,dc=com
143 This LDIF fragment represents a Modify request to increment the
144 value(s) of uidNumber by 1.
147 4. Security Considerations
149 General LDAP security considerations [Roadmap], as well as those
150 specific to the LDAP Modify [Protocol], apply to this Modify-Increment
151 extension. Beyond these considerations, it is noted that introduction
152 of this extension should reduce application complexity (by provide one
153 operation what presently requires multiple operation) and, hence, may
154 aide in the production of correct and secure implementations.
157 5. IANA Considerations
159 Registration of the following values [BCP64bis] is requested.
162 5.1. Object Identifier
164 It is requested that IANA assign an LDAP Object Identifier to identify
165 the LDAP Modify-Increment feature as defined in this document.
169 Zeilenga LDAP Modify-Increment Extension [Page 3]
171 INTERNET-DRAFT draft-zeilenga-ldap-incr-01.txt 10 February 2005
174 Subject: Request for LDAP Object Identifier Registration
175 Person & email address to contact for further information:
176 Kurt Zeilenga <kurt@OpenLDAP.org>
177 Specification: RFC XXXX
178 Author/Change Controller: Author
180 Identifies the LDAP Modify-Increment feature
184 5.2. LDAP Protocol Mechanism
186 It is requested that the following LDAP Protocol Mechanism be
189 Subject: Request for LDAP Protocol Mechanism Registration
190 Object Identifier: IANA-ASSIGNED-OID
191 Description: Modify-Increment
192 Person & email address to contact for further information:
193 Kurt Zeilenga <kurt@openldap.org>
195 Specification: RFC XXXX
196 Author/Change Controller: Kurt Zeilenga <kurt@openldap.org>
200 5.3. LDAP Protocol Mechanism
202 It is requested that IANA assign an LDAP ModifyRequest Operation Type
203 [BCP64bis] for use in this document.
205 Subject: Request for LDAP Protocol Mechanism Registration
206 ModifyRequest Operation Name: increment
207 Description: Modify-Increment
208 Person & email address to contact for further information:
209 Kurt Zeilenga <kurt@openldap.org>
211 Specification: RFC XXXX
212 Author/Change Controller: Kurt Zeilenga <kurt@openldap.org>
225 Zeilenga LDAP Modify-Increment Extension [Page 4]
227 INTERNET-DRAFT draft-zeilenga-ldap-incr-01.txt 10 February 2005
232 [[Note to the RFC Editor: please replace the citation tags used in
233 referencing Internet-Drafts with tags of the form RFCnnnn where
237 7.1. Normative References
239 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
240 Requirement Levels", BCP 14 (also RFC 2119), March 1997.
242 [RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
243 Specifications: ABNF", RFC 2234, November 1997.
245 [RFC2849] Good, G., "The LDAP Data Interchange Format (LDIF) -
246 Technical Specification", RFC 2849, June 2000.
248 [Features] Zeilenga, K., "Feature Discovery in LDAP", RFC 3674,
251 [Roadmap] Zeilenga, K. (editor), "LDAP: Technical Specification
252 Road Map", draft-ietf-ldapbis-roadmap-xx.txt, a work in
255 [Protocol] Sermersheim, J. (editor), "LDAP: The Protocol",
256 draft-ietf-ldapbis-protocol-xx.txt, a work in progress.
259 7.2. Informative References
261 [BCP64bis] Zeilenga, K., "IANA Considerations for LDAP",
262 draft-ietf-ldapbis-bcp64-xx.txt, a work in progress.
264 [ReadEntry] Zeilenga, K., "LDAP Read Entry Controls",
265 draft-zeilenga-ldap-readentry-xx.txt, a work in
268 [Assertion] Zeilenga, K., "LDAP Assertion Control",
269 draft-zeilenga-ldap-assert-xx.txt, a work in progress.
271 [ASSIGN] OpenLDAP Foundation, "OpenLDAP OID Delegations",
272 http://www.openldap.org/foundation/oid-delegate.txt.
274 [PRIVATE] IANA, "Private Enterprise Numbers",
275 http://www.iana.org/assignments/enterprise-numbers.
281 Zeilenga LDAP Modify-Increment Extension [Page 5]
283 INTERNET-DRAFT draft-zeilenga-ldap-incr-01.txt 10 February 2005
286 Intellectual Property Rights
288 The IETF takes no position regarding the validity or scope of any
289 Intellectual Property Rights or other rights that might be claimed to
290 pertain to the implementation or use of the technology described in
291 this document or the extent to which any license under such rights
292 might or might not be available; nor does it represent that it has
293 made any independent effort to identify any such rights. Information
294 on the procedures with respect to rights in RFC documents can be found
295 in BCP 78 and BCP 79.
297 Copies of IPR disclosures made to the IETF Secretariat and any
298 assurances of licenses to be made available, or the result of an
299 attempt made to obtain a general license or permission for the use of
300 such proprietary rights by implementers or users of this specification
301 can be obtained from the IETF on-line IPR repository at
302 http://www.ietf.org/ipr.
304 The IETF invites any interested party to bring to its attention any
305 copyrights, patents or patent applications, or other proprietary
306 rights that may cover technology that may be required to implement
307 this standard. Please address the information to the IETF at
314 Copyright (C) The Internet Society (2005). This document is subject
315 to the rights, licenses and restrictions contained in BCP 78, and
316 except as set forth therein, the authors retain all their rights.
318 This document and the information contained herein are provided on an
319 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
320 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
321 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
322 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
323 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
324 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
337 Zeilenga LDAP Modify-Increment Extension [Page 6]