Cette page documente le mode d'utilisation des clés sur les services Web de l'API du Géoportail. Elle s'adresse aux développeurs souhaitant interroger directement le service WMS-C dans une application client tierce non fournie par l'IGN. Pour illustration, la gestion des droits d'accès aux données est faite dans le fichier Geoportal/GeoRMHandler.js du client javascript fournit.
Chaque requête aux serveurs est accompagnée d'un jeton permettant l'accès aux données. Le jeton obtenu et mis à jour auprès d'un serveur de jetons code les droits d'accès aux données et identifie une session d'utilisation.
Un jeton est un paramètre d'accès éphémère associé à une clé API, il est assimilable à une session d'utilisation de l'API. Il contient les droits d'accès du contrat API associé et doit être ajouté à toutes les requêtes API. Le système de jetons permet d'obtenir des statistiques de consommation et de répartir équitablement des ressources serveurs disponibles aux utilisateurs de l'API. Un jeton est une chaîne de caractères qu'il faut passer dans un paramètre url (actuellement gppkey) à chaque requête aux services de l'API.
Le serveur de jeton de l'API du Géoportail est jeton-api.ign.fr. Il expose des service permettant de créer, mettre à jour, libérer ou obtenir une session API
Ce service permet de délivrer ou de mettre à jour un jeton.
Exemple: http://jeton-api.ign.fr/getToken?key=CLEF&output=xml
<token name="gppkey"> gC2UZGUr_JJi5Nm7QKN5hQG06pEAAAAAAAHWLRe_BD6d4QTVAAABHiB QmEAAAAAAAlgAAQECvZr3ME_66sRrEAaAwzQAAEM0AADCtAAAQrQAAA </token>
Exemple: http://jeton-api.ign.fr/getToken?key=CLEF&output=json
{
"gppkey":"gC2UZGUr_JJi5Nm7QKN5hQG06pEAAAAAAAHWLRe_BD6d4QTVAAA
BHiBQmEAAAAAAAlgAAQECvZr3ME_66sRrEAaAwzQAAEM0AADCtAAAQrQAAA"
}
Exemple: http://jeton-api.ign.fr/getToken?key=CLEF&output=json&callback=myfunc
myfunc({
"gppkey":"gC2UZGUr_JJi5Nm7QKN5hQG06pEAAAAAAAHWLRe_BD6d4QTVAAA
BHiBQmEAAAAAAAlgAAQECvZr3ME_66sRrEAaAwzQAAEM0AADCtAAAQrQAAA"
});
Exemple: http://jeton-api.ign.fr/getToken?key=CLEF&output=raw
gC2UZGUr_JJi5Nm7QKN5hQG06pEAAAAAAAHWLRe_BD6d4QTVAAABHiB QmEAAAAAAAlgAAQECvZr3ME_66sRrEAaAwzQAAEM0AADCtAAAQrQAAA
Exemple: http://jeton-api.ign.fr/getToken?key=CLEF&gppkey=gC2UZ...AAA&output=xml (mise à jour)
<token name="gppkey"> 37mZE3sL-EuU5GAvG2NFwXZaRLgAAAAAAJG_bR0eku1hUp-bAAABK OBRtx4AAAAAAlgAAQEBzIOB9cN7vYDDNAAAQzQAAMK0AABCtAAA </token>
Libère une session API, le jeton ainsi libéré ne doit plus être utilisé. Bien que supportée, cette opération ne fait rien à la data d'écriture de cette documentation.
Exemple: http://jeton-api.ign.fr/releaseToken?gppkey=gC...AA
Ce service fournit au format xml et json les information suivantes :
Exemple: http://jeton-api.ign.fr/getConfig?key=CLEF&output=xml
<config>
<tokenTimeOut>temps en secondes</tokenTimeOut>
<boundingBox minx="longitude ouest"
miny="latitude sud"
maxx="longitude est"
maxy="latitude nord"/>
<resources>
<resource>
<name>couche</name>
<type>WMSC, WMS, WFS, ...</type>
<url>Url du service</url>
</resource>
...
</resources>
</config>
Exemple: http://jeton-api.ign.fr/getConfig?key=CLEF&output=json
{
"tokenTimeOut":temps en secondes,
"boundingBox":{
"minx":longitude ouest,
"miny":latitude sud,
"maxx":longitude est,
"maxy":latitude nord
},
"resources":[
{
"name":"couche",
"type":"WMSC, WMS, WFS, ...",
"url":"Url du service"
},
...
]}
Toute requête HTTP à un service API protégé par GeoDRM doit contenir en paramètre un jeton valide, sous forme d'un en-tête HTTP, d'un paramètre url ou d'un cookie (l'url prime sur le cookie qui prime sur l'en-tête en cas de présence de plusieurs des formes du jeton). La requête est filtrée en fonction des droits d'accès du jeton utilisé.
Un jeton contient les droits d'accès d'un contrat, à savoir des ressources (service, couches), une emprise géographique (optionnel), une plage d'IP d'où doit provenir la requête (optionnel) et une liste de REFERER (optionnel) indiquant les sites Web autorisés.
En cas d'erreur, une erreur HTTP 403 est retournée.