Appendice B. Definizione ASN.1 completa (Complete ASN.1 Definition)
Questa appendice riassume il modulo ASN.1 utilizzato dalla RFC 4511. Tale modulo definisce l'inviluppo LDAPMessage, la scelta (choice) delle operazioni di protocollo, il controllo (control), il risultato (result), il DN, il filtro (filter), la ricerca (search), l'aggiornamento (update), l'operazione estesa (extended operation), la risposta intermedia (intermediate response) e l'operazione StartTLS, tra gli altri elementi di protocollo.
La struttura centrale può essere riassunta come segue.
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 definizione ASN.1 completa specifica inoltre i tipi LDAPString, LDAPOID, LDAPDN, RelativeLDAPDN, AttributeDescription, AttributeValue, AssertionValue, LDAPResult, Referral, Filter, SubstringFilter, MatchingRuleAssertion, ecc. Queste definizioni, insieme alle spiegazioni semantiche del capitolo 4 e alle regole di codifica BER del capitolo 5, costituiscono la sintassi di protocollo LDAP sul cavo (on-the-wire).
Nella lettura di questa appendice, si noti che gli identificatori nei blocchi di codice fanno parte del formato su filo (wire format) del protocollo e non devono essere tradotti né localizzati. Le spiegazioni in italiano servono unicamente a descrivere il ruolo di questi tipi ASN.1 nei messaggi LDAP: messageID serve per associare richiesta e risposta, protocolOp indica l'operazione effettiva, e controls consente a client o server di trasportare informazioni di controllo estese.
Questi tipi delimitano complessivamente le strutture di messaggi che i client e i server LDAP devono poter analizzare, codificare e convalidare. Gli implementatori dovrebbero leggere questa appendice unitamente alla semantica delle operazioni, ai codici di errore e ai requisiti di sicurezza del corpo del documento, ed evitare di dedurre il comportamento del protocollo dalla sola struttura ASN.1.