Visual RFC.
ALL RFCs / RFC 4528
Read the RFC ↗
RFC 4528 / LDAP ASSERTIONS

Choose the target and interpret the result

03

The condition belongs to a specific target entry named by the request. Different operations use different target fields. Filter evaluation has three outcomes, and only TRUE opens normal processing.

RFC 4528 · § 3EXAMPLE
4 / 4
04
Exclude inappropriate operations

Abandon, Bind, Unbind and StartTLS are not appropriate uses of this assertion control. No response is invented for operations that normally have none.

Choose the target and interpret the resultAbandon, Bind, Unbind and StartTLS are not appropriate uses of this assertion control. No response is invented for operations that normally have none.Exclude inappropriate operationsInappropriate operationsAbandon · Bind · Unbind · StartTLSUse the six supported operation typesDo not invent Abandon / Unbind responsesCriticality handling follows base LDAP rules

Key idea: FALSE and Undefined both stop an applied assertion with 122; TRUE is not a success result code.

Terms
Target
The entry against which this request’s assertion is evaluated.
Undefined
The server cannot determine the Filter truth under LDAP’s matching semantics.
ModifyDN
LDAP’s rename or move operation.

Look up a term in the glossary ↗

Rules & examples
  • For Add, Compare and ModifyDN, RFC 4528 identifies the target using the entry field. Modify uses object; Delete uses the DelRequest value; Search uses baseObject.
  • The field table does not implement Add’s creation, schema or other base-operation preconditions. Do not infer an unsupported rule about a not-yet-existing entry from this naming table.
  • LDAP Filter evaluation uses TRUE, FALSE and Undefined. An unrecognized attribute description is one reason evaluation can be Undefined (RFC 4511 §4.5.1.7). A missing value is not universally the same as an unknown schema attribute.
  • With the assertion applied, FALSE or Undefined returns assertionFailed(122) and stops further processing. TRUE only permits the underlying operation to run normally, including its usual possible errors.
  • The control is appropriate for Add, Compare, Delete, Modify, ModifyDN and Search. It is inappropriate for Abandon, Bind, Unbind and StartTLS. Do not attach it as a generic guard for every LDAP message.

The displayed mapping is of actual request field names, not a packet-size sketch. The helper’s executable update is Modify only; other operations are explained by the RFC mapping, not simulated as a complete directory implementation.

Sources
Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background
conditionupdate

Check the entry before changing it

Think of a shared directory card: a remembered value may be out of date by the time someone changes it. A conditional update asks the server to check the current card and perform the update as one action. This is an analogy for one operation, not a promise of a transaction across the whole directory.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

All chapters in RFC 4528

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