banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 21 February 2024 10:26

EMI_BDD
Juste Inscrit !
Date d'inscription: 12 Sep 2022
Messages: 7

QGIS 3.22: Authentification QGIS et base Postgres/Postgis

Bonjour,
je rencontre un problème relatif à l'authentification d'un projet dont les données sont stockées dans Postgres.

de manière générale mes données sont stockées dans une base de données Postgres. Mes utilisateurs ont accès à la base en lecture avec un profil utilisateur individuel (connecté à l'Active Directory de la structure) liés à un groupe lecteur.

j'ai déployé des projets avec mon profil Postgres dans lequel j'ai déployé des données issues de ma base Postgres. Dans le fichier .qgs du projet, mes identifiants et mot de passes sont inscrits en clair (je sais c'est très mauvais d'un point de vue sécu). Mes utilisateurs ont bien les droits de lecture sur ces données et peuvent afficher les données.

Mon souci se situe à deux niveaux.
Premièrement, à l'ouverture du projet, la fenêtre d'authentification s'ouvre avec mes paramètres de connexion. l'utilisateur est obligé de réécrire les siens. Y aurait il un moyen via la gestion des authentifications ou les paramètres du projet de faire en sorte que l'interface de connexion n'affiche rien ou affiche par défaut les paramètres de connexion de l'utilisateur? Voire, soyons fou, existe-t-il un moyen d'enregistrer les paramètres afin que l'utilisateur se connecte sans interaction ?

Deuxièmement, lors du lancement du projet, la fenêtre authentification s'ouvrent au moins 3 fois imposant à l'utilisateur de réécrire ses paramètres autant de fois. quelqu'un a t il une idée sur la source de cette demande multiple d'authentification ? Je précise que les données proviennent toutes d'une seule base de données. précision numéro deux le module cadastre est appelé dans le projet pour afficher les données cadastrales.

Merci par avance pour vos retours et vos idées.
Bonne journée a tous.

Hors ligne

 

#2 Fri 23 February 2024 08:55

LPlante
Participant occasionnel
Date d'inscription: 17 Nov 2021
Messages: 44

Re: QGIS 3.22: Authentification QGIS et base Postgres/Postgis

Bonjour,

Expérience personnelle qui ressemble à ta situation:

Sur QGIS, dans l’édition de connexion Postgis, tu as enregistré/stocké les identifiants et code de chaque utilisateur dans l'onglet "De base"  ou tu les as converti en Configuration?

Dans le cas de la configuration, celle ci fait référence à un ID ( Visible depuis le crayon jaune "modifier la configuration")
Ce même ID d'authentification est utilisé pour l'ouverture des couches, tu le retrouve dans les Propriétés/Général/Sources de ta couche.

Sur l'ordinateur de tes utilisateurs, j'imagine que tu as également fait une connexion Postgis avec leurs codes personnels mais tu remarqueras que l'ID de configuration d’authentification n'est pas le même et ne correspond pas l'ID dans la source de ta couche... D'où l'ouverture fenêtre authentification

Premièrement: modifie et uniformise l'ID de configuration d’authentification ( avec le verrou) de tes utilisateurs par celui de TON projet QGis
Secondo: Reintègre toutes tes couches du projet pour qu'elles ai le même ID d'authentification dans sa source. ( Cause de la fenêtre authentification qui s'ouvrent  3 fois)

Hors ligne

 

#3 Mon 26 February 2024 17:12

Michael ALLAIN
Participant occasionnel
Lieu: Mont-de-Marsan (40)
Date d'inscription: 31 Oct 2016
Messages: 22

Re: QGIS 3.22: Authentification QGIS et base Postgres/Postgis

La solution de LPlante est la même que celle que j'utilise.

Aussi, pour éviter de devoir reimporter toutes les couches du projet (et de refaire les styles ou thèmes par exemple), il est possible d'assigner le nouvel ID unique à toutes les couches.
En enregistrant le projet en format .qgs et en l'ouvrant sur notepad++, il faut remettre cet ID dans chaque requête de table entre les valeurs de sslmode et key :

<Layer provider="postgres" name="***" source="dbname='***' host=*** port=*** sslmode=disable authcfg=nouvelID key='***' srid=2154 type=MultiLineString

Puis il faut rouvrir le projet et le réenregistrer en .qgz si nécessaire.

Hors ligne

 

Pied de page des forums

Powered by FluxBB