GUIDE D UTILISATION AUTHENTIFICATION OAUTH

Documents pareils
Oauth : un protocole d'autorisation qui authentifie?

Protocoles Applicatifs

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

«Cachez-moi cette page!»

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

API ONE-TIME PASSWORD

1 Identités pour l enregistrement IMS

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

L3 informatique TP n o 2 : Les applications réseau

Serveurs de noms Protocoles HTTP et FTP

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Introduction à HTTP. Chapitre HTTP 0.9

Paris Airports - Web API Airports Path finding

1 Introduction Propos du document Introduction De HTTP 1.0 à HTTP

Proxies,, Caches & CDNs

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Java et les bases de données

Programmation Internet Cours 4

Présentation SafeNet Authentication Service (SAS) Octobre 2013

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Sécurité des Web Services (SOAP vs REST)

Réseaux. 1 Généralités. E. Jeandel

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

4. SERVICES WEB REST 46

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Module BD et sites WEB

Etude et développement d un moteur de recherche

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Module pour la solution e-commerce Magento

WEB SSO & IDENTITY MANAGEMENT PARIS 2013

Introduction à Sign&go Guide d architecture

Développement Web. Les protocoles

(structure des entêtes)

SharePoint 2013 Développez en.net pour personnaliser SharePoint (Apps, REST, CSOM et Azure)

EXPOSE. La SuisseID, qu est ce que c est? Secrétariat d Etat à l Economie SECO Pierre Hemmer, Chef du développement egovernment

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

Pack Fifty+ Normes Techniques 2013

Extended communication server 4.1 : VoIP SIP service- Administration

Développement logiciel pour le Cloud (TLC)

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Introduction. aux architectures web. de Single Sign-On

LES ACCES ODBC AVEC LE SYSTEME SAS

INF8007 Langages de script

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Protection des protocoles

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

RCS : Rich Communication Suite. EFORT

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Les technologies de gestion de l identité

Anatomie d'un cloud IaaS Représentation simplifiée

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

Drupal un CMS orienté mé2er. Romain JARRAUD Mathieu GROS

Architectures Web Services RESTful

Cartographie et audit du réseau GSM avec des outils Open Source

Guide d implémentation. Réussir l intégration de Systempay

Gestion des identités Christian-Pierre Belin

18 TCP Les protocoles de domaines d applications

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Internet. Web Sécurité Optimisation

Evolution des SI à l heure du Cloud

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

La VOIP :Les protocoles H.323 et SIP

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

SYSTÈMES D INFORMATIONS

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Manuel d intégration API SOAP SMS ALLMYSMS.COM

EXEMPLES DE PROCEDURE POUR METTRE A JOUR LES CERTIFICATS BANQUE _

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

HSCS 6.4 : mieux appréhender la gestion du stockage en environnement VMware et service de fichiers HNAS Laurent Bartoletti Product Marketing Manager


Web Tier : déploiement de servlets

Le serveur web Windows Home Server 2011

INTRODUCTION AU CMS MODX

Tour d horizon des différents SSO disponibles

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Acronymes et abréviations. Acronymes / Abbréviations. Signification

WebSSO, synchronisation et contrôle des accès via LDAP

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

Introduction aux Technologies de l Internet

Le Modèle de Sécurité dans JAVA

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

1. Formation F5 - Local Traffic Manager Configuring (LTM)

SERVEUR DÉDIÉ DOCUMENTATION

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Fiche Technique Windows Azure

Guide utilisateur du prélèvement bancaire SEPA

La navigation sur le Web avec Internet Explorer 6 Première approche

Responsable du cours : Héla Hachicha. Année Universitaire :

Gestion Electronique de Document (ECM/GED)

Solutions d accès sécurisées pour opérer une Market Place Saas multitenante

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

Savoir- Faire Offres mé1ers Offres technologiques

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Transcription:

