Autorización del servidor basada en token con vencimiento

Autorización del servidor basada en token con vencimiento

Estoy intentando poder crear transmisión de video a través de HTTP, según el método de autorización específico que se describe a continuación, pero no estoy seguro de cómo abordarlo.

Actualmente estoy usando el paquete Motion que le permite reenviar fácilmente secuencias de video desde una cámara local a través de Internet. También ofrece autorización con nombre de usuario y contraseña. Sin embargo, para mi caso de uso esto no es lo ideal.

Mi idea es que quiero poder proporcionar un enlace bajo demanda al usuario que le permita acceder repetidamente a la transmisión durante un tiempo limitado. Idealmente, esto sería algún token en forma de parámetro de URL (https://www.link.com/stream?authId=FGJNDKD1256DD), lo que permitiría a cualquier persona con este token conectarse a la transmisión, sin ninguna otra autorización, pero el token también expiraría después de digamos 1 hora.

¿Alguien tiene alguna idea de cómo lograr esto? ¿Tendré que escribir mi propia aplicación web con generación de tokens personalizados y manejo de autorización o hay algún servidor web que ofrezca ese tipo de autorización lista para usar?

Gracias

Respuesta1

Para lograr el método de autorización de transmisión de video deseado, es posible que deba implementar una solución personalizada. Un posible enfoque podría ser generar un token único para cada usuario que solicite acceso a la transmisión de video y asociar ese token con un tiempo de vencimiento.

Aquí hay algunos pasos que podría seguir para implementar esto:

  1. Genere una cadena de token aleatoria: puede usar una biblioteca como uuid en Python para generar una cadena de token única.
  2. Almacena el token y su tiempo de vencimiento: Puedes almacenar esta información en una base de datos, como SQLite o MySQL. Cada vez que un usuario solicita acceso a la transmisión de video, puede comparar el token con la base de datos para verificar su validez y tiempo de vencimiento.
  3. Cree un punto final personalizado para la transmisión de video: puede crear un punto final personalizado que acepte el token como parámetro y lo compare con la base de datos. Si el token es válido y no ha caducado, el punto final puede devolver la transmisión de vídeo. Si el token no es válido o ha caducado, el punto final puede devolver un mensaje de error.
  4. Servir la transmisión de video: puede utilizar un servidor web como NGINX para servir la transmisión de video. NGINX es compatible con HTTP Live Streaming (HLS) y puede ofrecer vídeo en una variedad de formatos, incluidos MP4 y MPEG-TS.

En general, este enfoque requerirá algo de programación y configuración de la base de datos, pero debería permitirle proporcionar el método de autorización específico que está buscando.

Respuesta2

Simplemente proporcióneles una identificación única, como UUID o GUID, o algún nombre de usuario hash con valor de tiempo + sal. Guarde esa clave en el momento de la creación en una tabla de búsqueda con fecha de vencimiento.

La URL pasa la clave, la clave se busca; si ha vencido, no se respeta.

Purgue periódicamente la tabla de claves después del vencimiento.

información relacionada