hiboo
Contexte
L’authentification est l’une des clés de voûte de la sécurité en ligne, pourtant les technologies associées ont peu évolué en apparence depuis 50 ans : l’utilisateur dispose d’un identifiant et d’un mot-de-passe.
L’authentification, en particulier en entreprise, a toutefois vu les familles d’implémentation évoluer :
- historiquement, chaque application embarquait une base d’authentifiants, multipliant le stockage, souvent du même mot de passe bien qu’il y soit possible de disposer de mots de passe distincts ;
- des annuaires centralisés, de type LDAP par exemple, ont permis aux applications de recevoir et de déléguer la vérification du mot de passe, simplifiant le stockage mais créant autant de points de faiblesse comme toutes les applications accèdent au mot de passe ;
- des systèmes de jetons permettent aujourd’hui à un service d’authentification tiers de générer des jetons à usage limité que l’utilisateur envoie à l’application.
CAS, Kerberos et SAML comptent parmis les systèmes de jetons les plus populaires, mais ils sont complexes de mise en place et aujourd’hui très peu implémentés dans l’auto-hébergement sur Internet, au profit des deux approches plus classiques.
Les protocoles modernes pour le Web tels que OAuth2 et OpenID Connect disposent d’implémentations plus faciles, et sont supportés par un nombre grandissant d’applications. Leur implémentation au profit d’un fournisseur public présente toutefois ses risques : un mot de passe faible et toutes les applications sont impactées, un utilisateur pourrait ne pas souhaiter apparaître partout avec une identité unique, etc.
hiboo vise à construire un service de gestion d’identité supportant OpenID Connect (et SAML2) à destination des fournisseurs publics tels que les hébergeurs associatifs. Il met l’accent sur la simplicité de déploiement et la grande souplesse offerte à l’utilisateur, qui peut s’inscrire ou pas à certaines applications, voire utiliser des comptes multiples et des pseudonymes sur certaines.
Projet
hiboo est conçu non pas comme un fournisseur d’identité unique, mais comme une plateforme de gestion d’hébergeur, où chaque application est configurée et constitue un fournisseur d’identité à part entière.
L’utilisateur est libre de s’inscrire sur hiboo, puis de :
- s’inscrire à la vollée sur les applications ouvertes, y compris en choisissant son pseudonyme ;
- inscrire de nouveaux comptes sur les mêmes applications dans les limites indiquées, puis de choisir le compte désiré à chaque connexion ;
- demander des comptes sur les applications où l’inscription est supervisée par un administrateur ;
- supprimer ses comptes, voire ordonner la suppression de ses données personnelles.
hiboo embarque en outre des outils à destination des modérateurs et administrateurs, afin de gérer les applications, y compris en s’interfaçant avec les API des logiciels les plus répandus pour y bloquer, supprimer, ou valider des comptes.
Le projet consiste à développer un logiciel déployable et la documentation associée, qui embarque la logique de base d’un fournisseur d’identité multi-applications, et les patrons de conception et d’interactions avec les logiciels les plus répandus chez les fournisseurs de services.
Symbolique
Le projet est nommé « hiboo », conformément à la convention de nommage de ACIDES, et en référence au hibou, qui veille sur la forêt.
Le logo du projet est un hibou dessiné selon la convention graphique de ACIDES.
Historique
Le projet hiboo a débuté en septembre 2019 afin de centraliser l’authentification de l’hébergement proposé par l’association TeDomum. Il a d’abord supporté l’authentification Gitlab, Grafana et Synapse, avant de supporter fin 2020 l’authentification sur une dizaine de services différents.
Les fonctionnalités et les concepts ont évolué, en particulier les notions de « compte » et de « profil », pour se stabiliser fin 2020.