3. Syntaxen
Syntaxdefinitionen schränken die Struktur von Attributwerten ein, die in einem LDAP-Verzeichnis gespeichert sind, und bestimmen die Darstellung von Attribut- und Assertionswerten, die im LDAP-Protokoll übertragen werden.
Syntaxen, die für den Verzeichnisbetrieb erforderlich sind oder allgemein gebräuchlich sind, werden in diesem Abschnitt spezifiziert. Server SOLLTEN alle in diesem Dokument aufgeführten Syntaxen erkennen, sind jedoch nicht verpflichtet, sie anderweitig zu unterstützen, und KÖNNEN andere Syntaxen erkennen oder unterstützen. Die Definition zusätzlicher willkürlicher Syntaxen wird jedoch nicht empfohlen, da dies die Interoperabilität behindert. Client- und Serverimplementierungen haben in der Regel nicht die Fähigkeit, neue Syntaxen dynamisch zu erkennen.
3.1. Allgemeine Überlegungen
Die Beschreibung jeder Syntax gibt an, wie Attribut- oder Assertionswerte, die der Syntax entsprechen, bei der Übertragung im LDAP-Protokoll [RFC4511] dargestellt werden sollen. Diese Darstellung wird als LDAP-spezifische Kodierung bezeichnet, um sie von anderen Methoden zur Kodierung von Attributwerten zu unterscheiden (z. B. die Basic Encoding Rules (BER)-Kodierung [BER], die von X.500 [X.500]-Verzeichnissen verwendet wird).
Die LDAP-spezifische Kodierung einer gegebenen Attributsyntax erzeugt immer oktettausgerichtete Werte. Soweit möglich, sollten Kodierungsregeln für LDAP-Syntaxen Zeichenfolgen erzeugen, die von Clients, die LDAP implementieren, mit wenig oder keiner Übersetzung angezeigt werden können. Clients DÜRFEN JEDOCH NICHT annehmen, dass die LDAP-spezifische Kodierung eines Wertes einer nicht erkannten Syntax eine menschenlesbare Zeichenfolge ist. Es gibt einige Fälle (z. B. die JPEG-Syntax), in denen es nicht sinnvoll ist, eine menschenlesbare Darstellung zu erzeugen.
Jede LDAP-Syntax wird eindeutig durch einen Objektbezeichner [ASN.1] identifiziert, der im Punkt-Dezimal-Format dargestellt wird (kurze beschreibende Namen sind für Syntaxen nicht definiert). Diese Objektbezeichner sind nicht dazu gedacht, Benutzern angezeigt zu werden. Die Objektbezeichner für die in diesem Dokument definierten Syntaxen sind in Anhang A zusammengefasst.
Eine empfohlene Mindestobergrenze für die Anzahl der Zeichen in einem Attributwert mit einer zeichenbasierten Syntax oder die Anzahl der Oktette in einem Wert für alle anderen Syntaxen KANN durch Anhängen der Grenze in geschweiften Klammern nach dem OBJECT IDENTIFIER der Syntax in einer Attributtypdefinition angegeben werden (siehe die Regel <noidlen> in [RFC4512]). Eine solche Grenze wird nicht als Teil des Syntaxbezeichners betrachtet.
Zum Beispiel schlägt "1.3.6.1.4.1.1466.115.121.1.15{64}" in einer Attributdefinition vor, dass der Verzeichnisserver einen Wert des Attributs mit einer Länge von bis zu 64 Zeichen zulässt, obwohl er möglicherweise längere Zeichenfolgen zulässt. Beachten Sie, dass ein einzelnes Zeichen der Directory String-Syntax in mehr als einem Oktett kodiert werden kann, da UTF-8 [RFC3629] eine Kodierung mit variabler Länge ist. Daher kann eine Zeichenfolge mit 64 Zeichen mehr als 64 Oktette lang sein.
3.2. Allgemeine Definitionen
Die folgenden ABNF-Regeln werden in einer Reihe der Syntaxdefinitionen in Abschnitt 3.3 verwendet.
PrintableCharacter = ALPHA / DIGIT / SQUOTE / LPAREN / RPAREN /
PLUS / COMMA / HYPHEN / DOT / EQUALS /
SLASH / COLON / QUESTION / SPACE
PrintableString = 1*PrintableCharacter
IA5String = *(%x00-7F)
SLASH = %x2F ; Schrägstrich ("/")
COLON = %x3A ; Doppelpunkt (":")
QUESTION = %x3F ; Fragezeichen ("?")
Die Regeln <ALPHA>, <DIGIT>, <SQUOTE>, <LPAREN>, <RPAREN>, <PLUS>, <COMMA>, <HYPHEN>, <DOT>, <EQUALS> und <SPACE> sind in [RFC4512] definiert.