20.2. Processus d’authentification des utilisateurs¶
20.2.1. Authentification HTTP(S)¶
L’une des plus communes connexions à des ressources en ligne se fait via HTTP(S), par exemple pour des serveurs cartographiques web, et les extensions de méthode d’authentification fonctionnent souvent pour ces types de connexions. Ces extensions ont accès à la requête HTTP et peuvent manipuler aussi bien la requête que ses en-têtes. Cela permet de disposer d’un grand nombre de méthodes d’authentification sur Internet. Lorsque la connexion se fait via HTTP(S) en utilisant la méthode standard d’authentification avec nom utilisateur/mot de passe, la méthode d’authentification lancera d’abord une authentification HTTP BASIC lors de la première connexion.
20.2.2. Authentification de la base de données¶
Les connexions aux ressources des bases de données sont généralement stockées comme paires clé=valeur
; elles exposeront les noms d’utilisateur et (optionnellement) les mots de passe, si une configuration d’authentification n’est pas utilisée. Lors de la configuration avec le nouveau système d’authentification, la clé=valeur
sera une représentation abstraite des identifiants, par ex. authfg=81t21b9
.
20.2.3. Authentification PKI¶
Lors de la configuration des composants PKI dans le système d’authentification, vous pouvez soit importer les composants dans la base de données, soit référencer les fichiers des composants stockés sur votre système de fichiers. Cette dernière option peut être utile si les composants changent fréquemment ou s’ils seront remplacés par l’administrateur système. Dans tous les cas vous devrez sauver toute phrase clé nécessaire pour l’accès aux clés privées dans la base de données.
Tous les composants PKI peuvent être gérés par des éditeurs séparés dans le Gestionnaire de Certificats qui peut être ouvert dans l’onglet Authentification de la fenêtre Options de QGIS ( ) en cliquant sur le bouton Gestion des certificats.
Dans le Gestionnaire de certificats, il y a des éditeurs pour les Identités, Serveurs et Autorités. Chacun se trouve dans son propre onglet, et sont décrits ci-dessous dans l’ordre dans lequel ils apparaissent dans le tableau de processus précédent. L’ordre des onglets est relatif aux éditeurs les plus utilisés une fois que vous êtes habitué au processus.
Note
Parce que toutes les modifications du système d’authentification sont immédiatement écrites dans la base de données, il n’est pas nécessaire de cliquer sur le bouton OK de la fenêtre Options pour qu’une modification soit sauvée. C’est différent des autres paramètres du dialogue Options.
20.2.3.1. Autorités de certification¶
Vous pouvez gérer les Autorités de Certificats (AC) disponibles à partir de l’onglet Autorités du Gestionnaire de certificats à partir de l’onglet Authentification du dialogue Options de QGIS.
Comme référencé dans le tableau de processus ci-dessus, la première étape est d’importer ou de référencer le fichiers d’AC. Cette étape est optionnelle, est peut être inutile si votre chaîne de confiance PKI est originaire d’AC racine déjà installés dans votre système d’exploitation (SE), tel qu’un certificat d’un vendeur commercial de certificats. Si votre AC racine d’authentification n’est pas dans les AC racine reconnus par le SE, il devra être importé ou avoir le chemin à son système de fichier référencé. (Contactez votre administrateur système en cas de doute).
Par défaut, l’AC racine de votre OS sera disponible; néanmoins leurs paramètres de confiance ne seront pas récupérés. Vous devriez revoir les paramètres de politique de confiance du certificat, spécialement si vos AC racines d’OS ont eu leur politique modifiée. Tout certificat expiré ne sera pas un certificat de confiance et il ne sera pas utilisé pour les connexions vers des serveurs sécurisés, à moins que vous forciez sa politique de confiance. Pour consulter la chaîne de confiance de QGIS pour un certificat, sélectionnez-le et cliquez sur Afficher les informations du certificat.
Vous pouvez modifier la politique de confiance de n’importe quel certificat de la chaîne. Toute modification dans la chaîne de confiance d’un certificat sélectionné ne sera pas enregistré dans la base de données d’authentification tant que le bouton Enregistrer le changement de politique de confiance dans la base de données n’aura pas été cliqué. Fermer la boîte de dialogue n’appliquera pas les changements de politique.
Vous pouvez analyser les AC filtrées, les certificats racine et intermédiaires qui seront reconnus de confiance pour les connexions sécurisées ou modifier la politique de confiance par défaut en cliquant sur le bouton Options.
Avertissement
Modifier la politique de confiance par défaut peut engendrer des problèmes pour les connexions sécurisées.
Vous pouvez importer des AC ou sauvegarder un chemin du système de fichier vers un fichier contenant plusieurs AC ou importer chaque AC individuellement. Le format PEM standard pour les fichiers contenant plusieurs chaîne de certification d’AC a le certificat racine à la fin du fichier et tous les certificats enfants signés, au dessus, en remontant vers le début du fichier.
La boîte de dialogue d’import de certificat d’AC trouvera tous les certificats d’AC au sein du fichier, sans importance d’ordre et offre également l’option d’importer des certificats considérés comme invalides (dans le cas où vous souhaiteriez forcer leur politique de confiance). Vous pouvez modifier la politique de confiance lors de l’import ou le faire plus tard à l’aide de l’éditeur des Autorités.
Note
Si vous copiez les informations d’un certificat dans le champ Texte PEM, veuillez noter que les certificats chiffrés ne sont pas gérés.
20.2.3.2. Identités¶
Vous pouvez gérer les paquets d’identité client depuis l’onglet Identités du Gestionnaire de certificat à partir de l’onglet Authentification de la boîte de dialogue des Options de QGIS. Une identité est ce qui vous authentifie auprès d’un service basé sur une IGC et consiste généralement en un certificat client et une clef privée, soit sous forme de fichiers séparés, soit dans un seul fichier « empaqueté ». Le paquet ou la clef privée sont souvent protégés par une phrase de passe.
Une fois que vous avez importé n’importe quelle Autorité de Certification (AC), vous pouvez importer n’importe quel paquet d’identité dans la base de données d’authentification. Si vous ne voulez pas enregistrer les identités, vous pouvez référencer les chemins chemins de fichiers de leur composants au sein d’une configuration d’authentification individuelle.
Lorsque vous importez un paquet d’identité, il peut être protégé par une phrase de passe ou non protégé ou contenir des certificats d’AC, formant ainsi une chaîne de confiance. Les chaînes de confiance ne seront pas importées ici; elles peuvent être ajoutées séparément dans l’onglet Autorités
Une fois l’import réalisé, le certificat et la clef privée du paquet seront enregistrés dans la base de données chiffrée à l’aide du mot de passe principal de QGIS. Les futurs utilisations du paquet enregistré depuis la base de données nécésiteront alors uniquement l’entrée du mot de passe principal.
Les paquets d’identité personnelle gérés sont les formats PEM/DER (.pem/.der) et PKCS#12 (.p12/.pfx). Si une clef ou un paquet est protégé par une passe de phrase, ce mot de passe est requis pour valider le composant avant l’import. De même, si le certificat client du paquet est invalide (par exemple, sa date d’entrée en vigueur n’a pas encore démaré ou le certificat est périmé), le paquet ne pourra pas être importé.
20.2.4. Reprise des mauvaises couches¶
Occasionnellement, l’ID de configuration d’authentification qui est sauvegardée dans un projet peut ne plus être valide, essentiellement parce que la base de données d’authentification est différente par rapport au moment où le projet a été enregistré ou à cause de problème d’identifiants. Dans de tels cas, la boîte de dialogue Reprise des mauvaises couches sera affichée lors du lancement de QGIS.
Si une source de données n’a pas d’ID de configuration d’authentification associée, vous pourrez l’éditer. Cela permettra de mettre à jour automatiquement la chaîne de source de données, un peu comme ouvrir le fichier de projet dans un éditeur de texte et de mettre à jour la chaîne de caractères correspondante.
20.2.5. Modification de l’ID de configuration d’authentification¶
Parfois, vous devrez modifier l’ID de configuration d’authentification associée à l’accès d’une ressource. Cela peut être utile dans certains cas :
L’ID de configuration d’authentification de la ressource n’est plus valide : Cela peut survenir lorsque vous avez échangé des bases de données d’authentification et que vous devez aligner la nouvelle configuration à l’ID déjà associée avec une ressource.
Fichiers de projet partagés : Si vous avez l’intention de partager des fichiers de projet entre plusieurs utilisateurs, par exemple via un serveur de fichiers partagés, vous pouvez prédéfinir une chaîne de 7 caractères (contenant a-z et/ou 0-9), associée à la ressource. Ainsi, les utilisateurs pourront modifier l’ID de configuration d’authentification spécifique à leurs identifiants d’accès à la ressource. Lorsque le projet est ouvert, l’ID est trouvée dans la base de données d’authentification mais les identifiants sont différents pour chaque utilisateur.
Avertissement
Modifier l’ID de configuration d’authentification est une opération avancée et ne doit être employée qu’en pleine connaissance de sa nécessité. C’est pourquoi il y a un bouton de cadenas qui doit être cliqué pour déverrouiller le champ de texte de l’ID avant de pouvoir la modifier.
20.2.6. Support Serveur QGIS¶
Lorsque vous utilisez un fichier de projet avec des couches disposant de configurations d’authentification, dans une carte servie par QGIS Server, il faut ajouter certaines étapes supplémentaires pour que QGIS puisse charger ces ressources:
La base de données d’authentification doit être disponible.
Le mot de passe principal de la base de données d’authentification doit être disponible.
Lors du lancement du système d’authentification, le serveur créera ou utilisera le fichier qgis-auth.db
situé dans le répertoire ~/.qgis2/
ou dans le répertoire défini par la variable d’environnement QGIS_AUTH_DB_DIR_PATH
. Dans le cas où le compte utilisateur utilisé par le serveur ne dispose pas d’un répertoire HOME, utilisez la variable d’environnement pour indiquer un répertoire accessible en lecture/écriture au compte utilisateur du serveur qui ne soit pas situé dans les répertoires accessibles par le web.
Pour indiquer un mot de passe principal au serveur, écrivez-le dans la première ligne d’un fichier lisible par les processus du compte utilisateur du serveur et utilisez le chemin vers ce fichier dans la variable d’environnement QGIS_AUTH_PASSWORD_FILE
. Assurez-vous que ce fichier soit accessible uniquement en lecture par le compte utilisateur du serveur et qu’il ne soit pas situé au sein des répertoires accessibles par le web.
Note
La variable QGIS_AUTH_PASSWORD_FILE
sera effacée de l’environnement du serveur tout de suite après avoir été utilisée
20.2.7. Exceptions du serveur SSL¶
Vous pouvez gérer les configurations et exceptions du serveur SSL à partir de l’onglet Serveurs dans la section Authentification de la boîte de dialogue Options de QGIS.
Quelque fois, lors de la connexion à un serveur SSL, des erreurs de « handshake » ou de certificat du serveur se produisent. Vous pouvez ignorer ces erreurs ou créer une exception dans la configuration de serveur SSL. C’est similaire au comportement des navigateurs internet qui vous permettent d’ignorer les erreurs SSL, mais avec plus de contrôle granulaire.
Avertissement
Vous ne devriez pas créer une configuration de serveur SSL à moins que vous ayez une parfaite connaissance de l’ensemble de la configuration SSL entre serveur et client. Vous devriez plutôt signaler le problème au gestionnaire du serveur.
Note
Certaines configurations PKI utilisent une chaîne de confiance AC totalement différente pour valider l’identité des clients que la chaîne utilisée pour valider le certificat du serveur SSL. Dans de tels cas, toute configuration créée pour la connexion au serveur ne résoudra pas nécessairement le problème de validation de votre identité client, et ce n’est que l’émetteur de votre identité client ou le gestionnaire du serveur qui puisse résoudre ce problème.
Vous pouvez pré-configurer la configuration d’un serveur SSL en cliquant sur le bouton . Ou, vous pouvez ajouter une configuration lorsqu’une erreur SSL se produit durant la connexion et que le dialogue Erreur SSL apparaît (lorsque l’erreur peut être temporairement ignorée ou alors sauvegardé dans la base de données et ignorée) :
Une fois qu’une configuration SSL est enregistrée dans la base de données, elle peut être éditée ou effacée.
Si vous voulez pré-configurer une configuration SSL et que le dialogue d’import ne fonctionne pas avec la connexion à votre serveur, vous pouvez activer manuellement une connexion dans la Console Python en utilisant le code suivant (remplacer https://bugreports.qt-project.org
par l’URL de votre serveur) :
from qgis.PyQt.QtNetwork import QNetworkRequest
from qgis.PyQt.QtCore import QUrl
from qgis.core import QgsNetworkAccessManager
req = QNetworkRequest(QUrl('https://bugreports.qt-project.org'))
reply = QgsNetworkAccessManager.instance().get(req)
Cela ouvrira un dialogue d’erreur SSL si une erreur survient, où vous pourrez choisir de sauver la configuration dans la base de données.