]> git.sur5r.net Git - openldap/blob - doc/drafts/draft-zeilenga-ldap-incr.txt
return to releng
[openldap] / doc / drafts / draft-zeilenga-ldap-incr.txt
1
2
3
4
5
6 INTERNET-DRAFT                                      Kurt D. Zeilenga
7 Intended Category: Experimental                  OpenLDAP Foundation
8 Expires in six months                               10 February 2005
9
10
11
12                      LDAP Modify-Increment Extension
13                     <draft-zeilenga-ldap-incr-01.txt>
14
15
16 Status of this Memo
17
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>.
24
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.
30
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.
34
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."
39
40   The list of current Internet-Drafts can be accessed at
41   http://www.ietf.org/1id-abstracts.html
42
43   The list of Internet-Draft Shadow Directories can be accessed at
44   http://www.ietf.org/shadow.html
45
46
47   Copyright (C) The Internet Society (2005).  All Rights Reserved.
48
49   Please see the Full Copyright section near the end of this document
50   for more information.
51
52
53
54
55
56
57 Zeilenga            LDAP Modify-Increment Extension             [Page 1]
58 \f
59 INTERNET-DRAFT       draft-zeilenga-ldap-incr-01.txt    10 February 2005
60
61
62 Abstract
63
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.
69
70
71 1.  Background and Intended Use
72
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.
80
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.
86
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].
90
91
92 2.  The Modify-Increment Extension
93
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.
100
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
109   returned.
110
111
112
113 Zeilenga            LDAP Modify-Increment Extension             [Page 2]
114 \f
115 INTERNET-DRAFT       draft-zeilenga-ldap-incr-01.txt    10 February 2005
116
117
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
122   supports it.
123
124
125   3. LDIF Support
126
127   To represent Modify-Increment requests in LDAP Data Interchange Format
128   [RFC2849], the ABNF [RFC2234] production <mod-spec> is extended as
129   follows:
130
131       mod-spec /= "increment:" FILL AttributeDescription SEP
132            attrval-spec "-" SEP
133
134   For example,
135
136       # Increment uidNumber
137       dn: cn=max-assigned uidNumber,dc=example,dc=com
138       changetype: modify
139       increment: uidNumber
140       uidNumber: 1
141       -
142
143   This LDIF fragment represents a Modify request to increment the
144   value(s) of uidNumber by 1.
145
146
147 4.  Security Considerations
148
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.
155
156
157 5.  IANA Considerations
158
159   Registration of the following values [BCP64bis] is requested.
160
161
162 5.1.  Object Identifier
163
164   It is requested that IANA assign an LDAP Object Identifier to identify
165   the LDAP Modify-Increment feature as defined in this document.
166
167
168
169 Zeilenga            LDAP Modify-Increment Extension             [Page 3]
170 \f
171 INTERNET-DRAFT       draft-zeilenga-ldap-incr-01.txt    10 February 2005
172
173
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
179       Comments:
180           Identifies the LDAP Modify-Increment feature
181
182
183
184 5.2. LDAP Protocol Mechanism
185
186   It is requested that the following LDAP Protocol Mechanism be
187   registered.
188
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>
194       Usage: Feature
195       Specification: RFC XXXX
196       Author/Change Controller: Kurt Zeilenga <kurt@openldap.org>
197       Comments: none
198
199
200 5.3. LDAP Protocol Mechanism
201
202   It is requested that IANA assign an LDAP ModifyRequest Operation Type
203   [BCP64bis] for use in this document.
204
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>
210       Usage: Feature
211       Specification: RFC XXXX
212       Author/Change Controller: Kurt Zeilenga <kurt@openldap.org>
213       Comments: none
214
215
216 6.  Author's Address
217
218   Kurt D. Zeilenga
219   OpenLDAP Foundation
220   <Kurt@OpenLDAP.org>
221
222
223
224
225 Zeilenga            LDAP Modify-Increment Extension             [Page 4]
226 \f
227 INTERNET-DRAFT       draft-zeilenga-ldap-incr-01.txt    10 February 2005
228
229
230 7. References
231
232   [[Note to the RFC Editor: please replace the citation tags used in
233   referencing Internet-Drafts with tags of the form RFCnnnn where
234   possible.]]
235
236
237 7.1. Normative References
238
239   [RFC2119]     Bradner, S., "Key words for use in RFCs to Indicate
240                 Requirement Levels", BCP 14 (also RFC 2119), March 1997.
241
242   [RFC2234]     Crocker, D. and P. Overell, "Augmented BNF for Syntax
243                 Specifications: ABNF", RFC 2234, November 1997.
244
245   [RFC2849]     Good, G., "The LDAP Data Interchange Format (LDIF) -
246                 Technical Specification", RFC 2849, June 2000.
247
248   [Features]    Zeilenga, K., "Feature Discovery in LDAP", RFC 3674,
249                 December 2003.
250
251   [Roadmap]     Zeilenga, K. (editor), "LDAP: Technical Specification
252                 Road Map", draft-ietf-ldapbis-roadmap-xx.txt, a work in
253                 progress.
254
255   [Protocol]    Sermersheim, J. (editor), "LDAP: The Protocol",
256                 draft-ietf-ldapbis-protocol-xx.txt, a work in progress.
257
258
259 7.2. Informative References
260
261   [BCP64bis]    Zeilenga, K., "IANA Considerations for LDAP",
262                 draft-ietf-ldapbis-bcp64-xx.txt, a work in progress.
263
264   [ReadEntry]   Zeilenga, K., "LDAP Read Entry Controls",
265                 draft-zeilenga-ldap-readentry-xx.txt, a work in
266                 progress.
267
268   [Assertion]   Zeilenga, K., "LDAP Assertion Control",
269                 draft-zeilenga-ldap-assert-xx.txt, a work in progress.
270
271   [ASSIGN]      OpenLDAP Foundation, "OpenLDAP OID Delegations",
272                 http://www.openldap.org/foundation/oid-delegate.txt.
273
274   [PRIVATE]     IANA, "Private Enterprise Numbers",
275                 http://www.iana.org/assignments/enterprise-numbers.
276
277
278
279
280
281 Zeilenga            LDAP Modify-Increment Extension             [Page 5]
282 \f
283 INTERNET-DRAFT       draft-zeilenga-ldap-incr-01.txt    10 February 2005
284
285
286 Intellectual Property Rights
287
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.
296
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.
303
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
308   ietf-ipr@ietf.org.
309
310
311
312 Full Copyright
313
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.
317
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.
325
326
327
328
329
330
331
332
333
334
335
336
337 Zeilenga            LDAP Modify-Increment Extension             [Page 6]
338 \f
339
340