API Racó i OAuth

11
API Racó i OAuth

description

API Racó i OAuth. 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 - PowerPoint PPT Presentation

Transcript of API Racó i OAuth

Page 1: API  Racó  i  OAuth

API Racó i OAuth

Page 2: API  Racó  i  OAuth

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ó

Page 3: API  Racó  i  OAuth

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

Page 4: API  Racó  i  OAuth

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

Page 5: API  Racó  i  OAuth

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

Page 6: API  Racó  i  OAuth

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

Page 7: API  Racó  i  OAuth

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

Page 8: API  Racó  i  OAuth

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

Page 9: API  Racó  i  OAuth

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

Page 10: API  Racó  i  OAuth

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)

Page 11: API  Racó  i  OAuth

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 AsyncTaskClick al login -> Demana token -> Mostra pantalla d’acceptació -> Retorna a la app i demana accés token -> Demana URL amb OAuth