Fonctionnalités¶
Voici les différentes fonctionnalités que Canaille propose. Vous pouvez activer n’importe laquelle de ces fonctionnalités avec la configuration pour que Canaille s’adapte au cas d’usage que vous rencontrez. Jetez un œil à notre feuille de route pour savoir ce qui arrive dans le futur.
Les utilisateurs peuvent interagir avec Canaille grâce à son web interface et les administrateurs peuvent aussi utiliser son interface en ligne de commande. Canaille peut enregistrer les données dans différentes bases de données.
Gestion d’utilisateurs et de groupes¶
L’interface web de Canaille web interface peut être utilisé dans des environnements de production ou localement pour permettre les développements.
Gestion de profil¶

La page d’édition de profil utilisateur.¶
Canaille fournit une interface pour gérer les profils utilisateur.
La liste exacte des champs affichés ainsi que s’ils sont accessible en écriture
ou en lecture seule
dépend du paramètre utilisateur liste de contrôle d'accès (ACL)
.
Selon les droits
de leur liste de contrôle d’accès (ACL) , les utilisateurs peuvent soit modifier leur profil, modifier le profil de n’importe quel utilisateur ou ne rien faire du tout.
Confirmation de l’e-mail¶
Si la fonctionnalité de confirmation d'e-mail
est activée, toute modification ou ajout de profil enverra un e-mail de confirmation à la nouvelle adresse. L’e-mail contiendra un lien sur lequel l’utilisateur devra cliquer pour confirmer son adresse.
Les utilisateurs avec le droit de gérer les utilisateurs
peut paramétrer les e-mails des utilisateurs sans confirmation.
Gestion de groupes¶

Modification de groupes¶
De manière similaire à la gestion de profil, Canaille fournit une interface pour gérer les groupes d’utilisateur.
La gestion de groupe est assez simple actuellement et consiste en un nom de groupe, une description et la liste de ses membres. Appartenir au groupe peut être utilisé comme filtre ACL
pour définir les droits utilisateur.
La gestion de groupe peut être activée avec un droit utilisateur dédié
.
Important
À cause d’une contrainte dans LDAP, les groupes doivent avoir au moins un membre. Il n’est donc pas possible de supprimer le dernier utilisateur d’un groupe sans supprimer le groupe.
Authentification utilisateur¶
Sauf si leur compte est verrouillé, les utilisateurs peuvent s’authentifier avec un identifiant et un mot de passe.
Important
Pour des raisons de sécurité, si un utilisateur essaie de se connecter avec un identifiant inexistant, cela ne sera pas précisé, sauf paramétrage explicite dans la configuration
.
Enregistrement d’un utilisateur¶

La page d’inscription.¶
Les utilisateurs peuvent créer des comptes sur Canaille si la fonctionnalité d'enregistrement
est activée. Ils pourront remplir un formulaire d’enregistrement contenant les champs détaillés dans les paramètres ACL
par défaut.
Si la :attr:` confirmation par e-mail <canaille.core.configuration.CoreSettings.EMAIL_CONFIRMATION>` est aussi activée, les utilisateurs recevront un lien de confirmation sur leur adresse e-mail. Ils devront cliquer dessus pour valider la création du compte.
Invitation d’utilisateur¶

La page de formulaire d’invitation.¶
Si un serveur e-mail
est configuré, les utilisateurs avec le droit de gérer les utilisateurs
peuvent créer un lien d’invitation pour un autre utilisateur.
Le lien pointe vers le formulaire d’neregistrement, même si l’enregistrement d’utilisateur est désactivée.
Il peut être envoyé automatiquement par e-mail au nouvel utilisateur.
Verrouillage de compte¶
Si Canaille est branché à un backend supportant cette fonctionnalité, les comptes utilisateurs peuvent être verrouillés avec la permission de gestion des utilisateurs
. La date de verrouillage du compte peut être immédiate, ou bien effective à une date future définie.
Au moment où un compte utilisateur est verrouillé :
leurs sessions ouvertes seront fermées ;
ils ne pourront plus se connecter à nouveau ;
aucun nouveau token OIDC ne sera émis ;
Les comptes utilisateur doivent être déverrouillés manuellement par un administrateur pour que les utilisateurs concernés récupèrent l’accès à ces actions.
Suppression de compte¶
Les utilisateurs avec la permission de suppression de compte
peuvent supprimer leur propre compte.
Les utilisateurs qui ont additionnellement la permission de gestion des utilisateurs
peuvent également supprimer les comptes d’autres utilisateurs.
Récupération de mot de passe¶

