Fonctionnalités

Here are the different features that Canaille provides. You can enable any of those features with the configuration to fit any use cases you may meet.

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

Canaille web interface can be used either in production environments or locally for development purposes.

Gestion de profil

_images/46b31347ef628356f58bba579924ed03.png

La page d’édition de profil utilisateur.

_images/8aa8be0c683122a61da924c3a4a2e14a.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/4c809ae2cbe0fe9aef6fc11ca6fc9b36.png

Modification de groupes

_images/ab26da116f0d3ee055a624794654045b.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.

Group management can be enable with a dedicated user permission.

Important

Due to limitations in the LDAP backend, groups must have at least one member. Thus it is not possible to remove the last user of a group without removing the group.

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.

Multiple sessions

Several user sessions can be opened simultaneously. They can be switched in one click, disconnected all at once or independently.

Enregistrement d’un utilisateur

_images/06ddce76a338cfefea6d7f4038e4c35b.png

La page d’inscription.

_images/fb550f75dabe8a69f5018c540083160d.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/f96966d46f7b4b1da6454946167efaff.png

La page de formulaire d’invitation.

_images/5e5d867d8afac730a549ad0cf979d11a.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/ec064a6ba2b88f01f0179c64563e79c7.png

La page de réinitialisation de mot de passe.

_images/7373319fd9274b2ded1e0534252ba2b0.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/8ec26b2668ae6094ab02fd46e66775f7.png

La page de première connexion.

_images/8bcf25b2e9bcab4de49c0735a9b53528.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

If the one-time passcode feature is set, then users will need to authenticate themselves using a one-time passcode via an authenticator app. Two options are supported : « TOTP » for time one-time passcode, and « HOTP » for HMAC-based one-time passcode. In case of lost token, TOTP/HOTP authentication can be reset by users with user management permission. If a mail server is configured and the email one-time passcode feature is enabled, then users will need to authenticate themselves via a one-time passcode sent to their primary email address. If a smpp server is configured and the sms one-time passcode feature is enabled, then users will need to authenticate themselves via a one-time passcode sent to their primary phone number. If the FIDO2 feature includes fido2, then users can authenticate using security keys (USB keys, biometric devices, etc.) via the WebAuthn standard. Users can register multiple security keys from their profile settings, and the number of keys per user can be limited with FIDO_MAX_CREDENTIALS.

Blocage des connexions infructueuses

Si le blocage de connexions infructueuses est activé, alors les utilisateurs devront attendre un temps croissant entre deux connexions infructueuses.

CAPTCHA protection

If the CAPTCHA feature is enabled, a security code challenge helps protect against automated attacks.

The CAPTCHA appears:

  • On login forms after a configurable number of failed attempts

  • On all registration forms when enabled

  • Until a successful login occurs

Both image and audio versions are provided for accessibility.

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

_images/oidc-certification.png

Canaille implements a subset of the OAuth2/OpenID Connect specifications. Its implementation have been certified by the OpenID Foundation. This allows to provide SSO and SLO to applications plugged to Canaille.

Gestion des applications

_images/1bb5694d160353bbb019bcc58317af57.png

La page d’édition d’application cliente.

_images/20792b05859311166052fcd820cca244.png

La page d’édition 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 can handle data from the most common SQL databases such as PostgreSQL or SQLite, as well as OpenLDAP. It also comes with a no-dependency in-memory database that can be used in unit tests suites.

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 code de passe à usage unique a correctement envoyé par email à l’utilisateur

  • 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

Thanks to its lightweight in-memory database and its curated dependency list, Canaille can be used in the unit test suite of your application, so you can check how it behaves against a real world OpenID Connect server. If you work with python you might want to check 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.