Closed ARainaud closed 6 months ago
Utilisez-vous la librairie sdk_entrepot_gpf ou une librairie standard pour faire des requêtes HTTP ? Le redirect pour l'authentification ne semble pas être correctement interprété. Au final, les requêtes API Entrepôt doivent être envoyées avec un token valide (récupéré sur le SSO géoplateforme). C'est sur ce workflow d'authentification que l'utilisation de la librairie dédiée peut faciliter les choses.
J'utilise une librairie standard pour les requêtes HTTP : urllib.request. Je n'avais pas connaissance de la librairie sdk_entrepot_gdf. Je vais essayer et je vous fais un retour. Merci !
Les sites de documentation viennent d'être mis à jour. Le lien vers la documentation du SDK est désormais dans le menu du site des tutoriels : https://geoplateforme.github.io/sdk-entrepot/
Une recherche par étiquette a également été mise en place : https://geoplateforme.github.io/tutoriels/production/tags/
Merci pour ces éléments ! J'ai donc crée un fichier config.ini, cependant je ne suis pas sûr de comprendre quelle valeur mettre en face du "client_id". En effet, la définition "votre groupe d'appartenance" n'est pas très claire pour moi. J'ai testé différentes combinaisons en renseignant par exemple le nom de ma communauté, le nom technique de ma communauté, un _id de communauté se trouvant dans la réponse à https://data.geopf.fr/api/users/me sans succès.
Pouvez-vous m'indiquer ce qu'il faut renseigner pour ce 'client_id' et où est ce que je peux le trouver svp ?
Voici un exemple de section store_authentification
dans config.ini :
[store_authentification]
http_proxy=<si besoin>
https_proxy=<si besoin>
token_url=https://sso.geopf.fr/realms/geoplateforme/protocol/openid-connect/token
# Groupe d’appartenance
client_id=gpf-warehouse
client_secret=BK2G7Vvkn7UDc8cV7edbCnHdYminWVw2
# Votre login
login=<login>
# Votre mot de passe
password = <mdp>
# Si double authentification, mettre la clé ici, sans les espaces, sans quote autour
totp_key = SJWAJEVPMKQBXZ27WIQVT3RRT74VHBCD
Il faut qu'on améliore la documentation sur cette partie
Merci, ce "gpf-warehouse", où puis-je le trouver ? il n'est pas dans la réponse à https://data.geopf.fr/api/users/me
gpf-warehouse est le nom du client d'authentification (permettant à une application de demander un token au nom d'une utilisateur) utilisé entre autre par l'interface swagger ici : https://data.geopf.fr/api/swagger-ui/index.html .
Le problème ne venait pas du 'client_id' mais d'une vérification SSL probablement bloquée par le proxy sur mon réseau.
Vos questions
Tutoriel concerné
https://geoplateforme.github.io/tutoriels/vecteur/base/livraison/
Description
Lorsque je me connecte via mon navigateur web à l'url https://data.geopf.fr/api/users/me j'obtiens bien les information sur mon compte au format JSON avec, entre autre, un id pour le datastore qui m'a été assigné.
Cependant, lorsque j'utilise l'API avec python en suivant le tutoriel ci-dessus, notamment la requête POST /datastores/{datastore}/uploads avec mon id de datastore et ce corps de requête { "description": "Températures (K) en France en Août 1950-2020", "name": "Températures Août France", "type": "VECTOR", "srs": "EPSG:4326" }
J'obtiens un code réponse 200 et une page html correspondant certainement à cette page : https://sso.geopf.fr/realms/geoplateforme/protocol/openid-connect/auth?client_id=gpf-apim&state=0ea5072ccc7ce8fae28f07f8801daced&nonce=092392a41f965730bf948d70d2cbb658&redirect_uri=https%3A%2F%2Fdata.geopf.fr%2Fapi%2Fusers%2Fme%2F&scope=openid&response_type=code
Status code: 200 Printing Entire Post Request <!DOCTYPE html>
Connectez-vous à votre compte