Serverautorisierung basierend auf Token mit Ablaufdatum

Serverautorisierung basierend auf Token mit Ablaufdatum

Ich versuche, Video-Streaming über HTTP zu erstellen, wofür die unten beschriebene spezielle Autorisierungsmethode erforderlich wäre, aber ich bin nicht sicher, wie ich dabei vorgehen soll.

Momentan verwende ich das Motion-Paket, mit dem man Videostreams von lokalen Kameras ganz einfach über das Internet weiterleiten kann. Es bietet auch eine Autorisierung mit Benutzername und Passwort. Für meinen Anwendungsfall ist das allerdings nicht ideal.

Meine Idee ist, dass ich dem Benutzer bei Bedarf einen Link bereitstellen möchte, mit dem er für eine begrenzte Zeit wiederholt auf den Stream zugreifen kann. Idealerweise wäre dies ein Token in Form eines URL-Parameters (https://www.link.com/stream?authId=FGJNDKD1256DD), wodurch jeder mit diesem Token ohne weitere Autorisierung eine Verbindung zum Stream herstellen könnte, das Token würde jedoch auch nach, sagen wir, einer Stunde ablaufen.

Hat jemand eine Idee, wie das geht? Muss ich meine eigene Webanwendung mit benutzerdefinierter Token-Generierung und Autorisierungsbehandlung schreiben oder gibt es einen Webserver, der diese Art der Autorisierung standardmäßig bietet?

Danke

Antwort1

Um die gewünschte Autorisierungsmethode für Videostreaming zu erreichen, müssen Sie möglicherweise eine benutzerdefinierte Lösung implementieren. Ein möglicher Ansatz könnte darin bestehen, für jeden Benutzer, der Zugriff auf den Videostream anfordert, ein eindeutiges Token zu generieren und dieses Token mit einer Ablaufzeit zu verknüpfen.

Hier sind einige Schritte, die Sie zur Umsetzung unternehmen können:

  1. Generieren Sie eine zufällige Token-Zeichenfolge: Sie können eine Bibliothek wie uuid in Python verwenden, um eine eindeutige Token-Zeichenfolge zu generieren.
  2. Speichern Sie das Token und seine Ablaufzeit: Sie können diese Informationen in einer Datenbank wie SQLite oder MySQL speichern. Jedes Mal, wenn ein Benutzer Zugriff auf den Videostream anfordert, können Sie das Token anhand der Datenbank überprüfen, um seine Gültigkeit und Ablaufzeit zu überprüfen.
  3. Erstellen Sie einen benutzerdefinierten Endpunkt für Videostreaming: Sie können einen benutzerdefinierten Endpunkt erstellen, der das Token als Parameter akzeptiert und es mit der Datenbank vergleicht. Wenn das Token gültig und nicht abgelaufen ist, kann der Endpunkt den Videostream zurückgeben. Wenn das Token ungültig oder abgelaufen ist, kann der Endpunkt eine Fehlermeldung zurückgeben.
  4. Bereitstellen des Videostreams: Sie können einen Webserver wie NGINX verwenden, um den Videostream bereitzustellen. NGINX unterstützt HTTP Live Streaming (HLS) und kann Videos in verschiedenen Formaten bereitstellen, darunter MP4 und MPEG-TS.

Insgesamt erfordert dieser Ansatz zwar einige Programmier- und Datenbankeinrichtungsschritte, sollte Ihnen jedoch ermöglichen, die spezifische Autorisierungsmethode bereitzustellen, nach der Sie suchen.

Antwort2

Geben Sie ihnen einfach eine eindeutige ID wie eine UUID oder GUID oder einen Hash-Benutzernamen mit Zeit + Salt-Wert. Speichern Sie diesen Schlüssel bei der Erstellung in einer Nachschlagetabelle mit Ablaufdatum.

URL wird im Schlüssel übergeben, Schlüssel wird nachgeschlagen, wenn abgelaufen, wird er nicht berücksichtigt.

Bereinigen Sie die Tabelle regelmäßig mit Schlüsseln, deren Ablaufdatum erreicht ist.

verwandte Informationen