Guide d Utilisation API Speed Data de RTE Version 2.0 GUIDE D UTILISATION AUTHENTIFICATION OAUTH Version 2.0 Date d entrée en vigueur : 08 juilllet 2016 1

SOMMAIRE 1 INTRODUCTION 2 1.1 Documents de référence... 2 1.2 Définitions... 2 1.3 Assistance technique... 3 2 ACCES AUX API 4 2.1 Méthode d Autorisation... 4 2.1.1 Demande d access token au serveur d autorisation... 5 2.1.2 Réponse d access token du serveur d autorisation... 7 2.1.3 Invocation de la ressource :... 8 2.1.4 Erreurs possibles... 9 1 Introduction Ce document décrit Les modalités d authentification aux Api du Rte, via le protocole Oauth. 1.1 Documents de référence Référence courte Titre du document Référence complète [R1] CGU des API RTE Lien accès 1.2 Définitions Les termes utilisés dans le Guide d Utilisation et dont la première lettre est une majuscule sont définis ci-dessous ou, à défaut, dans les Conditions Générales d Utilisation [R1] : API Authentification URL Utilisateur(s) Web Service OAuth 2 Application Programming Interface (Interface de programmation applicative) Mode de Protection permettant de s assurer que l identité de l Émetteur ou du Récepteur a été vérifiée par RTE et qu il est donc autorisé à accéder au SI et à utiliser les Applications. Uniform Resource Locator : chaîne de caractères suivant un format spécifique permettant de localiser une ressource sur un réseau et d identifier un moyen d agir (protocole) sur cette ressource. Personne morale ayant validé les Conditions Générales d Utilisation des API de RTE et accédant au SI de RTE afin d utiliser les API mises à dispositions par RTE. Programme informatique permettant la communication entre systèmes hétérogènes dans des environnements distribués OAuth 2.0 (Open Authorization) est un framework de délégation d autorisation qui permet à une application d obtenir un jeton d accès à des données hébergées par un tiers. 2

1.3 Assistance technique En cas de difficulté pour l accès ou l utilisation d une API, l Utilisateur peut faire appel aux services d assistance téléphonique mis en place par RTE dans les conditions techniques prévues dans les Conditions Générales d Utilisation. 3

2 Accès aux API 2.1 Méthode d Autorisation Le mode d autorisation mis en place s appuie sur le framework de délégation d autorisation OAuth 2.0 (Open Authorization), permettant à une application cliente d accéder à une ressource exposée sous forme d API au nom de son propriétaire, au travers d un jeton d accès, pour des données hébergées par un tier. RFC OAuth 2.0: http://tools.ietf.org/html/rfc6749 Dans les scénarios OAuth, on distingue 4 rôles: Resource owner: l utilisateur final (Possesseur de la ressource) Client: Application ou Serveur demandant l accès à une ressource protégée sur le Resource Server (Le client peut être une application java côté serveur, une application Javascript côté client ou une application native mobile par exemple). Resource Server: Serveur où se trouve la donnée protégée Authorization Server: Serveur délivrant les jetons. Ces tokens (access token) seront utilisés lors des requêtes du client vers le serveur de ressources Oauth définit 4 scénarios possibles pour permettre au client d obtenir un access token: Authorization Code Resource Owner Password Credentials Client Credentials Implicit Grant Le scénario utilisé par les API du Rte est le Client Credentials : Client Authorization Server Resource Server Envoi des identifiants client Authentification du client Envoi d un Access Token Accès à la ressource protégée avec l Acces Token Envoi de la ressource demandée Client Authorization Server Resource Server 4

