Aperçu du Système d’authentification¶
Base de données d’authentification¶
Le nouveau système d’authentification stocke les configurations d’authentification dans un fichier de base de données SQLite situé, par défaut, sous <user home>/.qgis3/qgis-auth.db
.
Cette base de données d’authentification peut être déplacée entre les différentes installations de QGIS sans affecter les autres préférences utilisateur, car elle est complètement indépendante des paramètres de QGIS. Un ID de configuration (une chaîne aléatoire de 7 caractères alphanumériques) est généré lors du stockage de la configuration dans la base de données. Cela permet à l’ID d’être stocké dans des composants plein texte (tels que des projets, des plugins ou des fichiers de paramètres), sans que les informations d’identification y figurent.
Note
Le dossier contenant la base qgis-auth.db
peut être défini dans la variable d’environnement QGIS_AUTH_DB_DIR_PATH
, ou dans la ligne de commande utilisée lors du lancement avec l’option --authdbdirectory
.
Mot de passe principal¶
Pour stocker ou accéder à des informations sensibles dans la base de données, l’utilisateur doit renseigner un mot de passe principal. Un nouveau mot de passe principal est requis et vérifié lors de la première écriture de toute donnée cryptée dans la base de données. Ce n’est que lors de l’accès aux données sensibles que le mot de passe principal est demandé à l’utilisateur, il est alors mis en cache pour le reste de la session (jusqu’à la fermeture de l’application), sauf si l’utilisateur choisi délibérément d’effacer le mot de passe en cache. Certains cas d’utilisation du système d’authentification ne nécessitent pas de saisir le mot de passe principal, comme par exemple lorsque l’on sélectionne une configuration d’authentification existante, ou lorsque l’on applique une configuration à un serveur (comme lors de l’ajout d’une couche WMS).
Note
Un chemin vers un fichier contenant le mot de passe principal peut être paramétré au moyen de la variable d’environnement suivante, QGIS_AUTH_PASSWORD_FILE
.
Gestion du mot de passe principal¶
Une fois défini, le mot de passe principal peut être redéfini; le mot de passe courant sera demandé pour pouvoir en définir un nouveau. Pendant cette procédure, une option permet de générer une sauvegarde complète de la base de données.
Si l’utilisateur oublie le mot de passe principal, il n’existe aucun moyen de le retrouver ou de le contourner. Il n’est pas non plus possible de retrouver des informations cryptées dans le mot de passe principal.
Si un utilisateur saisi sont mot de passe trois fois de manière incorrecte, l’interface propose d’effacer le contenu de la base.
Configuration de l’authentification¶
Les configurations d’authentification peuvent être gérées dans Configurations de l’onglet Authentification du dialogue Options de QGIS ( ).
Utilisez le bouton pour ajouter une nouvelle configuration, le bouton pour supprimer des configurations, et le bouton pour modifier des configurations existantes.
Les mêmes opérations que pour la gestion des configurations d’authentification (Ajouter, Modifier et Supprimer) sont disponibles pour la configuration de la connexion à un service, comme par exemple la configuration de la connexion à un service OWS. Des boutons dédiés à ces actions dans le sélecteur de configuration permettent de gérer les configurations présentes dans la base d’authentification. Il n’est pas nécessaire de se rendre dans configurations de l’onglet Authentification des options de QGIS, sauf si vous avez besoin de gérer les configurations de manière plus complète.
Lors de la création ou de la modification d’une configuration d’authentification, les informations à fournir sont un nom, une méthode d’authentification et toute autre informatique requise par la méthode (Pour d’avantage d’information sur les types d’authentification supportés, voir Méthodes d’authentification).
Méthodes d’authentification¶
Les authentifications disponibles sont fournies par les extensions C ++ de la même manière que les extensions de fournisseur de données sont prises en charge par QGIS. Le procédé d’authentification qui peut être sélectionné est relatif à l’accès à la ressource p. ex. HTTP(S) ou à la base de données par le provider, et s’il y a un support dans le code QGIS et dans une extension. En tant que telles, certaines extensions d’authentification peuvent ne pas être applicables partout où un sélecteur de configuration d’authentification est utilisé. Vous pouvez accéder à la liste des extensions d’authentification disponibles et leurs ressources / fournisseurs compatibles, en allant dans Authentification, cliquez sur le bouton Extensions installées**.
et, dans l’ongletPlugins can be created for new authentication methods that do not require QGIS to be recompiled. Since the support for plugins is currently C++-only, QGIS will need to be restarted for the new dropped-in plugin to become available to the user. Ensure your plugin is compiled against the same target version of QGIS if you intend to add it to an existing target install.
Note
L’URL de la ressource est actuellement une fonctionnalité non implémentée qui permettra éventuellement de choisir automatiquement une configuration particulière lors de la connexion aux ressources à une URL donnée.
Utilitaire et Mot de passe principal¶
A partir du menu Options (Authentification , plusieurs actions permettent de gérer le mot de passe principal, la base de données et les configurations d’authentification:
) , dans l’ongletEntrer le mot de passe principal :
Ouvre la fenêtre de saisie du mot de passe principal, indépendamment de toute commande d’authentification sur une base de données.
Effacer le mot de passe principal en cache :
Efface le mot de passe principal s’il a été défini par la fenêtre de saisie.
Réinitialiser le mot de passe principal :
Ouvre la fenêtre de saisie pour changer le mot de passe principal (le mot de passe actuel doit être connu) et optionnellement, sauvegarde la base de données actuelle.
Effacer les configurations d’authentification mises en cache : Efface le cache interne des configurations utilisées pour accélérer les connexions réseau. Cela n’efface pas le cache du gestionnaire d’accès au réseau principal de QGIS, qui nécessite de relancer QGIS.
Réinitialiser le mot de passe principal : Remplace le mot de passe principal actuel par un nouveau mot de passe. Le mot de passe principal actuel sera nécessaire avant la réinitialisation et une sauvegarde de la base de données pourra être effectuée.
Supprimer toutes les configurations d’authentification : Efface de la base de données tous les enregistrements de configuration, sans supprimer les autres enregistrements stockés.
Effacer la base de données d’authentification : La sauvegarde de la base de données courante et la reconstruction de la structure de tables de base de données ne seront réalisées que lorsque d’autres opérations, comme le chargement du projet, ne provoquent pas d’erreurs en raison de l’absence temporaire de la base de données. Dans ces cas, la sauvegarde et la reconstruction sont différées.
Utiliser les configurations d’authentification¶
En règle générale, une configuration d’authentification peut être sélectionnée par une boîte de dialogue de configuration pour des services réseau (tels que WMS). Toutefois, le widget de sélection de configuration peut être intégré à chaque fois que l’authentification est nécessaire dans QGIS ainsi que dans les les plugins PyQGIS ou C ++ tiers.
Lorsque vous utilisez le sélecteur, Pas d’authentification est affiché dans le menu contextuel lorsque rien n’est sélectionné ainsi que lorsqu’il n’y a aucune configuration à choisir ou quand une configuration précédemment affectée ne peut plus être trouvée dans la base de données. Lorsqu’une configuration est choisie, les champs Méthode et Id sont en lecture seule et fournissent respectivement une description de la méthode d’authentification et de l’ID de la configuration .
Liaisons Python¶
Toutes les classes et les fonctions publiques ont des liaisons sip, sauf QgsAuthCrypto
, car la gestion du cryptage du mot de passe principal et du cryptage de la base de données auth doit se faire par l’application principale, et non via Python. Voir Impératifs de sécurité concernant l’accès Python.