Zum Hauptinhalt springen

3. Parsen einer Zeichenkette zurück zu einem Distinguished Name

Die Zeichenkettendarstellung von Distinguished Names ist auf UTF-8- [RFC3629] kodierte Unicode- [Unicode] Zeichen beschränkt. Die Struktur dieser Zeichenkettendarstellung wird durch die folgende Augmented-BNF- [RFC4234] Grammatik festgelegt:

distinguishedName = [ relativeDistinguishedName
*( COMMA relativeDistinguishedName ) ]
relativeDistinguishedName = attributeTypeAndValue
*( PLUS attributeTypeAndValue )
attributeTypeAndValue = attributeType EQUALS attributeValue
attributeType = descr / numericoid
attributeValue = string / hexstring

; Die folgenden Zeichen sind zu maskieren, wenn sie im zu
; kodierenden Wert auftreten: ESC, eines von <escaped>,
; führendes SHARP oder SPACE, abschließendes SPACE und NULL.
string = [ ( leadchar / pair ) [ *( stringchar / pair )
( trailchar / pair ) ] ]

leadchar = LUTF1 / UTFMB
LUTF1 = %x01-1F / %x21 / %x24-2A / %x2D-3A /
%x3D / %x3F-5B / %x5D-7F

trailchar = TUTF1 / UTFMB
TUTF1 = %x01-1F / %x21 / %x23-2A / %x2D-3A /
%x3D / %x3F-5B / %x5D-7F

stringchar = SUTF1 / UTFMB
SUTF1 = %x01-21 / %x23-2A / %x2D-3A /
%x3D / %x3F-5B / %x5D-7F

pair = ESC ( ESC / special / hexpair )
special = escaped / SPACE / SHARP / EQUALS
escaped = DQUOTE / PLUS / COMMA / SEMI / LANGLE / RANGLE
hexstring = SHARP 1*hexpair
hexpair = HEX HEX

Dabei sind die Produktionen , , , , , , , , , , , , , und in [RFC4512] definiert.

Jedes , entweder ein oder ein , verweist auf einen Attributtyp einer Attributwertzuweisung (AVA). Auf das folgt ein und ein . Das liegt entweder in - oder in -Form vor.

Liegt es in -Form vor, so erhält man einen zugesicherten Wert in LDAP-Zeichenkettendarstellung, indem man (von links nach rechts, nicht rekursiv) jedes im auftretende wie folgt ersetzt:

<ESC><ESC> durch <ESC> ersetzen;
<ESC><special> durch <special> ersetzen;
<ESC><hexpair> durch das durch <hexpair> angegebene Oktett ersetzen.

Liegt es in -Form vor, so erhält man eine BER-Darstellung, indem man jedes des in das durch das angegebene Oktett umwandelt.

Für einen Relative Distinguished Name gibt es eine oder mehrere Attributwertzuweisungen, getrennt durch .

Für einen Distinguished Name gibt es null oder mehr Relative Distinguished Names, getrennt durch .

Implementierungen MÜSSEN (MUST) die in der folgenden Tabelle aufgeführten AttributeType-Namenszeichenketten (Deskriptoren) erkennen, DÜRFEN (MAY) aber andere Namenszeichenketten erkennen.

ZeichenketteX.500 AttributeType
CNcommonName (2.5.4.3)
LlocalityName (2.5.4.7)
STstateOrProvinceName (2.5.4.8)
OorganizationName (2.5.4.10)
OUorganizationalUnitName (2.5.4.11)
CcountryName (2.5.4.6)
STREETstreetAddress (2.5.4.9)
DCdomainComponent (0.9.2342.19200300.100.1.25)
UIDuserId (0.9.2342.19200300.100.1.1)

Diese Attributtypen sind in [RFC4519] beschrieben.

Implementierungen DÜRFEN (MAY) andere DN-Zeichenkettendarstellungen erkennen. Da jedoch nicht gefordert ist, alternative DN-Zeichenkettendarstellungen zu erkennen (und, falls doch, wie), SOLLTEN (SHOULD) Implementierungen DN-Zeichenketten nur gemäß Abschnitt 2 dieses Dokuments erzeugen.