IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IGN API Géoportail Discussion :

Méthode de sécurisation et erreur 403


Sujet :

IGN API Géoportail

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Méthode de sécurisation et erreur 403
    Bonjour à tous,

    J'essaie d'utiliser les geoservices via un programme C#, en utilisant le mode de sécurisation par user-agent.
    Pour l'exemple ci-dessous, j'ai bien sûr remplacé ma clé de géoservices par un mot bidon ("mykey").

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    try
    {                                                            
    	HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("https://wxs.ign.fr/mykey/geoportail/r/wms?LAYERS=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&STYLES=&CRS=EPSG:2154&BBOX=1195600,6082800,1201600,6086448&WIDTH=1250&HEIGHT=760");                
    
    	((HttpWebRequest)httpRequest).UserAgent = "myua";
    
    	HttpWebResponse response = (HttpWebResponse)httpRequest.GetResponse();
    
    	if (response.StatusCode == HttpStatusCode.OK)
    	{
    		Stream responseStream = response.GetResponseStream();
    	}
    	else
    	{
    		MessageBox.Show("Une erreur s'est produite pendant l'exécution de la requête:\n" + response.StatusCode.ToString());
    	}
    }
    catch (System.Exception ex)
    {
    	MessageBox.Show("Une erreur s'est produite:\n" + ex.Message);
    }
    Ce code me renvoie une exception "(403) interdit", vraisemblablement car le user-agent n'est pas reconnu ou pas transmis (alors que je l'ai pourtant bien défini via l'interface de gestion sur http://professionnels.ign.fr). La ressource à laquelle j'essaie d'accéder (GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD) est bien cochée dans la liste des ressources associées à ma clé de services.
    Le résultat est le même en essayant avec la méthode par referer et le code approprié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((HttpWebRequest)httpRequest).Referer = "myreferer";
    Une idée?

  2. #2
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 632
    Points
    632
    Billets dans le blog
    2
    Par défaut
    Bonjour,
    Je n'ai pas l'impression que votre code ajoute le user-agent au header de la requête.
    A priori il faudrait revoir cela notamment au travers de l'exemple disponible à cette page :
    https://msdn.microsoft.com/en-us/lib...webclient.aspx

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Merci pour votre réponse.

    A la place d'un objet WebClient, j'utilise un objet HttpWebRequest, pour lequel la valeur user-agent est protégée et ne peut pas être définie via le membre Headers. Elle doit être définie par un membre spécifique, et c'est l'objet de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((HttpWebRequest)httpRequest).UserAgent = "myua";
    dans le programme.

    Cela dit, j'ai effectué un test en passant par un WebClient, en reprenant l'exemple de la documentation Microsoft que vous m'avez indiquée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    WebClient client = new WebClient();
    client.Headers.Add("user-agent", "myua");
    Stream data = client.OpenRead("https://wxs.ign.fr/mykey/geoportail/r/wms?LAYERS=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD&EXCEPTIONS=text/xml&FORMAT=image/jpeg&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&STYLES=&CRS=EPSG:2154&BBOX=1195600,6082800,1201600,6086448&WIDTH=300&HEIGHT=300");
    StreamReader reader = new StreamReader(data);
    string s = reader.ReadToEnd();
    data.Close();
    reader.Close();
    Le résultat est le même, une exception "403 (interdit)".

    J'ai ensuite essayé une chose toute bête à laquelle je n'avais pas pensé: exécuter ma requête directement dans mon navigateur, en l'occurrence Firefox, en overridant sa valeur user-agent (et en m'assurant que cette modification du user-agent était prise en compte).

    Même punition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <ExceptionReport>
      <Exception exceptionCode="MissingRights">
        Wrong referer or wrong IP Adress or wrong User-Agent
      </Exception>
    </ExceptionReport>
    Que se passe t-il?

  4. #4
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 632
    Points
    632
    Billets dans le blog
    2
    Par défaut
    Envoyez votre demande avec clé auprès de contact.geoservices@ign.fr
    On verra dans les logs de la veille le contenu des requêtes.

    [Rectificatif] Vu les logs de la veille, je pense en fait que votre clé est périmée, etce, depuis quelques semaines... A renouveler donc sur professionnels.ign.fr

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Ok merci, je vais envoyer ma demande, mais juste par curiosité, comment ma clé, commandée et validée le 13 juillet dernier, avec une date d'expiration au 04/07/2020, pourrait-elle être périmée?

  6. #6
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 632
    Points
    632
    Billets dans le blog
    2
    Par défaut
    Donc ce n'était pas vous. J'ai loupé le bon log

    Citation Envoyé par SgtLame Voir le message
    Ok merci, je vais envoyer ma demande, mais juste par curiosité, comment ma clé, commandée et validée le 13 juillet dernier, avec une date d'expiration au 04/07/2020, pourrait-elle être périmée?
    Une fois que la clé sera reçue, il vous sera confirmé ce qu'il en est

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Avant d'envoyer un message au support, j'ai commandé une nouvelle clé pour voir... Et ça fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier la sécurisation en login/mot de passe - erreur 403, serveur WMS - MapInfo
    Par LiLuCe dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 27/11/2017, 14h59
  2. erreur 403 serveur
    Par ghita269 dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 15h07
  3. htaccess - erreur 403 - protéger un dossier image
    Par lepierre dans le forum Apache
    Réponses: 2
    Dernier message: 30/06/2006, 13h59
  4. Réponses: 5
    Dernier message: 23/06/2006, 14h22
  5. Erreur 403 Forbidden
    Par cybernetique dans le forum Apache
    Réponses: 7
    Dernier message: 13/04/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo