Les objets de la branche ou=people de l'annuaire, représentant des personnes, peuvent avoir plusieurs états. Chaque état matérialise une “étape” dans le cycle de vie de l'objet, en fonction d'éléments liés à la personne: son statut dans l'établissement, qu'il soit futur, présent ou passé, le fait qu'elle ait ou non “pris possession” de son compte informatique, ou qu'elle soit l'objet de restrictions, pour raisons disciplinaires ou autres. A chaque état peut être associé, le cas échéant, des dates de début et de fin de validité, effectives ou prévisionnelles.
De même, des états et des dates de validité peuvent être définis pour des ressources associés à l'objet, pouvant avoir des cycles de vie différents: par exemple le fait de bénéficier d'une boîte mail, d'un accès à l'ENT, etc.
SUPANN définit des attributs et des nomenclatures permettant d’assurer le suivi de ces états.
Les objectifs sont les suivants :
SUPANN définit les éléments suivants:
La nomenclature des ressources est utilisée pour l'étiquette (cf. Les attributs étiquetés) des attributs supannRessourceEtat et supannRessourceEtatDate.
SUPANN définit les valeurs suivantes:
Ressource | Usage |
---|---|
{COMPTE} | Se rapporte à l'objet LDAP lui-même (compte de l'utilisateur) |
{MAIL} | Accès à une boîte de messagerie électronique individuelle |
Cette nomenclature est semi-ouverte: l'établissement peut étendre cette liste avec des valeurs pour ses usages propres. Voir: Espace de nommage des étiquettes.
État | Description |
---|---|
A | actif : la ressource ou le compte est opérationnel |
I | inactif : la ressource ou le compte existe, mais n'est pas opérationnel |
S | suspendu : la ressource ou le compte est opérationnel, mais l'utilisateur n'y a pas accès |
Cette nomenclature est fermée.
SUPANN définit les valeurs suivantes:
Sous-état | Description | État principal associé |
---|---|---|
États du cycle de vie naturel du compte, dans l'ordre d'échéance: | ||
SupannPrecree | Compte créé par anticipation, mais qui n'est pas encore opérationnel | I |
SupannCree | Compte opérationnel, mais dont l'utilisateur n'a pas encore pris possession | I |
SupannAnticipe | Compte opérationnel et accédé par l'utilisateur, en anticipation de sa date de début d'activité | A |
SupannActif | Compte opérationnel et accédé par l'utilisateur en activité régulière | A |
SupannSursis | Compte opérationnel et accédé par l'utilisateur, en sursis après sa date de fin d'activité | A |
SupannExpire | Compte qui n'est plus opérationnel, la date de fin d'activité et le sursis éventuel étant dépassés, mais dont les échéances de suppression ne sont pas encore atteintes | I |
SupannInactif | Compte non opérationnel (sans en préciser la raison) dont les échéances de suppression ne sont pas encore atteintes | I |
SupannSupprDonnees | Compte expiré ayant atteint l'échéance de suppression des données | I |
SupannSupprCompte | Compte expiré en instance de suppression définitive | I |
États de verrouillage pouvant intervenir à différents stades du cycle: | ||
SupannVerrouille | Compte verrouillé (sans en préciser la raison) | S ou I en fonction de la politique de l'établissement |
SupannVerrouAdministratif | Compte verrouillé pour une raison administrative (suspension de compte, abus de charte…) | S ou I en fonction de la politique de l'établissement |
SupannVerrouTechnique | Compte verrouillé pour une raison technique (détection d'homonyme, suspicion de compte piraté…) | S ou I en fonction de la politique de l'établissement |
Cette nomenclature est semi-ouverte: chaque établissement est libre d'utiliser des valeurs personnalisées préfixées différemment. Les valeurs personnalisées ne doivent pas débuter par “Supann”, ne doivent pas contenir de “:” et ne doivent pas être constituées uniquement de chiffres. Pratiques recommandées:
Les valeurs personnalisées sont destinées à un usage local uniquement.
Si des nouvelles valeurs de sous-états doivent être partagées entre plusieurs établissements ou revêtent un intérêt commun, celles-ci peut être proposée au groupe de travail SUPANN pour normalisation : voir Évolution des recommandations.
supannRessourceEtat indique l'état courant, et optionnellement son sous-état, pour une ressource donnée. L'identifiant de la ressource est indiqué sous forme d'étiquette. La syntaxe est de la forme:
{RESSOURCE}État[:SousÉtat]
Il peut être nécessaire, en fonction des ressources qui viennent chercher l’information de l’annuaire, de doubler l’information: une valeur contenant l'état seul, et une valeur contenant l'état et son sous-état associé.
{COMPTE}A {COMPTE}A:SupannSursis {COMPTE}I {COMPTE}S:SupannVerrouTechnique
supannRessourceEtatDate contient les mêmes informations plus, éventuellement, celles relatives aux dates de début et de fin dans l’état:
{RESSOURCE}État:[SousÉtat]:[DateDébut]:[DateFin]
Les informations de sous-état, de date de début et de date de fin sont facultatives. Le format de la date est de type AAAAMMJJ.
{COMPTE}A:::
Compte actif en période de sursis avec date de début et de fin du sursis
{COMPTE}A:SupannSursis:20170912:20171212
Compte actif avec date de début, mais sans date de fin connue
{COMPTE}A::20170825:
Compte actif en activité régulière, date de début non spécifiée, mais avec date de fin connue
{COMPTE}A:SupannActif::20171231
OpenLDAP, ainsi que d’autres services d’annuaires, permet de limiter la visibilité d’un objet et sa capacité d’authentification selon la valeur d'un ou plusieurs de ses attributs.
L'exemple de configuration suivant montre comment utiliser le supannRessourceEtat pour contrôler la visibilité des objets dans OpenLDAP, à l’aide d’ACLs de type filter.
# exceptions: pas de restrictions pour administrateurs, applications... access to * by group="cn=ldap-admins,ou=groups,dc=univ-x,dc=fr" write by group="cn=ldap-readers,ou=groups,dc=univ-x,dc=fr" read by * break # aucun accès aux comptes inactifs access to filter="(supannRessourceEtat={COMPTE}I*)" by * none # pas d'authentification pour les comptes suspendus access to filter="(supannRessourceEtat={COMPTE}S*)" attrs=userPassword by * none # sinon: authentification sur userPassword access to attrs=userPassword by self write by anonymous auth by * none # et lecture de tout le reste access to * by * read