Aller au contenu principal

RFC 4514 - Lightweight Directory Access Protocol (LDAP) : Représentation sous forme de chaîne des noms distingués (DN)

  • Statut: Proposed Standard
  • Publié: June 2006
  • Stream: IETF
  • Remplace: RFC2253
  • Errata: Pas d'errata

Résumé

L'annuaire X.500 utilise des noms distingués (Distinguished Names, DN) comme clés primaires pour les entrées de l'annuaire. Ce document définit la représentation sous forme de chaîne utilisée dans le protocole LDAP (Lightweight Directory Access Protocol) pour transférer les noms distingués. La représentation sous forme de chaîne est conçue pour donner une représentation claire des noms distingués couramment utilisés, tout en étant capable de représenter n'importe quel nom distingué.

1. Contexte et utilisation prévue

Dans les systèmes d'annuaire basés sur X.500 [X.500], y compris ceux accessibles à l'aide du protocole LDAP [RFC4510], les noms distingués (DN) sont utilisés pour désigner sans ambiguïté les entrées d'annuaire [X.501][RFC4512].

La structure d'un DN [X.501] est décrite en termes d'ASN.1 [X.680]. Dans LDAP, les DN sont représentés sous la forme de chaîne décrite dans ce document.

Ce document définit la représentation sous forme de chaîne des noms distingués utilisés dans LDAP [RFC4511][RFC4517]. La section 2 détaille l'algorithme RECOMMANDÉ pour convertir un DN de sa représentation structurée ASN.1 en une chaîne. La section 3 détaille comment convertir un DN d'une chaîne en une représentation structurée ASN.1.

2. Conversion de DistinguishedName en chaîne

Les étapes de conversion de la séquence RDN ASN.1 en chaîne sont les suivantes :

  1. Convertir chaque RDN dans l'ordre du dernier RDN au premier RDN.
  2. Séparer les RDN par une virgule (,, U+002C).

Conversion de chaque RDN :

  1. Si le RDN est multi-valué (c'est-à-dire contient plusieurs AttributeTypeAndValue), séparer chaque AttributeTypeAndValue par un signe plus (+, U+002B).
  2. Convertir chaque AttributeTypeAndValue en chaîne :
    • Convertir d'abord l'AttributeType.
    • Suivi d'un signe égal (=, U+003D).
    • Puis convertir l'AttributeValue.

2.3 Conversion de l'AttributeType

Si l'AttributeType figure dans la liste des types connus que LDAP peut reconnaître (tels que cn, l, st, o, ou, c, street, dc, uid), utiliser sa chaîne de nom court. Sinon, utiliser la chaîne OID en notation décimale pointée (par exemple 1.3.6.1.4.1.1466.0.1).

2.4 Conversion de l'AttributeValue

Si l'AttributeValue est au format chaîne, l'utiliser directement, mais les caractères spéciaux doivent être échappés.

  • Caractères nécessitant un échappement : espace de tête, espace de fin, # (si au début), ,, +, " , \, <, >, ;.
  • La méthode d'échappement consiste à ajouter une barre oblique inverse \ avant le caractère.
  • D'autres caractères non imprimables peuvent utiliser l'échappement hexadécimal \XX.

3. Analyse d'une chaîne en DistinguishedName

Cette section définit la syntaxe de la représentation de chaîne DN.

distinguishedName = [ relativeDistinguishedName *( COMMA relativeDistinguishedName ) ]
relativeDistinguishedName = attributeTypeAndValue *( PLUS attributeTypeAndValue )
attributeTypeAndValue = attributeType EQUALS attributeValue
attributeType = descr / numericoid
attributeValue = string / hexstring
string = * ( lUTF1 / utf2 / utf3 / utf4 )
  • COMMA = ,
  • PLUS = +
  • EQUALS = =

4. Exemples

  • UID=jsmith,DC=example,DC=net
  • OU=Sales+CN=J. Smith,O=Widget Inc.,C=US
  • CN=L. Eagle,O=Sue\, Grabbit and Runn,C=GB (Noter l'échappement de la virgule)
  • CN=Before\0DAfter,O=Test,C=GB (Contient l'échappement du retour chariot)
  • 1.3.6.1.4.1.1466.0=36313130,O=Test,C=GB (Utilisation de l'OID et de la chaîne hexadécimale de la valeur codée BER)

5. Considérations de sécurité

Les chaînes DN peuvent contenir des caractères non affichables ou des caractères prêtant à confusion (tels que des homographes), et doivent être traitées avec soin lors de leur affichage aux utilisateurs pour empêcher les attaques par usurpation.


Note: Cette traduction est fournie à titre de référence. Veuillez consulter le RFC 4514 original pour les détails officiels.