rfc-4528

Lightweight Directory Access Protocol (LDAP) Assertion Control

K. Zeilenga
date2006-06 streamIETF wgnon working group statusPROPOSED STANDARD pages6 canonicalhttps://www.rfc-editor.org/rfc/rfc4528 doi10.17487/RFC4528 errataview
This document defines the Lightweight Directory Access Protocol (LDAP) Assertion Control, which allows a client to specify that a directory operation should only be processed if an assertion applied to the target entry of the operation is true. It can be used to construct "test and set", "test and clear", and other conditional operations. [STANDARDS-TRACK]

Extracted elements (12)

design-rationale §1

The Assertion Control enables conditional LDAP operations such as atomic 'test and set' and 'test and clear' by requiring that a filter applied to the target entry evaluate to TRUE before the operation proceeds. This mechanism supports concurrency-safe modifications without requiring separate test and update round trips.

ldap

interoperability-note §3

Other documents may specify how the Assertion Control applies to additional LDAP operations beyond those defined here; such documents must state how the target entry is determined for each operation.

ldap

normative-requirement §3 MUST

For Compare operations and all update operations (Add, Delete, Modify, ModifyDN), the evaluation of the assertion and the normal processing of the operation SHALL be done as one atomic action.

ldap

normative-requirement §3 SHOULD

Servers implementing this specification SHOULD publish the OID 1.3.6.1.1.12 as a value of the 'supportedControl' attribute in their root DSE. A server MAY choose to advertise this extension only when the client is authorized to use it.

ldap

normative-requirement §3 MUST

When the Assertion Control is attached to an LDAP request, if the Filter evaluates to TRUE the request is processed normally; if the Filter evaluates to FALSE or Undefined, the assertionFailed (122) result code MUST be returned and no further processing is performed.

ldap

protocol-element §3

For Search operations, the assertion is applied to the baseObject field after 'finding' but before 'searching'; no entries or continuation references are returned if the assertion fails.

ldap

protocol-element §3

The Assertion Control is appropriate for Add, Compare, Delete, Modify, ModifyDN (rename), and Search operations. It is inappropriate for Abandon, Bind, Unbind, and StartTLS operations.

ldap

protocol-element §3

The LDAP Assertion Control has controlType OID 1.3.6.1.1.12 and controlValue is a BER-encoded Filter (as defined in RFC 4511 Section 4.5.1). The criticality may be TRUE or FALSE, and there is no corresponding response control.

ldap

registry §5.1

IANA assigned LDAP Object Identifier 1.3.6.1.1.12 to identify the LDAP Assertion Control, registered under the LDAP Protocol Mechanism registry with usage type 'Control' per RFC 4520.

ldap, registry

registry §5.3

IANA assigned LDAP Result Code 'assertionFailed' with value 122, registered per RFC 4520, to be returned when the Assertion Control's filter evaluates to FALSE or Undefined.

ldap, registry

security-consideration §4 SHOULD

The filter may contain sensitive information and should be appropriately protected (e.g., via TLS). The assertion mechanism can be used to probe directory content, so it SHOULD be subject to appropriate access controls. Complex assertions may consume significant server resources, so administrative controls SHOULD also be applied.

ldap, security

wire-format §3

The controlValue of the Assertion Control is a BER-encoded Filter as defined in RFC 4511 Section 4.5.1, encoded under the BER restrictions specified in RFC 4511 Section 5.1.

ldap