22.1. Aperçu du Système d’authentification
![../../../_images/auth-system-overview.png](../../../_images/auth-system-overview.png)
Fig. 22.1 Anatomie du Système d’authentification
22.1.1. Base de données d’authentification
Le nouveau système d’authentification stocke les configurations d’authentification dans une base de données SQLite située, par défaut, sous <profile directory>/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
.
22.1.2. Mot de passe principal
Pour stocker ou accéder à des informations sensibles dans la base de données, un utilisateur doit définir un « mot de passe maître ». Un nouveau mot de passe maître est demandé et vérifié lors du stockage initial de toute donnée cryptée dans la base de données. Lorsque l’utilisateur accède à des informations sensibles, il est invité à saisir le mot de passe principal. Le mot de passe est alors mis en cache pour le reste de la session (jusqu’à ce que l’application soit fermée), à moins que l’utilisateur ne choisisse manuellement une action pour effacer sa valeur en cache. Certains cas d’utilisation du système d’authentification ne nécessitent pas la saisie du mot de passe maître, comme lors de la sélection d’une configuration d’authentification existante, ou de l’application d’une configuration à une configuration de serveur (comme lors de l’ajout d’une couche WMS).
Vous pouvez choisir de sauvegarder le mot de passe dans le Portefeuille/Porte-clé
de votre ordinateur.
![../../../_images/auth-password-new_enter.png](../../../_images/auth-password-new_enter.png)
Fig. 22.2 Entrer un nouveau mot de passe principal
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
.
22.1.2.1. 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.
![../../../_images/auth-password-reset.png](../../../_images/auth-password-reset.png)
Fig. 22.3 Réinitialiser le mot de passe principal
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.
![../../../_images/auth-password-invalid-3times.png](../../../_images/auth-password-invalid-3times.png)
Fig. 22.4 Demande de mot de passe après trois tentatives invalides
22.1.3. Configuration de l’authentification
Les configurations d’authentification peuvent être gérées dans Configurations de l’onglet Authentification du dialogue Options de QGIS ( ).
![../../../_images/auth-editor-configs2.png](../../../_images/auth-editor-configs2.png)
Fig. 22.5 Editeur de configuration
Utilisez le bouton pour ajouter une nouvelle configuration, le bouton
pour supprimer des configurations, et le bouton
pour modifier des configurations existantes.
![../../../_images/auth-config-create_authcfg-id.png](../../../_images/auth-config-create_authcfg-id.png)
Fig. 22.6 Ajouter une configuration avec l’éditeur de configuration
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.
![../../../_images/auth-selector-wms-connection.png](../../../_images/auth-selector-wms-connection.png)
Fig. 22.7 Fenêtre de connexion WMS avec les boutons de configuration de l’authentification Ajouter, Editer, et Supprimer
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 information requise par la méthode ( pour d’avantage d’information sur les types d’authentification supportés, voir Méthodes d’authentification).
22.1.4. 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 par ex. HTTP(S) ou à la base de données par le provider, s’il y a un support dans le code QGIS ou 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 / providers compatibles, en allant dans Authentification, cliquez sur le bouton extensions installées.
![../../../_images/auth-method-listing.png](../../../_images/auth-method-listing.png)
Fig. 22.8 Extensions d’authentification disponibles
Des plugins peuvent être créés pour les nouvelles méthodes d’authentification qui ne nécessitent pas la recompilation de QGIS. Étant donné que le support des plugins est actuellement limité au C++, QGIS devra être redémarré pour que le nouveau plugin déposé soit disponible pour l’utilisateur. Assurez-vous que votre plugin est compilé avec la même version cible de QGIS si vous avez l’intention de l’ajouter à une installation cible existante
![../../../_images/auth-config-create_basic-auth.png](../../../_images/auth-config-create_basic-auth.png)
Fig. 22.9 Configuration Authentification basique HTTP
![../../../_images/auth-config-create_esritoken.png](../../../_images/auth-config-create_esritoken.png)
Fig. 22.10 Configuration Authentification ESRI Token
![../../../_images/auth-config-create_oauth2.png](../../../_images/auth-config-create_oauth2.png)
Fig. 22.11 Configuration Authentification OAuth2
![../../../_images/auth-config-create_pem-der-paths.png](../../../_images/auth-config-create_pem-der-paths.png)
Fig. 22.12 Configuration Authentification par chemin PKI
![../../../_images/auth-config-create_pkcs12-paths.png](../../../_images/auth-config-create_pkcs12-paths.png)
Fig. 22.13 Configuration Authentification PKI PKCS#12
![../../../_images/auth-config-create_stored-identity2.png](../../../_images/auth-config-create_stored-identity2.png)
Fig. 22.14 Configuration Certificat d’identité stocké
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.
22.1.5. 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’onglet![../../../_images/auth-editor-configs_utilities-menu.png](../../../_images/auth-editor-configs_utilities-menu.png)
Fig. 22.15 Menu du bouton Utilitaires
Entrer le mot de passe principal : ouvre le dialogue d’entrée du mot de passe principal, indépendamment de l’exécution de toute commande d’authentification de la base de données
Effacer le mot de passe principal en cache : efface le mot de passe principal s’il a été défini
Réinitialisation du mot de passe principal : ouvre une boîte de dialogue pour modifier le mot de passe principal (le mot de passe actuel doit être connu) et éventuellement sauvegarde la base de données actuelle
Effacer le cache d’accès à l’authentification du réseau : efface le cache d’authentification de toutes les connexions
Effacer automatiquement le cache d’accès à l’authentification réseau sur les erreurs SSL : le cache de connexion stocke toutes les données d’authentification pour les connexions, même en cas d’échec de la connexion. Si vous modifiez les configurations d’authentification ou les autorités de certification, vous devez vider le cache d’authentification ou redémarrer QGIS. Lorsque cette option est cochée, le cache d’authentification sera automatiquement effacé chaque fois qu’une erreur SSL se produit et que vous choisissez d’interrompre la connexion
Intégrer le mot de passe principal dans votre portefeuille / porteclé : ajoute le mot de passe maître à votre porte-monnaie/porteclé personnel
Enregistrer/mettre à jour le mot de passe principal dans votre porte-monnaie/porteclé : met à jour le mot de passe principal modifié dans votre porte-monnaie/porteclé
Effacer le mot de passe principal de votre porte-monnaie/porteclé : efface le mot de passe principal de votre porte-monnaie/porteclé
Activer le journal de débogage de l’assistant du mot de passe : active un outil de débogage qui contiendra toutes les informations de log des méthodes d’authentification
Effacer les configurations d’authentification mises en cache : permet de vider le cache de consultation interne des configurations, utilisé pour accélérer les connexions réseau. Cela n’efface pas le cache du gestionnaire d’accès au réseau central de QGIS, ce qui nécessite un nouveau lancement de QGIS.
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 : prévoit une sauvegarde de la base de données actuelle et une reconstruction complète de la structure des tables de la base de données. Les actions sont programmées pour une date ultérieure, afin de s’assurer que d’autres opérations, comme le chargement du projet, n’interrompent pas l’opération ou ne provoquent pas d’erreurs dues à une base de données temporairement manquante.
Fig. 22.16 Menu d’effacement de la base de données
22.1.6. 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 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 .
![../../../_images/auth-selector-no-authentication.png](../../../_images/auth-selector-no-authentication.png)
Fig. 22.17 Sélecteur de configuration d’authentification sans configuration
![../../../_images/auth-selector-pkcs12-authentication.png](../../../_images/auth-selector-pkcs12-authentication.png)
Fig. 22.18 Sélecteur de configuration d’authentification avec une configuration sélectionnée
22.1.7. 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.