Autentificando la API REST usando el token de acceso

4

Si tiene una API REST, que cuando inicia sesión desde el lado del cliente, genera un token de acceso para el cliente, que luego se almacena en el almacenamiento local y se usa para toda la autenticación desde este punto.

¿Es seguro seguir usando el mismo token de acceso, digamos que genera el token de acceso, lo almacena en la base de datos y continúa usando este token de acceso hasta que el cliente presiona activamente el cierre de sesión?

Si no, ¿cuáles serían los requisitos para hacer esto seguro?

    
pregunta Kao 17.07.2014 - 13:01
fuente

2 respuestas

2

Sí y no.

Lo que estás hablando es como una cookie de autenticación.

Sí porque a menos que la computadora esté comprometida, tenga acceso físico o tenga un virus, la cookie es segura y solo la computadora de origen puede usarla. Muchos sitios hacen eso, por ejemplo este. Incluso si cierro mi navegador o computadora, todavía estoy conectado porque la cookie permanece en mi navegador que reside en mi computadora personal.

Pero, solo haz eso para el servicio no crítico.

No porque mientras más tiempo permanezca viva una cookie de autenticación, mayor será la posibilidad de que sea robada. Por ejemplo, ¿desea permanecer conectado a su cuenta bancaria? Un "amigo" viene a tu casa, dejas tu computadora abierta. Accede a tu cuenta bancaria porque todavía estás conectado y robas algo de dinero. Amigo hacer eso todo el tiempo con la cuenta de Facebook abierta. Además, cuanto más tiempo permanezca activo, mayor será la posibilidad de que sea robado, independientemente de cómo se lo roben.

Cuanto más corto sea el tiempo de vida de su cookie, más seguro será. Pero para las aplicaciones no críticas, está bien tener cookies que permanezcan mucho tiempo y que persistan después de cerrar el navegador.

    
respondido por el Gudradain 17.07.2014 - 14:24
fuente
1

Ya hay mucha documentación sobre este tema; hay algunos artículos muy detallados disponibles aquí y aquí .

El objetivo de una API es ofrecer acceso a los datos. Este acceso puede ser público o privado, pero si se trata de un acceso privado, entonces su trabajo como desarrollador de API es asegurar el acceso a su API. La forma en que sus clientes decidan implementar su propia capa de seguridad para proporcionar acceso a la API con sus credenciales depende de ellos. Por ejemplo, inicie sesión en un sitio que ofrece a sus usuarios registrados el acceso a los datos cargados desde su API. La capa de acceso de la API, ya que el lado del servidor de ese sitio web es el que realmente se autentica y habla con su API.

Por otro lado, si proporciona una API que realmente se usará directamente desde el lado del cliente, digamos, las solicitudes AJAX desde el navegador del cliente a la API, entonces puede pensar en exponer públicamente parte de su funcionalidad o proporcione algunos medios para vincular las llamadas de tal manera que el usuario final pueda autenticarse antes de usar su API (piense más o menos en algo similar a lo que usan las pasarelas de pago para la autenticación de terceros en su sistema).

    
respondido por el Thyamarkos 17.07.2014 - 14:37
fuente

Lea otras preguntas en las etiquetas