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¶
La page d’édition de profil utilisateur.¶
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¶
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¶
La page d’inscription.¶
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.¶
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.¶
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.¶
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¶
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 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 autorisations¶
La page de requête de consentement.¶
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’édition d’application cliente.¶
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é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 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.