2.1.1 Demande d access token au serveur d autorisation La demande d access token est faite par l application cliente directement au serveur d autorisation. Endpoint Méthode digital.iservices.rte-france.com/token/oauth/ HTTP Method: POST Content-Type: application/x-www-form-urlencoded Nom Type Valeur Cardinalité Paramètres Authorization HEADER «Basic» (1) suivi du couple client_id:client_secret encodé en base 64 (ces éléments, client_id et client_secret, sont fournis après abonnement de l API à une application générée dans le portail d API du Rte) Requis Exemple POST https://digital.iservices.rte-france.com/token/oauth/ HTTP/1.1 Authorization: Basic ZjdiZmExZWQtNmY0Py00YThkLTkxZjMtNGQ4NDczYmUwMTZjOjNhMkEyOTEyLWVlNTY tndi1zi1lmzzilwi5ndy3otfjmzqzyg== Content-Type: application/x-www-form-urlencoded Les attributs grant_type et scope ne sont pas à renseigner dans la requête d invocation d un token. Le scope est géré automatiquement en fonction du profil utilisateur (utilisateur publique, utilisateur partenaire) Le grant_type est déterminé par le type d application (Web/Serveur ou Mobile) générée à partir du portail DATA et portant les informations de connexion (ClientID/ClientSecret), utilisés pour invoquer l API. (1) Attention, le contenu du header «Authorization» est sensible à la case, il faut donc respecter la case définie (exemple pour le «Basic», bien respecter le «B majuscule»). 5

A la création d une application sur le portail, il est demandé de choisir son type (Web/Serveur ou Mobile). Chaque type d application correspond à un flow Oauth2 Actuellement seul le flow «client_credentials» est disponible, via le type d application «Web/Serveur». Le type Mobile est actuellement également associé au flow Oauth2 «client_credentials», mais pourra être basculé par la suite sur un autre flow («Resource Owner Password Credentials», par exemple). Il est ainsi recommandé de créer des applications de type «Web/Serveur» lors du processus d abonnement à une API. Pour récupérer ses identifiants «client_id» et «client_secret», il faut tout d abord s abonner à l API souhaitée en cliquant sur le bouton ci-dessous. Puis créer une application en sélectionnant le type «Web/Serveur». Dès qu une première application est créée, celle-ci peut servir à accéder à différentes API. Les identifiants sont ensuite accessibles via le menu «MES APPLICATIONS», en cliquant sur l application précédemment créée. En cas de problèmes de sécurité, les identifiants peuvent être réinitialisés. Il est possible de créer plusieurs applications, qui auront chacune leurs identifiants propres. 6

2.1.2 Réponse d access token du serveur d autorisation L access token est renvoyé au format JSON dans le body de la réponse http. Général Content-Type: application/json; charset=utf-8 Nom Contenu Cardinalité Access_token L access token. Requis Paramètres Token_type Ex : bearer Requis Expires_in Nombre de secondes avant l expiration de l access token Requis scope Liste de scope d API pour lesquels l access token est valide. Optionnel Exemple HTTP/1.1 200 OK Date: Thu, 24 Dec 2015 14:26:59 GMT X-CorrelationID: Id-b3007c56350554276222509d 0 Cache-Control: no-store Content-Type: application/json Pragma: no-cache { "access_token":"kzbwyadedgjyw4radiwa0rpotc9ulq7fhdqz 2yWz9vxWseaihQU0IL", "token_type":"bearer", "expires_in":7200, } 7

2.1.3 Invocation de la ressource : La demande d accès à la ressource est faite par l application cliente directement au serveur de ressource avec le token récupéré. Dans cette partie, ne sont indiqué que les HEADER http nécessaire à l appel OAUTH. Endpoint Méthode Paramètres Exemple digital.iservices.rte-france.com/[endpoint du service] HTTP Method: POST Content-Type: application/soap+xml;charset=utf-8; Nom Type Valeur Cardinalité Authorization HEADER «Bearer» suivi du token founi lors de l appel au serveur d autorisation Requis POST /privateapi/sandbox/getdonneesphysiques/v1 HTTP/1.1 Content-Type: application/soap+xml;charset=utf-8; action="getdonneesphysiquesaction" Authorization: Bearer MUpX2RtZq5Gj1yAX1fhdsZ3qDr5dKhdVlfvpS Host: 10.132.7.158:8066 Content-Length: 1103 <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soapenvelope"> <soap:body>.. </soap:body> </soap:envelope> 8

