5. Modèle informationnel de DSA (serveur)
LDAP suppose qu’un ou plusieurs serveurs fournissent conjointement l’accès à un DIT. Le serveur détenant l’information originale est appelé « maître » pour cette information. Ceux qui en détiennent des copies sont des serveurs de mise en miroir (« shadowing ») ou de mise en cache (« caching »).
Selon [X.501] :
préfixe de contexte (context prefix) : séquence de RDN allant de la racine du DIT au sommet initial d’un contexte de nommage ; elle correspond au nom distinctif de ce sommet.
contexte de nommage (naming context) : sous-arbre d’entrées détenu dans un seul DSA maître.
Un contexte de nommage est donc le plus grand ensemble d’entrées commençant à une entrée dont un serveur donné est maître, et comprenant tous ses subordonnés jusqu’aux entrées maîtrisées par d’autres serveurs. Le préfixe de contexte est le nom de l’entrée initiale.
La racine du DIT est une entrée propre au DSA (DSA-specific Entry, DSE) et ne fait partie d’aucun contexte de nommage ni sous-arbre ; chaque serveur possède des valeurs d’attribut différentes dans sa DSE racine.
5.1. Exigences relatives aux données propres au serveur
Un serveur LDAP DOIT (SHALL) fournir des informations sur lui-même et d’autres informations propres à chaque serveur. Elles forment un groupe d’attributs dans la DSE racine, nommée par le DN comportant zéro RDN (représenté dans [RFC4514] par la chaîne de longueur nulle).
Sous réserve du contrôle d’accès et d’autres restrictions, ces attributs sont récupérables par une opération Search [RFC4511] avec baseObject vide, scope égal à baseObject, filter égal à "(objectClass=*)" [RFC4515] et attributes énumérant les noms voulus. Les attributs de DSE racine sont opérationnels et ne sont renvoyés que s’ils sont demandés par leur nom.
La DSE racine NE DOIT PAS (SHALL NOT) être incluse dans une recherche de sous-arbre partant de la racine.
Les serveurs peuvent permettre aux clients de modifier ses attributs lorsque cela convient.
Les attributs suivants sont définis ci-dessous ; d’autres documents peuvent en définir davantage.
- altServer : serveurs de remplacement ;
- namingContexts : contextes de nommage ;
- supportedControl : contrôles LDAP reconnus ;
- supportedExtension : opérations étendues LDAP reconnues ;
- supportedFeatures : fonctionnalités LDAP reconnues ;
- supportedLDAPVersion : versions LDAP prises en charge ;
- supportedSASLMechanisms : mécanismes Simple Authentication and Security Layers (SASL) [RFC4422] reconnus.
Les valeurs fournies peuvent dépendre de facteurs propres à la session ou autres. Par exemple, un serveur prenant en charge SASL EXTERNAL peut ne répertorier "EXTERNAL" que lorsque l’identité du client a été établie par une couche inférieure. Voir [RFC4513].
La DSE racine peut aussi contenir 'subschemaSubentry'. Dans ce cas, il désigne la (sous-)entrée de sous-schéma contenant le schéma qui régit la DSE racine. Les clients NE DEVRAIENT PAS (SHOULD NOT) supposer qu’elle régit d’autres entrées détenues par le serveur. La section 4.4 décrit la procédure générale de découverte.
5.1.1. 'altServer'
L'attribut 'altServer' énumère les URI qui désignent des serveurs de remplacement pouvant être contactés lorsque ce serveur devient indisponible. Les URI des serveurs qui mettent en œuvre LDAP sont rédigés conformément à [RFC4516]. D'autres sortes d'URI peuvent être fournies. Si le serveur ne connaît aucun autre serveur utilisable, cet attribut est absent. Les clients peuvent mettre ces informations en cache au cas où leur serveur préféré deviendrait indisponible ultérieurement.
( 1.3.6.1.4.1.1466.101.120.6 NAME 'altServer'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
USAGE dSAOperation )
La syntaxe IA5String (1.3.6.1.4.1.1466.115.121.1.26) est définie dans [RFC4517].
5.1.2. 'namingContexts'
L'attribut 'namingContexts' énumère les préfixes des contextes de nommage dont le serveur détient la copie maîtresse ou une copie miroir (en partie ou en totalité). Si le serveur est une DSA de premier niveau [X.501], il devrait également énumérer une chaîne vide (qui indique la racine de la DIT). Si le serveur ne détient aucune information sous forme de copie maîtresse ou miroir (par exemple, s'il s'agit d'une passerelle LDAP vers un annuaire X.500 public), cet attribut est absent. Si le serveur estime détenir la copie maîtresse ou une copie miroir de la totalité de l'annuaire, l'attribut possède une seule valeur, qui est la chaîne vide (indiquant la racine de la DIT).
Cet attribut peut, par exemple, servir à choisir un nom d'entrée approprié pour les opérations ultérieures effectuées avec ce serveur.
( 1.3.6.1.4.1.1466.101.120.5 NAME 'namingContexts'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
USAGE dSAOperation )
La syntaxe DistinguishedName (1.3.6.1.4.1.1466.115.121.1.12) est définie dans [RFC4517].
5.1.3. 'supportedControl'
L'attribut 'supportedControl' énumère les identifiants d'objet qui identifient les contrôles de demande [RFC4511] pris en charge par le serveur. Si le serveur ne prend en charge aucun contrôle de demande, cet attribut est absent. Il n'est pas nécessaire d'énumérer les identifiants d'objet qui identifient les contrôles de réponse.
Les procédures d'enregistrement des identifiants d'objet utilisés pour la découverte des mécanismes de protocole sont détaillées dans le BCP 64, RFC 4520 [RFC4520].
( 1.3.6.1.4.1.1466.101.120.13 NAME 'supportedControl'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
USAGE dSAOperation )
La syntaxe OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) est définie dans [RFC4517].
5.1.4. 'supportedExtension'
L'attribut 'supportedExtension' énumère les identifiants d'objet qui identifient les opérations étendues [RFC4511] prises en charge par le serveur. Si le serveur ne prend en charge aucune opération étendue, cet attribut est absent.
Une opération étendue se compose généralement d'une demande étendue et d'une réponse étendue, mais peut aussi inclure d'autres unités de données de protocole (comme des réponses intermédiaires). L'identifiant d'objet attribué à la demande étendue sert à identifier l'opération étendue. Il n'est pas nécessaire d'énumérer comme valeurs de cet attribut les autres identifiants d'objet employés dans l'opération étendue.
Les procédures d'enregistrement des identifiants d'objet utilisés pour la découverte des mécanismes de protocole sont détaillées dans le BCP 64, RFC 4520 [RFC4520].
( 1.3.6.1.4.1.1466.101.120.7 NAME 'supportedExtension'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
USAGE dSAOperation )
La syntaxe OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) est définie dans [RFC4517].
5.1.5. 'supportedFeatures'
L'attribut 'supportedFeatures' énumère les identifiants d'objet qui identifient les fonctionnalités facultatives prises en charge par le serveur. Si le serveur ne prend en charge aucune fonctionnalité facultative détectable, cet attribut est absent.
( 1.3.6.1.4.1.4203.1.3.5 NAME 'supportedFeatures'
EQUALITY objectIdentifierMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
USAGE dSAOperation )
Les procédures d'enregistrement des identifiants d'objet utilisés pour la découverte des mécanismes de protocole sont détaillées dans le BCP 64, RFC 4520 [RFC4520].
La syntaxe OBJECT IDENTIFIER (1.3.6.1.4.1.1466.115.121.1.38) et la règle de correspondance objectIdentifierMatch sont définies dans [RFC4517].
5.1.6. 'supportedLDAPVersion'
L'attribut 'supportedLDAPVersion' énumère les versions de LDAP prises en charge par le serveur.
( 1.3.6.1.4.1.1466.101.120.15 NAME 'supportedLDAPVersion'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
USAGE dSAOperation )
La syntaxe INTEGER (1.3.6.1.4.1.1466.115.121.1.27) est définie dans [RFC4517].
5.1.7. 'supportedSASLMechanisms'
L'attribut 'supportedSASLMechanisms' énumère les mécanismes SASL [RFC4422] que le serveur reconnaît et/ou prend en charge [RFC4513]. Le contenu de cet attribut peut dépendre de l'état actuel de la session. Si le serveur ne prend en charge aucun mécanisme SASL, cet attribut est absent.
( 1.3.6.1.4.1.1466.101.120.14 NAME 'supportedSASLMechanisms'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
USAGE dSAOperation )
La syntaxe Directory String (1.3.6.1.4.1.1466.115.121.1.15) est définie dans [RFC4517].