Skip to content

Comptes et profils

Comptes

Créer un compte

La création d'un compte peut se faire via le formulaire d'inscription accessible en cliquant sur le bouton S'enregistrer à l'accueil de l'interface web (si OPEN_SIGNUP est True).

Il existe aussi une ligne de commande dédiée, à exécuter dans le dossier d'installation de Hiboo :

/var/www/hiboo $ FLASK_APP=hiboo poetry run flask user create {username} {password}
Promouvoir un compte au rang d'admin

Dans le dossier d'installation de Hiboo, utiliser la commande suivante :

/var/www/hiboo $ FLASK_APP=hiboo poetry run flask user promote {username}
Restreindre les inscriptions

Par défaut, toute personne disposant de l'URL de votre instance Hiboo pourra y créer un compte. Pour empêcher cela et n'autoriser les inscriptions qu'aux personnes disposant d'un lien d'invitation, réglez le paramètre OPEN_SIGNUP sur False.

Pour créer un lien d'invitation, rendez-vous dans la liste des utilisateurices où le menu du haut affichera alors un bouton Lien d'invitation.

Attention : le lien est valide 24 h.

Gestion des utilisateurices

La liste des utilisateurices se trouve à l'URL /user/list, accessible dans le menu latéral via la rubrique Utilisateurices.

Le tableau présente chaque utilisateurice par une ligne. En colonnes se trouvent dans l'ordre les informations suivantes :

  • nom d'utilisateurice
  • groupes d'appartenance
  • méthodes d'authentification utilisées
  • date de création

Note : la liste est triée par date de création dans l'ordre croissant. Un outil de recherche est à votre disposition au-dessus du tableau en cas de besoin.

En cliquant sur le nom de l'utilisateurice, on accède à une page donnant plus de détails :

  • une fiche affichant notamment l'UUID et la dernière modification
  • un historique des actions effectuées sur ou par l'utilisateurice
  • une liste de ses profils pour chaque application
Informations de contact

Les utilisateurices ont la possibilité de renseigner leur adresse email et leur contact [matrix]. L'une des priorités de Hiboo étant la protection des données personnelles des utilisateurices, l'interface admin et les commandes flask user ne donnent pas accès à ces informations.

En revanche, vous pouvez vérifier qu'une adresse mail ou qu'un identifiant [matrix] est bel et bien celui d'un·e utilisateurice. Pour cela, la page de détail de l'utilisateurice donne accès à un formulaire via un bouton Vérification du contact situé dans le menu du haut. Dans le cas où l'utilisateurice n'aurait enregistré aucun moyen de contact, un message le signalera pour vous éviter de perdre du temps.

Réinitialisation du mot de passe

La page de détail de l'utilisateurice donne également accès à un formulaire de génération de lien permettant à l'utilisateurices de réinitialiser son mot de passe. Pour y accéder, cliquer sur le bouton Réinitialisation du mot de passe dans le menu du haut. Hiboo ne possèdant pas encore de moyen pour communiquer directement avec les utilisateurices, cette action incombe pour le moment aux admins.

Attention : le lien est valide 24 h.

Groupes

Il est possible de créer des groupes afin de regrouper les comptes inscrits sur Hiboo. Les utilisateurices peuvent voir uniquement les groupes auxquels iels appartiennent, mais ne peuvent pas voir les autres membres de ces groupes.

Cette fonctionnalité est accessible par la rubrique Groupes du menu latéral, qui donne accès à la liste de tous les groupes et à un formulaire Créer un groupe.

Pour ajouter ou retirer des membres d'un groupe, cliquer sur Membres dans la colonne Actions puis sélectionner les comptes à ajouter (boite de gauche) ou désélectionner les comptes à retirer (boite de droite).

Note : pour l'instant, les groupes n'ont aucun effet sur les profils et les applications, ni sur de quelconques permissions dans Hiboo. Cela est amené à évoluer, il vaut donc mieux considérer cette fonctionnalité comme expérimentale.

Profils

Cycle de vie d'un profil
Statut

Les profils Hiboo disposent d’un champ statut correspondant à leur état :

  • Actif : le profil est utilisable (état nominal)
  • Non réclamé : le profil est importé d'une application préexistante mais n'est pas assigné à un·e utilisateurice (voir plus bas)
  • Demandé : le profil est demandé par l'utilisateurice mais n'est pas validé par l'admin
  • Bloqué : le profil est bloqué par l'admin, l'utilisateurice ne peut plus se s'authentifier avec
  • Supprimé : le profil est supprimé et donc inutilisable, mais les données correspondantes dans l'application concernée ne sont pas nécessairement effacées
  • Purgé : le profil est supprimé et les données purgées de l'application concernée par l'admin
Transitions

La liste et les détails d'un profil permettent d'agir dessus en fonction de ce cycle de vie, respectivement via la colonne Actions et par le menu du haut. Les transitions entre les différents états sont logiquement limitées :

  • un profil non réclamé ou demandé peut être activé ou purgé
  • un profil actif peut être bloqué, supprimé ou purgé
  • un profil bloqué peut être réactivé, supprimé ou purgé
  • un profil supprimé peut uniquement être purgé
  • un profil purgé reste dans la base de donnée pour des questions de sécurité, mais n'a aucune possibilité de transition

La transition d'un état à l'autre comprend trois étapes assurant la logique interne de transition. Le passage d'une étape à l'autre s'effectue par une tâche de fond exécutée toutes les 30 secondes.

