Ouath2 cómo funciona (cliente de Android)

4

He leído mucho sobre Oauth2 pero aún no puedo entender cómo funciona. Explicaré cómo entiendo este protocolo.

Hay algunos personajes principales en la interacción del protocolo de Oauth.
Usuario, aplicación, proveedor de recursos y servidor de autorizaciones.
¿Cómo entiendo el flujo principal?
Estoy creando un cliente móvil, así que lo usaré como ejemplo.

En primer lugar, el usuario instala la aplicación, que el usuario que la utiliza por primera vez para acceder a los recursos seguros, el usuario debe ingresar la contraseña y el inicio de sesión, no directamente las credenciales para el servidor de recursos, sino para el servidor de autorización. Por ejemplo, tengo una aplicación de tienda en línea, el usuario tiene permiso para iniciar sesión a través de la cuenta de Facebook, por lo tanto, cuando el usuario necesite acceder a los recursos de mi sitio, el primer paso lo autorizará con la cuenta de Facebook. Ingresa el nombre de usuario y la contraseña, y si las credenciales son correctas, el servidor de Facebook le da a usted o a su aplicación el token de acceso.

Después de obtener el token de acceso, lo almacena en el dispositivo en un lugar seguro o en una base de datos local (para Android es SQLite).
Cuando inició sesión con éxito, el servidor de Oauth lo redirecciona al servidor del proveedor de recursos (mi tienda en línea) con el token, el servidor de recursos guarda este token en la base de datos junto con el ID de usuario / nombre de inicio de sesión. Así que ahora su servidor de recursos sabe que el usuario con dicha identificación puede acceder a los recursos protegidos con este token.

En el lado del cliente (aplicación de Android) ahora tiene este token, tiene fecha de caducidad. Cuando necesita acceder a los recursos seguros, pasa este token en su POST / PUT o cualquier solicitud a través del protocolo HTTPS, porque si otra persona recibe este token, puede usarlo para acceder al acceso privado y hacer cambios.

Por ejemplo, debe realizar un pedido. Desde el cliente móvil, usted realiza una solicitud de REST con un token adjunto, el servidor de recursos comprueba este token y si es el mismo que en la base de datos, puede acceder o cambiar los recursos seguros.

¿Tengo razón o no entiendo el protocolo de Oauth correctamente?

Ahora mis preguntas

  1. Si tengo un cliente nativo y no tengo capacidad para que el usuario inicie sesión con cuentas de redes sociales y otros servidores Oauth2 en la red, ¿solo puedo iniciar sesión como en la página web? Con contraseña e inicio de sesión. ¿En este caso Oauth2 no es aplicable en este caso? Si es así, la siguiente pregunta.

  2. ¿Qué debo usar en su lugar? Necesito enviar las credenciales solo una vez a mi servidor de recursos, las comprobará, generará el token si todo está bien, lo pondré en la base de datos y devolveré la respuesta correcta a la aplicación. Por ejemplo, utilizando el método POST a través de la conexión https para enviar la contraseña e iniciar sesión por primera vez. ¿Ahora el servidor de recursos me emite el mismo token que en el flujo de Oauth?

  3. ¿Cómo puedo asegurar el token emitido? ¿El usuario vuelve a ingresar el inicio de sesión y la contraseña después de algún tiempo?

Por favor, ayúdame a conseguir esto. Agradecería cualquier ayuda.

    
pregunta cvuibpsb 05.06.2015 - 18:45
fuente

1 respuesta

1

A tus preguntas:

  
  1. [...] No tengo capacidad para que el usuario inicie sesión con cuentas de redes sociales   y otros servidores Oauth2 en la red [...].
  2.   

Necesitará su propio servidor de autorización OAuth, que administrará su servidor de recursos. El servidor OAuth de Google, Facebook, Twitter, etc., no servirá de ayuda porque, por lo que sé, solo puede conceder acceso a sus propios recursos, como correos electrónicos, fotos, publicaciones, etc.

Un ejemplo sería:

  • Necesitas una imagen para tu servicio.
  • Desea que el que otro sitio está usando.
  • El propietario de la imagen lo autoriza (típico el usuario).
  • Con el token ahora puedes acceder a la imagen.

Creo que entiende el flujo del protocolo, pero probablemente mezcle Autenticación (verifique la identidad) y Autorización (otorgue acceso a los recursos).

OAuth v2.0 es un protocolo de autorización , que gestionará el acceso a los recursos. Para hacer posible que otros servicios (esta podría ser su aplicación) accedan a los datos de su servidor de recursos.

    
respondido por el tintin 23.08.2015 - 11:35
fuente

Lea otras preguntas en las etiquetas