Les attributs

Description des attributs

Un attribut est caractérisé par les informations suivantes:

Un nom
Un identifiant sous forme de chaîne de caractères. Les noms d'attributs sont toujours insensibles à la case. Un attributs peut avoir plusieurs noms. C'est le cas de l'attribut givenName qui s'appelle aussi gn.
Un Object Identifier (OID)
Un identifiant numérique. Voir la section dédiée.
Une description
La description d'un attribut fait partie du schéma à part entière.
Une syntaxe et des règles de comparaison
La syntaxe indiquera quel type d'information l'attribut peut contenir. Les règles de comparaison indiqueront comme effectuer des recherches sur les valeurs de l'attribut. La [rfc2252] fournit un ensemble de syntaxes et de règles de comparaison, que les serveurs LDAP doivent savoir gérer.
Sa valuation
S'il est mono ou multivalué
Un indicateur d'usage

Il existe quatre indicateurs d'usages possible[8]:

  • userApplication
  • directoryOperation
  • distributedOperation
  • dsaOperation

Les trois derniers types d'attributs sont dit Operational. Cela signifie qu'ils ne sont pas modifiables par l'utilisateur, ni accessibles, sauf certains qui peuvent être lus, comme par exemple modifytimestamp.

Un format ou une limite de taille

Il existe des relations d'héritage entre attributs. Lorsqu'on définit un attribut, il faut donc aussi définir l'attribut dont il descend, même si cela n'est pas obligatoire.

Ainsi les attributs sn (nom de famille), gn (prénom) dérivent de l'attribut name. L'aspect pratique de l'héritage entre attributs est qu'il est possible d'effectuer des recherches sur plusieurs attributs en même temps: En effectuant une recherche sur l'attribut name, on fera aussi une recherche sur ses sous-types.

Exemples

Tableau 8.1. Exemples de syntaxes définies dans la [rfc2252]

OID Nom Description
1.3.6.1.4.1.1466.115.121.1.7 Boolean Booléen
1.3.6.1.4.1.1466.115.121.1.12 DN Un DN
1.3.6.1.4.1.1466.115.121.1.15 Directory String Une chaîne de caractères, encodée en UTF-8
1.3.6.1.4.1.1466.115.121.1.26 IA5String Une chaîne de caractères ASCII
1.3.6.1.4.1.1466.115.121.1.27 INTEGER Un entier

Tableau 8.2. Exemples et descriptions [9]de règles de comparaison définies dans les [rfc2252]

OID Nom Description Syntaxe
2.5.13.0 objectIdentifierMatch

Comparaison d'égalité entre deux OIDs.

1.3.6.1.4.1.1466.115.121.1.38
2.5.13.1 distinguishedNameMatch

Comparaison d'égalité entre deux DN.

1.3.6.1.4.1.1466.115.121.1.12
2.5.13.2 caseIgnoreMatch

Retourne vrai si les chaînes ont la même taille et sont identiques, à la case près.

1.3.6.1.4.1.1466.115.121.1.15
2.5.13.3 caseIgnoreOrderingMatch

Règle d'inégalité, retourne vrai si la valeur de l'attribut comparé apparaît est avant la valeur passé en paramètre, une fois les deux chaînes convertis en majuscules.

1.3.6.1.4.1.1466.115.121.1.15
2.5.13.4 caseIgnoreSubstringsMatch

Règle d'inclusion, insensible à la case, comme les deux règles précédentes.

1.3.6.1.4.1.1466.115.121.1.58[a]
2.5.13.8 numericStringMatch

Règle identique à la règle caseIgnoreMatch sauf que les espaces sont ignorés pendant la comparaison.

1.3.6.1.4.1.1466.115.121.1.36
2.5.13.10 numericStringSubstringsMatch

Règle identique à la règle caseIgnoreSubstringsMatch sauf que les espaces sont ignorés pendant la comparaison.

1.3.6.1.4.1.1466.115.121.1.58
2.5.13.23 uniqueMemberMatch

Retourne vrai si la valeur soumise et la valeur de l'attribut comparés sont des DN identiques; ou bien si le DN de l'attribut contient un composant uid, celui-ci peut être absent du DN de la valeur soumise, ou bien s'il est présent il doit être égal.

1.3.6.1.4.1.1466.115.121.1.34

[a] Il s'agit donc de la syntaxe de la valeur comparée à l'attribut (une chaîne en UTF-8 contenant au moins un *), et non pas de la syntaxe de l'attribut lui même. Cf la section 8.3 de [rfc2252].

Exemple 8.1. Exemples d'attributs définis dans la [rfc2256]

Nom Description
sn Nom de famille, dérive de l'attribut name
telephoneNumber Numéro de téléphone
member Membre d'un groupe. Cet atribut contient un DN, donc une référence vers un noeud de l'annuaire.


[8] Voir le paragraphe 4.2 de [rfc2252]