API Rac i OAuth API Tradicionalment les API

  • Slides: 11
Download presentation
API Racó i OAuth

API Racó i OAuth

API • Tradicionalment, les API son els mètodes que podem cridar en una llibreria

API • Tradicionalment, les API son els mètodes que podem cridar en una llibreria o entorn • Aquí estem parlant de API web • Poder fer servir una aplicació o obtenir dades d’una aplicació des d’una altra aplicació

SOAP • Primera opció • Farragosa – XML – Molt overhead – Fitxer de

SOAP • Primera opció • Farragosa – XML – Molt overhead – Fitxer de definició WSDL • No tant API com la base de SOA – Service Oriented Architecture • A la UPC: Bus SOA

REST • Idea de que la URL es un nom i les operacions son

REST • Idea de que la URL es un nom i les operacions son les que permet HTTP • • • GET /usuaris GET /usuari/jaume POST /usuaris {JSON} PUT /usuari/jaumem {JSON} DELETE /usuari/jaume

REST “relaxat” • No apte per puristes • Algo més simple que SOAP, basat

REST “relaxat” • No apte per puristes • Algo més simple que SOAP, basat en JSON o en XML però simple • Es pot cridar facilment des de Javascript en crides AJAX des del navegador – Cuidado! no es poden fer crides AJAX en Javascript a un servidor diferent del que ha servit la pàgina

OAuth • Permet que un sistema accedeixi en nom nostre a la part que

OAuth • Permet que un sistema accedeixi en nom nostre a la part que nosaltres autoritzem d’un altre, sense passar-li l’username i password. • Exemple: Autoritzo a una aplicació de Facebook a que accedeixi a la meva llista d’amics, pero no al meu aniversari

Conceptes • L’aplicació externa s’ha de registrar. – Facebook ha de donar permís a

Conceptes • L’aplicació externa s’ha de registrar. – Facebook ha de donar permís a l’aplicació i li dona unes claus que la identifiquen • Quan un usuari utilitza l’aplicació… – La primera vegada ha d’accedir a una pàgina de Facebook d’autorització – Un cop fet aquest pas, l’aplicació ja pot accedir en nom nostre a Facebook

Molt bé i aixo com es fa? • L’aplicació demana un “Request Token” •

Molt bé i aixo com es fa? • L’aplicació demana un “Request Token” • Fem una redirecció amb el token perque el proveidor pugui “autoritzar” el token, passant un callback de tornada • El callback intercanvia el “Request Token” (ja autoritzat) per un “Access Token” al proveidor • Guardem el Access Token a la nostra aplicació associat a l’usuari que ha entrat

Oauth 2. 0 vs 1. 0 • OAuth 1. 0 signa les peticions utilitzant

Oauth 2. 0 vs 1. 0 • OAuth 1. 0 signa les peticions utilitzant un secret a part del token. El secret mai s’envia a les peticions. • Oauth 2. 0 es mes simple i permet més escenaris – Aplicacions no web – Aplicacions pròpies en les que podem posar username i password de forma segura

Exemple al Racó • • https: //raco. fib. upc. edu/api Java Aplicació web Llibreria

Exemple al Racó • • https: //raco. fib. upc. edu/api Java Aplicació web Llibreria Signpost • Signpost ens permet signar les peticions Oauth 1. 0 de forma simple • Permet obtenir i validar els tokens a partir de 3 url (request, access i authorize)

OAuth 1. 0 + App Android • El callback té un format especial (raco:

OAuth 1. 0 + App Android • El callback té un format especial (raco: //raco) <intent-filter> <action android: name="android. intent. action. VIEW"></action> <category android: name="android. intent. category. DEFAULT"></category> <category android: name="android. intent. category. BROWSABLE"></category> <data android: host="raco" android: scheme="raco"></data> </intent-filter> • Les peticions s’han de fer de forma asíncrona, utilitzant Async. Task Click al login -> Demana token -> Mostra pantalla d’acceptació -> Retorna a la app i demana accés token -> Demana URL amb OAuth