Annexe B. Définition ASN.1 complète (Complete ASN.1 Definition)
Cette annexe regroupe le module ASN.1 utilisé par la RFC 4511. Ce module définit l'enveloppe LDAPMessage, le choix (choice) des opérations de protocole, le contrôle (control), le résultat (result), le DN, le filtre (filter), la recherche (search), la mise à jour (update), l'opération étendue (extended operation), la réponse intermédiaire (intermediate response) et l'opération StartTLS, entre autres éléments de protocole.
La structure centrale peut être résumée comme suit.
LDAPMessage ::= SEQUENCE {
messageID MessageID,
protocolOp CHOICE {
bindRequest BindRequest,
bindResponse BindResponse,
unbindRequest UnbindRequest,
searchRequest SearchRequest,
searchResEntry SearchResultEntry,
searchResDone SearchResultDone,
searchResRef SearchResultReference,
modifyRequest ModifyRequest,
modifyResponse ModifyResponse,
addRequest AddRequest,
addResponse AddResponse,
delRequest DelRequest,
delResponse DelResponse,
modDNRequest ModifyDNRequest,
modDNResponse ModifyDNResponse,
compareRequest CompareRequest,
compareResponse CompareResponse,
abandonRequest AbandonRequest,
extendedReq ExtendedRequest,
extendedResp ExtendedResponse,
intermediateResponse IntermediateResponse },
controls [0] Controls OPTIONAL }
La définition ASN.1 complète spécifie également les types LDAPString, LDAPOID, LDAPDN, RelativeLDAPDN, AttributeDescription, AttributeValue, AssertionValue, LDAPResult, Referral, Filter, SubstringFilter, MatchingRuleAssertion, etc. Ces définitions, associées aux explications sémantiques du chapitre 4 et aux règles d'encodage BER du chapitre 5, constituent la syntaxe de protocole LDAP sur le réseau (on-the-wire).
Lors de la lecture de cette annexe, notez que les identifiants des blocs de code font partie du format filaire du protocole et ne doivent ni être traduits ni localisés. Les explications en français ne servent qu'à décrire le rôle de ces types ASN.1 dans les messages LDAP : messageID sert à associer requête et réponse, protocolOp indique l'opération réelle, et controls permet au client ou au serveur de transporter des informations de contrôle étendues.
Ces types délimitent ensemble les structures de messages que les clients et serveurs LDAP doivent pouvoir analyser, encoder et valider. Les implémenteurs doivent lire cette annexe conjointement avec la sémantique des opérations, les codes d'erreur et les exigences de sécurité du corps du document, et éviter de déduire le comportement du protocole à partir de la seule structure ASN.1.