2.1.4 Erreurs possibles Les erreurs rencontrées peuvent être les suivantes : Codes d erreur possibles invalid_request invalid_client invalid_grant unauthorized_client unsupported_grant_type invalid_token invalid_scope Exemples (Pas de header http Authorization dans l appel à la ressource) Exemples (Dans le header http «Authorization» pas de «bearer» dans l appel à la ressource) Exemples (Mauvais token ou token périmé fourni lors de l appel à la ressource) Exemples (Pas de définition du grant_type=client_credentia ls lors de l appel à la ressource) Description Requête invalide pour cause de paramètre manquant, paramètre invalide, requête malformée, etc L authentification de l application cliente a échoué Le grant_type est invalide, le code d autorisation ou le refresh_token est invalide ou a expiré, ou la redirect_uri est invalide L application cliente n est pas autorisée à demander un code d autorisation Le grant_type renseigné n est pas supporté Mauvais token ou token périmé fourni lors de l appel à la ressource Le scope est invalide, inconnu ou malformé HTTP/1.1 401 Unauthorized Date: Tue, 06 Oct 2015 19:49:28 GMT Allow: OPTIONS, POST Server: Content-Length: 0 Connection: close X-CorrelationID: Id-c8251456c9b142fd925aeb6b 0 WWW-Authenticate: Bearer realm="defaultrealm" HTTP/1.1 400 Bad Request Date: Tue, 06 Oct 2015 19:52:59 GMT Allow: OPTIONS, POST Server: Content-Length: 0 Connection: close X-CorrelationID: Id-9b26145635b274c6337385f7 0 WWW-Authenticate: Bearer realm="defaultrealm",error="invalid_request",error_desc ription="problem parsing the Authorization Header HTTP/1.1 401 Unauthorized Date: Tue, 06 Oct 2015 19:51:11 GMT Allow: OPTIONS, POST Server: Content-Length: 0 Connection: close X-CorrelationID: Id-2f261456feb15af315740ec1 0 WWW-Authenticate: Bearer realm="defaultrealm",error="invalid_token",error_descri ption="unable to find the access token in persistent storage." HTTP/1.1 401 Unauthorized Date: Tue, 06 Oct 2015 20:10:16 GMT Server: Content-Encoding: gzip Connection: close X-CorrelationID: Id-a82a145637b3794468a87abd 0 9

Authorization: Basic ZWI4ODY3NTItNjJiZi00YjliLWExMjYtN2JhNTYyMzkyNjY3OjJmZDl jnjfhlwfjzwitngeyyi1hodk5ltg2oti2owmwmmqzmg== Host: 10.132.7.157:8089 User-Agent: Jakarta Commons-HttpClient/3.1 Content-Type: text/html Exemples (Mauvais Authorization (ClientID:ClientSecret), Pas de basic ou pas de header Authorization défini lors de l appel à la ressource) <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <HTML><HEAD> <TITLE>401 Authorization Required</TITLE> </HEAD><BODY> <H1>Authorization Required</H1> This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.<p> <HR> </BODY></HTML> HTTP/1.1 401 Unauthorized Date: Tue, 06 Oct 2015 20:13:34 GMT Server: Content-Encoding: gzip Connection: close X-CorrelationID: Id-6e2b145669b322f541bb840c 0 WWW-Authenticate: Basic realm="defaultrealm" Content-Type: application/json { "error" : "invalid_client", "error_description" : "Client authentication failed (e.g. unknown client, no client authentication included, or unsupported authentication method). The authorization server MAY return an HTTP 401 (Unauthorized) status code to indicate which HTTP authentication schemes are supported. " } ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Fin du document ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 10