Android - Seguridad Google Auth y servidor RESTFUL

 
Vista:
sin imagen de perfil

Seguridad Google Auth y servidor RESTFUL

Publicado por Super_Coco (2 intervenciones) el 04/12/2019 02:48:17
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Seguridad Google Auth y servidor RESTFUL

Publicado por Super_Coco (2 intervenciones) el 04/12/2019 16:27:22
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar