Zum Hauptinhalt springen

Anhang B. Vollständige ASN.1-Definition (Complete ASN.1 Definition)

Dieser Anhang fasst das von RFC 4511 verwendete ASN.1-Modul zusammen. Dieses Modul definiert die LDAPMessage-Umschlagung, die Auswahl (choice) der Protokolloperationen, das Kontrollelement (control), das Ergebnis (result), den DN, den Filter (filter), die Suche (search), die Aktualisierung (update), die erweiterte Operation (extended operation), die Zwischenantwort (intermediate response) und die StartTLS-Operation sowie weitere Protokollelemente.

Die Kernstruktur lässt sich wie folgt zusammenfassen.

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 }

Die vollständige ASN.1-Definition legt zudem die Typen LDAPString, LDAPOID, LDAPDN, RelativeLDAPDN, AttributeDescription, AttributeValue, AssertionValue, LDAPResult, Referral, Filter, SubstringFilter, MatchingRuleAssertion usw. fest. Zusammen mit den semantischen Erläuterungen in Kapitel 4 und den BER-Codierregeln in Kapitel 5 bilden diese Definitionen die LDAP-Protokollsyntax auf der Leitung (on-the-wire).

Beim Lesen dieses Anhangs ist zu beachten, dass die Bezeichner in den Codeblöcken Teil des drahtgebundenen Formats (wire format) des Protokolls sind und weder übersetzt noch lokalisiert werden dürfen. Die deutschen Erläuterungen dienen allein dazu, die Rolle dieser ASN.1-Typen in LDAP-Nachrichten zu beschreiben: messageID dient der Zuordnung von Anfrage und Antwort, protocolOp gibt die eigentliche Operation an, und controls erlaubt es Client oder Server, erweiterte Steuerinformationen zu übertragen.

Diese Typen grenzen gemeinsam die Nachrichtenstrukturen ein, die LDAP-Clients und -Server analysieren, codieren und validieren können müssen. Implementierer sollten diesen Anhang zusammen mit der Operationssemantik, den Fehlercodes und den Sicherheitsanforderungen des Haupttextes lesen und das Protokollverhalten nicht allein aus der ASN.1-Struktur ableiten.