La page de réinitialisation de mot de passe.¶
Si un serveur e-mail
est configuré, et la fonctionnalité de récupération de mot de passe
est activée, les utilisateurs peuvent demander l’envoi d’un e-mail de réinitialisation de mot de passe s’ils ont oublié leur mot de passe.
L’e-mail sera envoyé à l’adresse e-mail saisie dans leur profil, et contiendra un lien leur permettant de choisir un nouveau mot de passe.
Réinitialisation de mot de passe¶
Si un serveur e-mail
est configuré, la permission de gestion des utilisateurs
permet d’envoyer des e-mails de réinitialisation de mot de passe aux utilisateurs. Les e-mails contiennent un lien qui permet aux utilisateurs de choisir un nouveau mot de passe sans avoir besoin de retrouver l’ancien.
Initialisation de mot de passe¶

La page de première connexion.¶
Les mots de passe
utilisateur sont optionnels. Si un serveur e-mail
est configuré, quand un utilisateur sans mot de passe tente de se connecter, il est invité à cliquer sur un bouton déclenchant l’envoi d’un e-mail de réinitialisation de mot de passe. Cet e-mail contient un lien dirigeant vers un formulaire permettant à l’utilisateur de choisir un mot de passe.
Vérification de la compromission du mot de passe¶
Si l” option de vérification de compromission du mot de passe
est activée, Canaille va vérifier la compromission du mot de passe sur HIBP (https://haveibeenpwned.com/) à chaque fois qu’un nouveau mot de passe est saisi. La configuration d’un e-mail administrateur
est nécessaire.
Authentification multi-facteurs¶
Si la fonctionnalité de mots de passe à usage unique
est activée, alors les utilisateurs devront s’authentifier avec un mot de passe temporaire généré par une application d’authentification.
Deux méthodes sont supportées : « TOTP » pour les mots de passes temporaires basés sur temps, et « HOTP » pour les mots de passes temporaires basés sur HMAC.
En cas de perte de jeton, l’authentification TOTP/HOTP peut être réinitialisée par les utilisateurs avec la permission de gestion des utilisateurs
.
Si un serveur mail
est configuré et que la fonctionnalité de mots de passe temporaires par mail
est activée, alors les utilisateurs devront pour s’authentifier entrer un mot de passe temporaire envoyé à leur adresse email principale.
Si un serveur SMPP
est configuré et que la fonctionnalité de mots de passe temporaires par SMS
est activée, alors les utilisateurs devront pour s’authentifier entrer un mot de passe temporaire envoyé à leur numéro de téléphone principal.
Blocage des connexions infructueuses¶
Si le blocage de connexions infructueuses
est activé, alors les utilisateurs devront attendre un temps croissant entre deux connexions infructueuses.
Interface web¶
Internationalisation¶
Canaille va s’afficher dans votre langue préférée
si disponible, ou la langue de votre navigateur si disponible (si elle ne l’est pas, vous pouvez noud aider à la traduire). Si vous le souhaitez, vous pouvez également forcer une langue
pour tous les utilisateurs.
Léger¶
L’interface web est légère, donc tout devrait se charger rapidement. Il y a un peu de Javascript ici et là pour lisser l’expérience, mais aucun Javascript n’est absolument nécessaire à l’utilisation de Canaille.
Personnalisable¶
Le thème par défaut devrait suffir à la plupart des usages. Il dispose d’un thème sombre, s’affiche bien sur mobile, et vous laissez choisir un logo
et un favicon
.
Si vous avez besoin de plus, vous pouvez utiliser un thème personnalisé
.
OpenID Connect¶
Canaille implémente un sous-ensemble de la spécification de OAuth2/OpenID Connect. Cela permet d’avoir la SSO et la SLO aux applications branchées à Canaille.
Gestion des autorisations¶

La page de requête de consentement.¶
Les utilisateurs peuvent donner leur autorisation aux applications qui demandent un accès à leurs informations personnelles, et révoquer ces autorisations lorsqu’ils le souhaitent.
Gestion des applications¶

La page d’ajout d’application cliente.¶
Les utilisateurs ayant la permission
nécessaire peuvent gérer les clients OIDC depuis l’interface web.
Dans certains cas, il peut être utile d’éviter la page d’autorisation pour certaines applications de confiance, pour que des clients puissent être pré-autorisés.
Découverte¶
Canaille implémente les spécifications de découverte donc la plupart des applications branchées à Canaille peuvent se configurer automatiquement par eux-même.
Enregistrement de client dynamique¶
Canaille implémente les spécifications d’enregistrement de client dynamique, donc quand la fonctionnalité est activée
, les clients peuvent s’enregistrer eux-même sur Canaille sans l’intervention d’un administrateur.
Provisionnement d’applications¶
Canaille implements the SCIM specifications and can automatically broadcast modifications on users and groups to applications plugged to Canaille.
Administration système¶
Interface en ligne de commande¶
Canaille est équipé d’un CLI, ou interface en ligne de commande, pour aider les administrateurs à l’hébergement et à la gestion.
L’interface en ligne de commande dispose d’outils pour générer et vérifier votre configuration ou pour installer des éléments manquants. Vous pouvez utiliser le CLI pour créer, lire, mettre à jour et supprimer des modèles comme les utilisateurs
, groupes
ou les clients OIDC
.
Elle dispose également d’outils pour remplir votre base de données avec des objets aléatoires, par exemple à des fins de test.
Bases de données¶
Canaille peut manipuler de la donnée depuis des bases de données SQL les plus communes, telles que PostgreSQL, MariaDB ou SQLite, ainsi que depuis OpenLDAP. Canaille dispose également d’une base de données en mémoire sans dépendances qui peut être utilisée dans des tests unitaires.
Connexion¶
Canaille écrit des journaux
pour tous les événements importants dans le but d’aider les administrateurs à comprendre ce qui se passe et déboguer les cas bizarres.
Les événements de sécurité suivants sont enregistrés avec l’étiquette « security » pour les retrouver facilement :
Tentative d’authentification
Mise à jour du mot de passe
Mise à jour de l’e-mail
Mail d’oubli de mot de passe envoyé à l’utilisateur
Le mot de passe à usage unique a correctement été envoyé par mail
Réinitialisation de l’authentification multi-facteurs
Emission de jeton
Rafraichissement de jeton
Révocation de jeton
Nouvelle autorisation donnée pour l’application client
Révocation de l’autorisation
Outil de développement et de test¶
Outil de test unitaire¶
Grâce à sa base de données en mémoire, Canaille peut être utilisé dans la suite de tests unitaires de votre application, pour que vous puissiez vérifier comment l’application se comporte face à un vrai serveur OpenID Connect. Si vous travaillez en python, vous pourriez être intéressé par pytest-iam.
Serveur de développement¶
Canaille peut également être lancé dans votre environnement de développement, si vous trouvez que lancer un Keycloak dans un conteneur Docker est trop lourd pour votre application web.
Outils d’intégration continue¶
Canaille s’intègre également bien dans des scénarios d’intégration continue. Grâce à son CLI, vous pouvez préparer la donnée dans Canaille, laisser votre application interagir avec, puis observer les effets secondaires.
Prévisionnel¶
Version stable¶
Avant de déployer Canaille en version stable, nous voulons réaliser les taches suivantes :