2011-05-19 13 views
6

Deseo realizar la autenticación en el servicio web RESTful para cada solicitud. He leído el alcance sobre OAuth en el sitio web. ¿Qué debo almacenar en la base de datos o qué clave de token o clave de acceso debo consultar con la base de datos? Tengo el servicio web REST y la aplicación de Android para llamar al servicio web. Por lo tanto, el servicio web se sirve como un proveedor de servicios, UserLogin es un usuario y una aplicación de Android como un consumidor como describe en el sitio Oauth. Por lo tanto, si la solicitud de usuario de Android comoCómo autenticar el servicio web reparador utilizando oAuth

 
GET /username/a.jpg HTTP/1.1 
Host: localhost:8080 
Authorization: OAuth realm="http://localhost/username/a.jpg", 
    oauth_consumer_key="dpf43f3p2l4k3l03", 
    oauth_token="nnch734d00sl2jdk", 
    oauth_nonce="kllo9940pd9333jh", 
    oauth_timestamp="1191242096", 
    oauth_signature_method="HMAC-SHA1", 
    oauth_version="1.0", 
    oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D" 

Pero desde el lado del servidor que es el servicio web cómo comprobar la base de datos o la tecla que se puede utilizar para comprobar? ¿es firma?

+0

¿Está pensando en realizar la autenticación completa para cada solicitud, o usar OAuth para configurar una sesión que se utilizará entre las solicitudes (dentro del alcance de una aplicación, por supuesto)? Esto es importante porque OAuth es bastante caro y REST tiende a requerir * muchas * solicitudes. OTOH, auth por solicitud hace que sea más sencillo obtener clientes correctos y elimina una cantidad de rutas de ataque; es una cuestión de equilibrar las cosas ... –

Respuesta

4

Lea en http://oauth.net/core/1.0/ .. específicamente Apéndice A.2 a A.4. Describe el "apretón de manos" que tiene lugar cuando un servicio no puede obtener acceso, luego redirige al usuario al sitio web de autenticación y luego regresa a la url de devolución de llamada.

Como usted pidió, en A.4, sí, el servicio luego examina la firma y responde con un token de acceso.

Cuestiones relacionadas