Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 04/12/19, 02:45:49
Avatar de s_coco
s_coco s_coco no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: dic 2019
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Seguridad Google Auth y servidor RESTFUL

Buenas, ya he hecho otras aplicaciones para Android, pero nunca he tenido que preocuparme por la seguridad hasta ahora. He encontrado tutoriales y he añadido Google Auth pero a partir de ahí me pierdo y necesito un poco de ayuda.

Cliente -> Android puro
Servidor -> RESTFUL PHP

Para el login uso la cuenta de google con Firebase. Cuando lanzo la aplicación Android, Firebase me devuelve un token con la información del usuario, una fecha y una fecha de expiración (1 hora). Ese token lo envío a mi servidor para validar.

A partir de aquí no tengo claro como realizar la comunicación segura:

1º - En cada petición https del cliente al servidor enviar el token de Firebase para que el servidor lo decodifique, compruebe la identidad y que no haya expirado. Para decodificar el token debo recoger las claves públicas proporcionadas por Google en una url, además recibes 2 claves y debes probar para dar con la buena, me parece algo excesivo si el servidor recibe muchas consultas. En esta app envío texto y archivos al servidor, pero la siguiente necesita de mensajería, así que tendré una petición por cada mensaje, y eso son muchas muchas peticiones.

2º - Cuando mi servidor reciba el token de Firebase (login) debe devolver un nuevo token (generado por el servidor) que el cliente debe enviar en cada petición https al servidor hasta que expire. En el servidor hay que decodificar el token pero no hacer consulta a google para recuperar las 2 claves.

No sé si alguno de estos 2 caminos es el correcto, en cualquier caso necesito que tras el login con Firebase la comunicación sea segura entre cliente y servidor.

Gracias de antemano.
Responder Con Cita


  #2  
Viejo 04/12/19, 16:27:56
Avatar de s_coco
s_coco s_coco no está en línea
Usuario poco activo
Mensajes: 2
 
Fecha de registro: dic 2019
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
La opción correcta es la 2º.

Aunque haya que hacer una consulta a google por cada petición para decodificar el token, la verdadera razón es que el token que genera el servidor puede contener otros datos relativo a la aplicación: permisos, perfil, o lo que nos interese.

Para generar los Token en el servidor PHP jwt

composer require firebase/php-jwt
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:16:58 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007