L'arborescence de l'annuaire
SupAnn normalise les nœuds suivants de l'arborescence de l'annuaire (Directory Information Tree, DIT), ainsi que les caractéristiques principales des objets qu'ils contiennent:
- Racine: dc=domaine,dc=tld
- ou=people,dc=domaine,dc=tld
- ou=groups,dc=domaine,dc=tld
- ou=structures,dc=domaine,dc=tld
- ou=applications,dc=domaine,dc=tld
- ou=applicationGroups,dc=domaine,dc=tld
Cette organisation constitue une base non limitative. L'établissement est libre d'ajouter, selon ses besoins techniques ou organisationnels:
- d'autre branche en plus de celles définies par SupAnn;
- d'autres classes sur les objets définis par SupAnn;
- d'autres attributs, non référencés par SupAnn, sur ces mêmes objets.
Il n'y a pas d'impératif d'exhaustivité : selon ses besoins et les données à sa disposition, chaque établissement est libre d'implémenter ou non les branches préconisées par SupAnn. Néanmoins:
- la branche ou=people peut être considérée comme requise pour une inter-opérabilité SupAnn minimale, notamment dans le cadre de la fédération d'identités ;
- l'usage des branches ou=applications et ou=applicationGroups ne constitue qu'une bonne pratique en vue de standardiser le code et les configurations des applications. Il n'y a aucun impératif à remettre en question un modèle de gestion préexistant.
Par ailleurs la notion de classe structurelle est indicative et peut être amenée à différer selon les impératifs de l'implémentation LDAP retenue.
En revanche, l'établissement DEVRAIT :
- respecter l'arborescence des objets définie par SupAnn à l'intérieur des branche normalisées;
- ne pas placer dans les branches normalisées des objets (ou sous-arborescences) non conformes aux préconisations SupAnn.
Représentation graphique
Arborescence et classes d'objets
Liens entre les objets
Racine
Origine : SupAnn v1
La racine de l'arborescence est nommée d'après le domaine DNS de l'établissement conformément aux recommandations de l'IETF (voir Références, RFC 2377, “Domain components”). Ceci permet d'adresser de manière fiable les informations de tout établissement puisque l'unicité d'un domaine est assurée au sein d'Internet.
Son RDN est constitué de l'attribut dc de la classe auxiliaire dcObject. Sa classe structurelle est organization.
Sa visibilité est publique.
Exemple:
dn: dc=univ-exemple,dc=fr objectClass: organization objectClass: dcObject dc: univ-exemple o: Université Exemple
Cette entrée constitue par ailleurs une description de l'établissement lui-même. A cet effet, elle est enrichie des classes eduOrg et supannOrg. Voir: Représentation des établissements.
NB: Outre le suffixe “dc=fr”, on trouvera aussi :
- dc=pf pour la Polynésie Française ;
- dc=nc pour la Nouvelle Calédonie.
ou=people
Origine : SupAnn v1
Situé un niveau sous la racine, cet objet de classe organizationalUnit est le conteneur de l'ensemble des informations concernant les personnes référencées dans l'annuaire. Son RDN est ou=people.
Sa visibilité est publique. En revanche, les objets qu'il contient PEUVENT être soumis à des restrictions de visibilité en fonction de la politique de l'établissement et des niveaux de visibilité préconisés par SupAnn pour chacun de leurs attributs (cf: Visibilité des attributs).
Exemple:
dn: ou=people,dc=univ-exemple,dc=fr objectClass: organizationalUnit ou: people description: Les personnes de l'annuaire
Contenu
Tous les objets contenus dans cette branche sont au même niveau (pas de sous-arborescence).
Ces objets représentent des personnes et obéissent au modèle suivant:
RDN | uid |
---|---|
Classe structurelle | inetOrgPerson |
Classes auxiliaires | eduPerson, supannPerson |
Classes optionnelles | supannFCPerson, supannCMS |
Description détaillée | voir: Représentation des personnes |
Exemple:
dn: uid=jdupont,ou=people,dc=univ-exemple,dc=fr objectClass: inetOrgPerson objectClass: eduPerson objectClass: supannPerson uid: jdupont cn: Dupont Jean
ou=groups
Origine : SupAnn v1
Situé un niveau sous la racine, cet objet de classe organizationalUnit est le conteneur de l'ensemble des groupes de personnes définis dans l'annuaire. Son RDN est ou=groups.
Sa visibilité est publique. En revanche, les objets qu'il contient PEUVENT être soumis à des restrictions de visibilité en fonction de la politique de l'établissement.
Exemple:
dn: ou=groups,dc=univ-exemple,dc=fr objectClass: organizationalUnit ou: groups description: Les groupes de personnes de l'annuaire
Contenu
SupAnn préconise que tous les objets contenus dans cette branche soient au même niveau (pas de sous-arborescence). Cependant d'autres organisations sont tolérées selon les contraintes techniques de l'infrastructure utilisée.
Ces objets représentent des groupes et obéissent au modèle suivant:
RDN | cn |
---|---|
Classe structurelle | groupOfNames |
Classes auxiliaires | supannGroupe |
Classes optionnelles | supannCMS, supannRessource |
Description détaillée | voir: Représentation des groupes |
Exemple:
dn: cn=applications.apogee.users,ou=groups,dc=univ-exemple,dc=fr objectClass: groupOfNames objectClass: supannGroupe cn: applications.apogee.users member: uid=jdupont,ou=people,dc=univ-exemple,dc=fr
ou=structures
Origine : SupAnn 2008
Situé un niveau sous la racine, cet objet de classe organizationalUnit est le conteneur de l'ensemble des entités définies dans l'annuaire. Son RDN est ou=structures.
Sa visibilité est publique, de même que celle des objets qu'il contient.
Exemple:
dn: ou=structures,dc=univ-exemple,dc=fr objectClass: organizationalUnit ou: structures description: Les entités référencées dans l'annuaire
Contenu
Tous les objets contenus dans cette branche sont au même niveau (pas de sous-arborescence).
Ces objets représentent des entités internes (structures organisationnelles, instances électives, etc) ou des établissements.
Les relations de dépendance entre entités, au lieu d'être représentées hiérarchiquement dans le DIT, sont représentés à l'aide d'un attribut faisant référence aux entités parentes (voir: supannCodeEntiteParent).
Ce choix offre les avantages:
- de s'affranchir des problèmes de réorganisation : le DN des objets reste inchangé;
- de pouvoir définir plusieurs entités parentes pour une entité;
- d'éviter de gérer les entités électives à part;
- d'adopter une organisation semblable aux branches voisines ou=people et ou=groups.
Entités internes
Les objets représentant des entités internes à l'établissement se basent sur le modèle suivant:
RDN | supannCodeEntite |
---|---|
Classe structurelle | organizationalUnit |
Classes auxiliaires | supannEntite |
Classes optionnelles | supannCMS, supannRessource |
Description détaillée | voir: Représentation des structures et instances internes |
Exemple:
dn: supannCodeEntite=U03,ou=structures,dc=univ-exemple,dc=fr objectClass: organizationalUnit objectClass: supannEntite supannCodeEntite: U03 ou: UFR 03
Établissements
Les objets représentant des établissements se basent sur le modèle suivant:
RDN | supannCodeEntite |
---|---|
Classe structurelle | organization |
Classes auxiliaires | supannEntite, supannOrg, eduOrg |
Classes optionnelles | supannCMS, supannRessource |
Description détaillée | voir: Représentation des établissements |
Exemple:
dn: supannCodeEntite=UX,ou=structures,dc=univ-exemple,dc=fr objectClass: organization objectClass: supannEntite objectClass: supannOrg objectClass: eduOrg supannCodeEntite: UX o: Université Exemple eduOrgLegalName: Université de l'exemple didactique Jacques de la Palice supannEtablissement: {UAI}012345678
ou=applications
Origine : SupAnn 2021
Situé un niveau sous la racine, cet objet de classe organizationalUnit est le conteneur de l'ensemble des applications dont les besoins techniques, notamment leurs accès aux données de l'annuaire, nécessitent la déclaration. Son RDN est ou=applications.
SupAnn n'impose pas de directives de visibilité pour cet objet : celle-ci peut être publique au même titre que les autres conteneurs de premier niveau, ou limitée.
En revanche, les objet qu'il contient, dont l'usage est en général purement technique, auront en général une visibilité limitée, privée, voire cachée. Voir notamment les bonnes pratiques : Gestion des droits d'accès à l'annuaire.
Exemple:
dn: ou=applications,dc=univ-exemple,dc=fr objectClass: organizationalUnit ou: applications description: Les applications référencées dans l'annuaire
Contenu
Tous les objets contenus dans cette branche sont au même niveau (pas de sous-arborescence).
Ces objets représentent des applications et obéissent au modèle suivant:
RDN | cn |
---|---|
Classe structurelle | supannApplication |
Classes optionnelles | supannRessource, pkiUser |
Description détaillée | voir: Représentation des applications |
Exemple:
dn: cn=snw,ou=applications,dc=univ-exemple,dc=fr objectClass: supannApplication objectClass: supannRessource cn: snw displayName: Saisie des Notes par le Web description: Application Saisie des Notes par le Web (SCOL) owner: supannCodeEntite=DGFI,ou=structures,dc=univ-exemple,dc=fr manager: cn=applications.snw.managers,ou=groups,dc=univ-exemple,dc=fr supannMailContact: support-snw@listes.univ-exemple.fr userPassword: {SSHA}xxxxxx supannRessourceEtatDate: {COMPTE}A:::20250901 labeledURI: https://support.univ-exemple.fr/tickets?id=97932 {DEMANDE}
ou=applicationGroups
Origine : SupAnn 2021
Situé un niveau sous la racine, cet objet de classe organizationalUnit est le conteneur de l'ensemble des groupes d'applications définis dans l'annuaire. Son RDN est ou=applicationGroups.
SupAnn n'impose pas de directives de visibilité pour cet objet : celle-ci peut être publique au même titre que les autres conteneurs de premier niveau, ou limitée.
En revanche, les objets qu'il contient, dont l'usage est en général purement technique, auront en général une visibilité limitée, privée, voire cachée. Voir notamment les bonnes pratiques : Gestion des droits d'accès à l'annuaire.
Exemple:
dn: ou=applicationGroups,dc=univ-exemple,dc=fr objectClass: organizationalUnit ou: applicationGroups description: Les groupes d'applications référencées dans l'annuaire
Contenu
SupAnn préconise que tous les objets contenus dans cette branche soient au même niveau (pas de sous-arborescence). Cependant d'autres organisations sont tolérées selon les contraintes techniques de l'infrastructure utilisée.
Ces objets représentent des groupes et obéissent au modèle suivant:
RDN | cn |
---|---|
Classe structurelle | groupOfNames |
Classes optionnelles | supannGroupe, supannRessource |
Description détaillée | voir: Représentation des groupes |
Exemple:
dn: cn=acl.attr.supannEtuId.read,ou=applicationGroups,dc=univ-exemple,dc=fr objectClass: groupOfNames cn: acl.attr.supannEtuId.read description: ACL LDAP: lecture de l'attribut supannEtuId member: cn=snw,ou=applications,dc=univ-exemple,dc=fr
Cet exemple définit un groupe d'application dont le nom montre que ce regroupement servira à contrôler l'accès à l'attribut “supannEtuId” des apprenants par l'application “snw”.