RFC 3909
Lightweight Directory Access Protocol (LDAP) Cancel Operation
RFC 3909 π The LDAP Cancel Operation
okay bestie, this one's the LDAP Cancel Operation π It's an Standards Track spec from October 2004, written by Kurt D. Zeilenga of the OpenLDAP Foundation πΈ. It doesn't list anything it obsoletes or updates in its header, so it's standing on its own β¨.
Status of this Memo π
This doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements π«Ά. For the current standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited π¦.
Copyright Notice Β©οΈ
Copyright (C) The Internet Society (2004).
Abstract β¨
So this spec describes an LDAP extended operation that lets you cancel (or abandon) an outstanding operation π§. The vibe is that, unlike the LDAP Abandon operation, but like the X.511 Directory Access Protocol (DAP) Abandon operation, this one actually sends back a response telling you how it went π.
1. Background and Intent of Use π
Okay, so LDAP [RFC3377] has an Abandon operation [RFC2251] that clients can use to cancel other operations π . The problem is Abandon doesn't send a response, and the abandoned operation doesn't need to respond either π. So the client basically gets zero clear info about whether the abandon actually worked π.
X.511 DAP [X.511] has an Abandon operation that does get a response, and it also requires the abandoned operation to return a response saying it was canceled π₯. The LDAP Cancel operation is modeled after that DAP one, so it's giving main character energy π¦.
The LDAP Cancel operation SHOULD be used instead of the LDAP Abandon operation when the client needs an indication of the outcome β¨. It can cancel both interrogation and update operations π.
Protocol elements are described using ASN.1 [X.680] with implicit tags π§. "BER-encoded" just means the element gets encoded using the Basic Encoding Rules [X.690], under the restrictions in Section 5.1 of [RFC2251] π.
Quick glossary: DSA stands for Directory System Agent (or server), and DSE stands for DSA-specific Entry π«Ά.
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 [RFC2119] π₯.
2. Cancel Operation π
The Cancel operation is an LDAP Extended Operation [RFC2251, Section 4.12] identified by the object identifier 1.3.6.1.1.8 πΈ. This section covers the syntax of the Cancel request and response messages, and it defines extra LDAP resultCodes π .
2.1. Cancel Request π¦
The Cancel request is an ExtendedRequest where the requestName field holds 1.3.6.1.1.8, and the requestValue field holds a BER-encoded cancelRequestValue β¨.
cancelRequestValue ::= SEQUENCE {
cancelID MessageID
-- MessageID is as defined in [RFC2251]
}
The cancelID field holds the message ID of the operation you want canceled π.
2.2. Cancel Response π
A Cancel response is an ExtendedResponse where the responseName and response fields are absent π§.
2.3. Additional Result Codes π₯
Implementations of this specification SHALL recognize the following additional resultCode values π:
canceled (118)
noSuchOperation (119)
tooLate (120)
cannotCancel (121)
3. Operational Semantics π
The whole point of the Cancel Operation is to ask the server to cancel an outstanding operation that was issued within the same session π«Ά.
The client asks for cancelation by issuing a Cancel Response with a cancelID set to the message ID of the outstanding operation π. The Cancel Request itself has its own distinct message ID β¨. Clients SHOULD NOT request the cancelation of the same operation multiple times π.
If the server is willing and able to cancel the outstanding operation identified by the cancelId, the server SHALL return a Cancel Response with a success resultCode, and the canceled operation SHALL fail with the canceled resultCode π₯. Otherwise, the Cancel Response SHALL have a non-success resultCode and SHALL NOT have an impact upon the outstanding operation (if it exists) π.
The protocolError resultCode gets returned if the server can't parse the requestValue, or if the requestValue is absent, π
The noSuchOperation resultCode gets returned if the server has no knowledge of the operation requested for cancelation π§.
The cannotCancel resultCode gets returned if the identified operation doesn't support cancelation, or if the cancel operation couldn't be performed. These classes of operations are NOT cancelable π¦:
- operations which have no response,
- operations which create, alter, or destroy authentication and/or authorization associations,
- operations which establish, alter, or tear-down security services, and
- operations which abandon or cancel other operations.
Specifically, the Abandon, Bind, Start TLS [RFC2830], Unbind, and Cancel operations are not cancelable π.
The Cancel operation cannot be abandoned. π ββοΈ
The tooLate resultCode gets returned to say it's too late to cancel the outstanding operation π. For example, the server may return tooLate for a request to cancel an outstanding modify operation that has already committed updates to the underlying data store π¬.
Servers SHOULD indicate their support for this extended operation by providing 1.3.6.1.1.8 as a value of the 'supportedExtension' attribute type in their root DSE π. A server MAY choose to advertise this extension only when the client is authorized to use it π.
4. Security Considerations π
This one is serious, bestie, so read closely π
This operation is meant to let a user cancel operations they previously issued during the current LDAP association π«Ά. In certain cases, like when the Proxy Authorization Control is in use, different outstanding operations may be processed under different LDAP associations πΈ. Servers MUST NOT allow a user to cancel an operation belonging to another user π«.
Some operations should not be cancelable for security reasons β¨. This spec disallows canceling the Bind operation and the Start TLS extended operation, so that authentication, authorization, and security layer semantics don't get more complicated π§. Designers of future extended operations and/or controls should disallow abandonment and cancelation when appropriate π.
5. IANA Considerations π·
The following values [RFC3383] have been registered by the IANA π .
5.1. Object Identifier π
The IANA has registered the LDAP Object Identifier 1.3.6.1.1.8 upon Standards Action, to identify the LDAP Cancel Operation as defined in this document π¦.
Subject: Request for LDAP Object Identifier Registration
Person & email address to contact for further information:
Kurt Zeilenga <kurt@OpenLDAP.org>
Specification: RFC 3909
Author/Change Controller: IESG
Comments:
Identifies the LDAP Cancel Operation
5.2. LDAP Protocol Mechanism π§
The IANA has registered the LDAP Protocol Mechanism described in this document upon Standards Action β¨.
Subject: LDAP Protocol Mechanism Registration
Object Identifier: 1.3.6.1.1.8
Description: LDAP Cancel Operation
Person & email address to contact for further information:
Kurt Zeilenga <kurt@openldap.org>
Usage: Extended Operation
Specification: RFC 3909
Author/Change Controller: IESG
Comments: none
5.3. LDAP Result Codes π
The IANA has registered the LDAP Result Codes described in this document upon Standards Action π.
Subject: LDAP Result Code Registration
Person & email address to contact for further information:
Kurt Zeilenga <kurt@OpenLDAP.org>
Result Code Name: canceled (118)
Result Code Name: noSuchOperation (119)
Result Code Name: tooLate (120)
Result Code Name: cannotCancel (121)
Specification: RFC 3909
Author/Change Controller: IESG
6. Acknowledgment π
The LDAP Cancel operation is modeled after the X.511 DAP Abandon operation π«Ά.
7. References π
7.1. Normative References π₯
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2251] Wahl, M., Howes, T., and S. Kille, "Lightweight Directory
Access Protocol (v3)", RFC 2251, December 1997.
[RFC2830] Hodges, J., Morgan, R., and M. Wahl, "Lightweight
Directory Access Protocol (v3): Extension for Transport
Layer Security", RFC 2830, May 2000.
[RFC3377] Hodges, J. and R. Morgan, "Lightweight Directory Access
Protocol (v3): Technical Specification", RFC 3377,
September 2002.
[X.680] International Telecommunication Union - Telecommunication
Standardization Sector, "Abstract Syntax Notation One
(ASN.1) - Specification of Basic Notation", X.680(1997)
(also ISO/IEC 8824-1:1998).
[X.690] International Telecommunication Union - Telecommunication
Standardization Sector, "Specification of ASN.1 encoding
rules: Basic Encoding Rules (BER), Canonical Encoding
Rules (CER), and Distinguished Encoding Rules (DER)",
X.690(1997) (also ISO/IEC 8825-1:1998).
7.2. Informative References πΈ
[RFC3383] Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
Considerations for the Lightweight Directory Access
Protocol (LDAP)", BCP 64, RFC 3383, September 2002.
[X.511] International Telecommunication Union - Telecommunication
Standardization Sector, "The Directory: Abstract Service
Definition", X.511(1993).
8. Author's Address π§
Kurt D. Zeilenga
OpenLDAP Foundation
EMail: Kurt@OpenLDAP.org
9. Full Copyright Statement Β©οΈ
Copyright (C) The Internet Society (2004).
This document is subject to the rights, licenses and restrictions contained in BCP 78, and at www.rfc-editor.org, 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 β¨
okay so the IETF is NOT picking a side here π It takes no position on whether any Intellectual Property Rights or other rights that someone might claim over the tech in this document are valid or in scope. It also doesn't say whether any license under those rights might or might not be available, and it doesn't claim to have done any independent digging to find such rights. If you want the ISOC rules for rights in ISOC Documents, check BCP 78 and BCP 79 π
Copies of IPR disclosures sent to the IETF Secretariat are a thing, and so are any assurances of licenses that might be offered. You can also find the results of anyone trying to get a general license or permission to use those proprietary rights for implementers or users of this specification in 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. Send that info to the IETF at ietf-ipr@ietf.org π
Acknowledgement
funding for the RFC Editor function is currently provided by the Internet Society π«Άπ
π¦ where this page comes from
- ietf: rfc3909 2004-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms