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

_images/6285fd5eb4da48f4add6b4020acf34c9.png

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

_images/bc9db54bb922b534a2420b0fe0064125.png

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

_images/5648d235feaaf3dbed1a23337054654e.png

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

_images/3737ab175c2abe19386cb38876d67533.png

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

_images/522e116973bf1f30c397deebef0c0be8.png

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

_images/a392d40e5f2ffc1d449d7007d958a383.png

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

État de la traduction

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 applications

_images/23d2023bc1d7f2497ea345e143683007.png

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éerliremettre à jour et supprimer des modèles comme les utilisateursgroupes 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 :

Et au-delà