Nos derniers travaux sur Canaille financés par la fondation NLNet nous amènent à sortir une version bêta. Faisons le point.
Derniers travaux
Gestionnaire de tâches
Nous avons implémenté un gestionnaire de tâches qui permet à Canaille d'effectuer les tâches longues de manière asynchrone. C'est utilisé notamment pour propager les requêtes SCIM ou les envois de mail. L'implémentation utilise dramatiq, et nous avons publié le paquet dramatiq-eager-broker qui permet de conserver un comportement synchrone dans la suite de tests, et dans le cas où le gestionnaire de tâches ne serait pas configuré.
Certification OpenID Connect
Nous vous en parlions récemment, Canaille a obtenu au mois de septembre dernier la certification de la fondation OpenID Connect. Cela garanti que Canaille a un comportement conforme pour la plupart des opérations OpenID Connect courantes.
Le processus de certification a révélé beaucoup d'erreurs d'interprétation, souvent mineures mais parfois importantes. Nous avons corrigé la plupart des problèmes directement dans Authlib, la bibliothèque sous-jacente d'implémentation des normes.
Securité
Nous avons implémenté les recommandations restantes issues de l'audit de Radically Open Security. La plupart étaient des recommandations mineures relevant des bonnes pratiques, mais tout est là désormais. Nous avons aussi documenté les recommandations de l'ANSSI concernant l'authentification et la gestion des mots de passe, que Canaille implémente. La plupart des recommandations sont implémentées, il reste principalement à supporter WebAuthn.
Documentation
Nous travaillons continuellement sur la documentation, et visons de suivre les recommandations de Diátaxis. Nous avons écrit des chapitres pour le premier lancement de Canaille et la configuration du premier client OpenID Connect. Ces premières étapes nous indirectement fait travailler sur pydantic-settings-export, qui permet notamment aux utilisateurs d'exporter un fichier de configuration avec toutes les valeurs par défaut commentées et décrites, ce qui offre un bon point de départ pour commencer à adapter la configuration. Nous utilisons encore une implémentation personnalisée, le temps de faire remonter toutes les modifications dont nous avons besoin dans le projet original.
La suite
Canaille vise la simplicité et son périmètre fonctionnel est donc assez restreint. Nous limitons donc le nombre de fonctionnalités que nous souhaitons implémenter, cepedant il en reste quelques unes :
- Le support de WebAuthn comme facteur d'authentification. Cela nous permettra d'implémenter les dernières recommandations de l'ANSSI qui manquent.
- Le support d'une méthode de Captcha. Il est à première vue étonnant d'inclure cette fonctionnalité à l'heure où la pertinence des Captchas s'amoindrit avec l'apparition des IAs. Nous notons cependant que c'est une fonctionnalité essentielles pour certains utilisateurs, comme en témoigne le comparatif très poussé de solutions de SSO libres publié par la Contre-Voie l'année dernière.
- L'implémentation d'un système de greffons personnalisés pour Canaille. C'est à un horizon plus lointain, mais nous aimerions proposer une API pour que des développeurs puissent implémenter leur propre facteur d'authentification pour Canaille, ou bien leur propre connecteur de base de données.
À par ces fonctionnalités visibles, l'essentiel des évolutions à venir viendra sous le capot :
- L'amélioration de la pile SCIM, notamment pour apporter le support des filtres SCIM.
- L'amélioration de la pile OIDC pour apporter le support de nouvelles normes. Notamment celles qui ont a trait à la déconnexion centralisée ou bien à la sécurité.