Note : la purge d'un profil nécessite une confirmation manuelle. Lorsque cette transition est prête à être achevée, un bouton 👆 s'affiche à côté du badge de l'état du profil. Cliquer dessus achève la transition. Cela sous-entend que les données ont bien été purgées de l'application par l'admin.

Création et validation des profils
Créer les profils manuellement

Pour créer un compte sur une application paramétrée dans Hiboo, les utilisateurices doivent se connecter une première fois à cette application et être redirigé·es vers Hiboo afin de créer un profil. Pour le moment Hiboo ne fait pas de IdP-initiated SSO.

En tant qu'admin, il est possible de créer ces profils manuellement en se rendant sur la liste des profils du service concerné (rubrique Services du menu latéral, puis Profils dans la colonne Actions). Le menu du haut de cette page renvoie à un formulaire Créer un profil où il suffit de choisir un compte auquel sera attribué le profil, puis de choisir un nom de profil et éventuellement un commentaire qui apparaitra dans les journaux du compte et du profil.

Restriction sur les noms des profils

Pour des raisons de sécurité certains noms de profil ne sont pas autorisés pour les utilisateurices, la liste par défaut est visible dans le code et configurable via la variable USERNAME_BLOCKLIST.

Cette protection est par défaut désactivé pour les admins.

Protection contre l'usurpation

Pour éviter l'usurpation d'identité, une restriction s'applique si le nom de profil existe déjà :

  • pour le même service (unicité)
  • pour d'autre services, sauf s'il s'agit du même compte
  • pour un nom d'utilisateurices déjà enregistré, sauf s'il s'agit du même compte

Note : Ces restrictions sont insensibles à la casse. Alice et alice sont deux noms interprétés comme identiques.

La coche, activé par défaut, permet à l'admin de désactiver cette protection.

Valider les profils sur des applications restreintes

Chaque service dispose de sa propre politique de création de profils. Lorsque cette politique est paramétrée sur Les profils créés doivent être validés ou Les profils additionnels doivent être validés, les utilisateurices peuvent créer des profils, mais ceux-ci ne seront actifs qu'après avoir été validés par l'admin.

Pour valider un profil, il faut se rendre à la rubrique modération du menu latéral. Les profils en attente de validation y sont listés et peuvent être validés ou non via les boutons idoines (valider ou rejeter) de la colonne Actions.

Note : Lorsque des profils sont en attente de validation, un badge avec leur nombre apparaît à côté de la rubrique « Modération » dans le menu latéral.

Liste et détails des profils

Plusieurs vues des profils sont disponibles en fonction des besoins. On peut ainsi en obtenir la liste :

  • par service, en se rendant dans la rubrique Services du menu latéral, puis sur Profils (colonne Actions)
  • par utilisateurice, en se rendant sur le détail d'un compte

En cliquant sur le nom d'un profil, on accède à ses détails, à savoir à ses métadonnées (UUID, date de création, statut), ainsi qu'à un journal d'historique de ses modifications.

Convertir des comptes préexistants en profils Hiboo

Si une application est déjà utilisée avant la mise en place de l'authentification avec Hiboo, il est possible de récupérer sa base de comptes pour en faire des profils qui sont ensuite affectés aux utilisateurices Hiboo.

Attention : La méthode décrite ici est conçue pour fonctionner systématiquement du côté de Hiboo, mais elle est à appliquer avec précaution du côté du client de l'application. En effet, les étapes nécessaires pour y parvenir et le résultat peuvent fortement varier d'une application et d'un protocole à l'autre. Avant de vous lancer dans une migration, il est donc toujours recommandé de :

  • sauvegarder la base de donnée de l'application concernée
  • tester la migration pour un compte avant de la généraliser
  1. Exporter la base des utilisateurices de l'application dans un tableau csv.

Les deux premières colonnes doivent correspondre respectivement au nom du profil et au mot de passe haché. Toute colonne supplémentaire sera considérée comme un nom d'utilisateurice utilisable de manière optionnelle pour réclamer le profil.

  1. Importer le tableau en ligne de commande :
/var/www/hiboo $ poetry run flask profile csv-unclaimed {service_uuid} {filename}

À ce stade, Hiboo a créé tous les profils nécessaires. Il reste à les affecter aux utilisateurices et à s'assurer qu'iels puissent se connecter avec sur l'application de manière « transparente », c'est-à-dire sans altérer les comptes sur celle-ci ni créer de doublons. Pour cela, il faut évidemment commencer par s'assurer que le client OIDC ou SAML de l'application est bien paramétré.

Attention : en général, les applications permettent de choisir l'attribut qui sera utilisé pour distinguer les utilisateurices. Ce type de paramètre est donc critique dans une migration. Veillez à bien lire la documentation disponible pour le client utilisé et à tester la migration avec soin avant tout passage à l'échelle.

Une fois le paramétrage validé, il existe deux manières d'affecter un profil à un·e utilisateurice :

  • soit manuellement par l'admin (action Attribuer dans la liste des profils)
  • soit de manière autonome par l'utilisateurice, lors de sa connexion à l'application via Hiboo.

Dans ce dernier cas, à sa première connexion, l'utilisateurice devra cliquer sur Réclamer un profil en haut à droite de l'interface de connexion, puis renseigner les identifiants originels qu'iel avait sur l'application.

Il est recommandé de bien prévenir et orienter les utilisateurices de l'application en amont concernant ces procédures.