Home | History | Annotate | Line # | Download | only in rfc
      1 
      2 
      3 
      4 
      5 
      6 
      7 Network Working Group                                        K. Zeilenga
      8 Request for Comments: 4525                           OpenLDAP Foundation
      9 Category: Informational                                        June 2006
     10 
     11 
     12               Lightweight Directory Access Protocol (LDAP)
     13                        Modify-Increment Extension
     14 
     15 
     16 Status of This Memo
     17 
     18    This memo provides information for the Internet community.  It does
     19    not specify an Internet standard of any kind.  Distribution of this
     20    memo is unlimited.
     21 
     22 Copyright Notice
     23 
     24    Copyright (C) The Internet Society (2006).
     25 
     26 Abstract
     27 
     28    This document describes an extension to the Lightweight Directory
     29    Access Protocol (LDAP) Modify operation to support an increment
     30    capability.  This extension is useful in provisioning applications,
     31    especially when combined with the assertion control and/or the pre-
     32    read or post-read control extension.
     33 
     34 Table of Contents
     35 
     36    1. Background and Intended Use .....................................1
     37    2. The Modify-Increment Extension ..................................2
     38    3. LDIF Support ....................................................2
     39    4. Security Considerations .........................................3
     40    5. IANA Considerations .............................................3
     41       5.1. Object Identifier ..........................................3
     42       5.2. LDAP Protocol Mechanism ....................................3
     43       5.3. LDAP Protocol Mechanism ....................................4
     44    6. References ......................................................4
     45       6.1. Normative References .......................................4
     46       6.2. Informative References .....................................5
     47 
     48 1.  Background and Intended Use
     49 
     50    The Lightweight Directory Access Protocol (LDAP) [RFC4510] does not
     51    currently provide an operation to increment values of an attribute.
     52    A client must read the values of the attribute and then modify those
     53    values to increment them by the desired amount.  As the values may be
     54    updated by other clients between this add and modify, the client must
     55 
     56 
     57 
     58 Zeilenga                     Informational                      [Page 1]
     59 
     61 RFC 4525            LDAP Modify-Increment Extension            June 2006
     62 
     63 
     64    be careful to construct the modify request so that it fails in this
     65    case, and upon failure, to re-read the values and construct a new
     66    modify request.
     67 
     68    This document extends the LDAP Modify Operation [RFC4511] to support
     69    an increment values capability.  This feature is intended to be used
     70    with either the LDAP pre-read or post-read control extensions
     71    [RFC4527].  This feature may also be used with the LDAP assertion
     72    control extension [RFC4528] to provide test-and-increment
     73    functionality.
     74 
     75    In this document key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
     76    "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
     77    "OPTIONAL" are to be interpreted as described in BCP 14 [RFC2119].
     78 
     79 2.  The Modify-Increment Extension
     80 
     81    This document extends the LDAP Modify request to support a increment
     82    values capability.  Implementations of this extension SHALL support
     83    an additional ModifyRequest operation enumeration value increment
     84    (3), as described herein.  Implementations not supporting this
     85    extension will treat this value as they would an unlisted value,
     86    e.g., as a protocol error.
     87 
     88    The increment (3) operation value specifies that an increment values
     89    modification is requested.  All existing values of the modification
     90    attribute are to be incremented by the listed value.  The
     91    modification attribute must be appropriate for the request (e.g., it
     92    must have INTEGER or other increment-able values), and the
     93    modification must provide one and only one value.  If the attribute
     94    is not appropriate for the request, a constraintViolation or other
     95    appropriate error is to be returned.  If multiple values are
     96    provided, a protocolError is to be returned.
     97 
     98    Servers supporting this feature SHOULD publish the object identifier
     99    (OID) 1.3.6.1.1.14  as a value of the 'supportedFeatures' [RFC4512]
    100    attribute in the root DSE.  Clients supporting this feature SHOULD
    101    NOT use the feature unless they know the server supports it.
    102 
    103 3. LDIF Support
    104 
    105    To represent Modify-Increment requests in LDAP Data Interchange
    106    Format [RFC2849], the ABNF [RFC4234] production <mod-spec> is
    107    extended as follows:
    108 
    109        mod-spec =/ "increment:" FILL AttributeDescription SEP
    110             attrval-spec "-" SEP
    111 
    112 
    113 
    114 
    115 Zeilenga                     Informational                      [Page 2]
    116 
    118 RFC 4525            LDAP Modify-Increment Extension            June 2006
    119 
    120 
    121    For example,
    122 
    123        # Increment uidNumber
    124        dn: cn=max-assigned uidNumber,dc=example,dc=com
    125        changetype: modify
    126        increment: uidNumber
    127        uidNumber: 1
    128        -
    129 
    130    This LDIF fragment represents a Modify request to increment the
    131    value(s) of uidNumber by 1.
    132 
    133 4.  Security Considerations
    134 
    135    General LDAP security considerations [RFC4510], as well as those
    136    specific to the LDAP Modify [RFC4511], apply to this Modify-Increment
    137    extension.  Beyond these considerations, it is noted that
    138    introduction of this extension should reduce application complexity
    139    (by providing one operation for what presently requires multiple
    140    operations) and, hence, it may aid in the production of correct and
    141    secure implementations.
    142 
    143 5.  IANA Considerations
    144 
    145    Registration of the following values [RFC4520] have been completed.
    146 
    147 5.1.  Object Identifier
    148 
    149    The IANA has assigned an LDAP Object Identifier to identify the LDAP
    150    Modify-Increment feature, as defined in this document.
    151 
    152        Subject: Request for LDAP Object Identifier Registration
    153        Person & email address to contact for further information:
    154            Kurt Zeilenga <kurt (a] OpenLDAP.org>
    155        Specification: RFC 4525
    156        Author/Change Controller: Author
    157        Comments:
    158            Identifies the LDAP Modify-Increment feature
    159 
    160 5.2.  LDAP Protocol Mechanism
    161 
    162    The following LDAP Protocol Mechanism has been registered.
    163 
    164        Subject: Request for LDAP Protocol Mechanism Registration
    165        Object Identifier: 1.3.6.1.1.14
    166        Description: Modify-Increment
    167        Person & email address to contact for further information:
    168            Kurt Zeilenga <kurt (a] openldap.org>
    169 
    170 
    171 
    172 Zeilenga                     Informational                      [Page 3]
    173 
    175 RFC 4525            LDAP Modify-Increment Extension            June 2006
    176 
    177 
    178        Usage: Feature
    179        Specification: RFC 4525
    180        Author/Change Controller: Kurt Zeilenga <kurt (a] openldap.org>
    181        Comments: none
    182 
    183 5.3.  LDAP Protocol Mechanism
    184 
    185    The IANA has assigned an LDAP ModifyRequest Operation Type (3)
    186    [RFC4520] for use in this document.
    187 
    188        Subject: Request for LDAP Protocol Mechanism Registration
    189        ModifyRequest Operation Name: increment
    190        Description: Modify-Increment
    191        Person & email address to contact for further information:
    192            Kurt Zeilenga <kurt (a] openldap.org>
    193        Usage: Feature
    194        Specification: RFC 4525
    195        Author/Change Controller: Kurt Zeilenga <kurt (a] openldap.org>
    196        Comments: none
    197 
    198 6.  References
    199 
    200 6.1.  Normative References
    201 
    202    [RFC2119]     Bradner, S., "Key words for use in RFCs to Indicate
    203                  Requirement Levels", BCP 14, RFC 2119, March 1997.
    204 
    205    [RFC4234]     Crocker, D. and P. Overell, "Augmented BNF for Syntax
    206                  Specifications: ABNF", RFC 4234, October 2005.
    207 
    208    [RFC2849]     Good, G., "The LDAP Data Interchange Format (LDIF) -
    209                  Technical Specification", RFC 2849, June 2000.
    210 
    211    [RFC4510]     Zeilenga, K., Ed., "Lightweight Directory Access
    212                  Protocol (LDAP): Technical Specification Road Map", RFC
    213                  4510, June 2006.
    214 
    215    [RFC4511]     Sermersheim, J., Ed., "Lightweight Directory Access
    216                  Protocol (LDAP): The Protocol", RFC 4511, June 2006.
    217 
    218    [RFC4512]     Zeilenga, K., "Lightweight Directory Access Protocol
    219                  (LDAP): Directory Information Models", RFC 4512, June
    220                  2006.
    221 
    222 
    223 
    224 
    225 
    226 
    227 
    228 
    229 Zeilenga                     Informational                      [Page 4]
    230 
    232 RFC 4525            LDAP Modify-Increment Extension            June 2006
    233 
    234 
    235 6.2.  Informative References
    236 
    237    [RFC4520]     Zeilenga, K., "Internet Assigned Numbers Authority
    238                  (IANA) Considerations for the Lightweight Directory
    239                  Access Protocol (LDAP)", BCP 64, RFC 4520, June 2006.
    240 
    241    [RFC4527]     Zeilenga, K., "Lightweight Directory Access Protocol
    242                  (LDAP) Read Entry Controls", RFC 4527, June 2006.
    243 
    244    [RFC4528]     Zeilenga, K., "Lightweight Directory Access Protocol
    245                  (LDAP) Assertion Control", RFC 4528, June 2006.
    246 
    247 Author's Address
    248 
    249    Kurt D. Zeilenga
    250    OpenLDAP Foundation
    251 
    252    EMail: Kurt (a] OpenLDAP.org
    253 
    254 
    255 
    256 
    257 
    258 
    259 
    260 
    261 
    262 
    263 
    264 
    265 
    266 
    267 
    268 
    269 
    270 
    271 
    272 
    273 
    274 
    275 
    276 
    277 
    278 
    279 
    280 
    281 
    282 
    283 
    284 
    285 
    286 Zeilenga                     Informational                      [Page 5]
    287 
    289 RFC 4525            LDAP Modify-Increment Extension            June 2006
    290 
    291 
    292 Full Copyright Statement
    293 
    294    Copyright (C) The Internet Society (2006).
    295 
    296    This document is subject to the rights, licenses and restrictions
    297    contained in BCP 78, and except as set forth therein, the authors
    298    retain all their rights.
    299 
    300    This document and the information contained herein are provided on an
    301    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
    302    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
    303    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
    304    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
    305    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
    306    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
    307 
    308 Intellectual Property
    309 
    310    The IETF takes no position regarding the validity or scope of any
    311    Intellectual Property Rights or other rights that might be claimed to
    312    pertain to the implementation or use of the technology described in
    313    this document or the extent to which any license under such rights
    314    might or might not be available; nor does it represent that it has
    315    made any independent effort to identify any such rights.  Information
    316    on the procedures with respect to rights in RFC documents can be
    317    found in BCP 78 and BCP 79.
    318 
    319    Copies of IPR disclosures made to the IETF Secretariat and any
    320    assurances of licenses to be made available, or the result of an
    321    attempt made to obtain a general license or permission for the use of
    322    such proprietary rights by implementers or users of this
    323    specification can be obtained from the IETF on-line IPR repository at
    324    http://www.ietf.org/ipr.
    325 
    326    The IETF invites any interested party to bring to its attention any
    327    copyrights, patents or patent applications, or other proprietary
    328    rights that may cover technology that may be required to implement
    329    this standard.  Please address the information to the IETF at
    330    ietf-ipr (a] ietf.org.
    331 
    332 Acknowledgement
    333 
    334    Funding for the RFC Editor function is provided by the IETF
    335    Administrative Support Activity (IASA).
    336 
    337 
    338 
    339 
    340 
    341 
    342 
    343 Zeilenga                     Informational                      [Page 6]
    344 
    346