Token Schutz
  • 06 Aug 2025

Token Schutz


Artikel-Zusammenfassung

Token Schutz

LiveStream Pro unterstützt den Schutz von Events durch ein Token. Das bedeutet, dass auf eine LSPRO Viewer URL nur zugegriffen werden kann, wenn das Token gültig ist.

Die Generierung eines Tokens muss durch den integrierenden Dienst erfolgen, typischerweise ein Webportal oder eine mobile Anwendung, in die der Livestream über iFrame integriert ist.

Geteiltes Geheimnis

Das geteilte Geheimnis, das für die Implementierung der Token-Generierung relevant ist, wird vorab generiert und ist im Sicherheitsbereich verfügbar.

Berechnung der HMAC-Signatur

Erforderliche Authentifizierungsinformationen

Information

Beschreibung

webcast-id

Die ID des LiveStream Pro Events.

exp-time

Der Zeitpunkt, zu dem die Signatur abgelaufen ist (Epochen-Zeitstempel).

Shared secret

Can be found in the channel settings in the security tab.

HMAC message schema

Zu finden in den Channel-Einstellungen auf der Registerkarte „Sicherheit“.

{"webcast-id":"%webcastId%","exp-time":"%expiryTime%"}

Die LiveStream Pro-ID finden Sie am Ende des Freigabelinks:

Code Beispiele

PHP (with sprintf)

<?php
$webcastId = "212zpS6bjN77eixPUMUEjR";
$sharedSecret = "abc123";
$hexedSharedSecret = "616263313233"; // the hexadecimal representation of the given shared secret "abc123" ( bin2hex('abc123') )
$lifeTime = 5;
function generateToken($webcastId, $hexedSharedSecret, $lifeTime)
{
  $expiryTime = time() + ($lifeTime*60);
  $data = sprintf("{\"webcast-id\":\"%s\",\"exp-time\":\"%s\"}" , $webcastId, $expiryTime);
  $hash = hash_hmac ( "sha256", $data , hex2bin($hexedSharedSecret) );
  $token = sprintf ("%s~%s", $expiryTime , $hash);
  return $token;
}
$token = generateToken($webcastId, $hexedSharedSecret, $lifeTime);
echo $token;
?>

PHP (mit json_encode)

<?php
$webcastId = "212zpS6bjN77eixPUMUEjR";
$sharedSecret = "abc123";
$hexedSharedSecret = "616263313233"; // the hexadecimal representation of the given shared secret "abc123" ( bin2hex('abc123') )
$lifeTime = 5;
function generateToken($webcastId, $hexedSharedSecret, $lifeTime)
{
  $expiryTime = time() + ($lifeTime*60);
  $hashPattern = [
    'webcast-id' => '%s',
    'exp-time' => '%s',
  ];
  $data = sprintf(json_encode($hashPattern), $webcastId, $expiryTime);
  $hash = hash_hmac ( "sha256", $data , hex2bin($hexedSharedSecret) );
  $token = sprintf ("%s~%s", $expiryTime , $hash);
  return $token;
}
$token = generateToken($webcastId, $hexedSharedSecret, $lifeTime);
echo $token;
?>

Testing your HMAC-Implementation

Die Code-Beispiele konvertieren die „lifeTime“ des Tokens (in Minuten) in „expiryTime“ (den Unix-Epochen-Zeitstempel, der die genaue Sekunde angibt, zu der das Token abläuft). Das bedeutet, dass der generierte Code jedes Mal anders ausfällt, wenn Sie ihn berechnen, selbst wenn Sie dieselben Werte eingeben (die lifeTime wird in Sekunden umgerechnet und zur aktuellen Epochenzeit addiert). Sie können Ihre Ausgabe überprüfen, indem Sie sie mit einer bestimmten expiryTime testen, anstatt sie zu berechnen.

HMAC Beispiel

Sie können Ihre HMAC-Implementierung mit den folgenden Parametern testen:

Parameter

webcast-id

212zpS6bjN77eixPUMUEjR

sharedSecret

abc123

hexedSharedSecret

616263313233 (the hexadecimal representation of the given shared secret "abc123")

expiryTime

1671037090

Die Nachricht sollte wie folgt aussehen:

{"webcast-id":"212zpS6bjN77eixPUMUEjR","exp-time":"1671037090"}

Die folgende Signatur sollte mit diesen Parametern berechnet werden:

1671037090~09aeed76b483c0e4d34bdd1df6b4843dd436d8daf38f00cd13d6f62217d763e1

Verwendung des Tokens

Das Token muss als URL-Parameter zur URL des LiveStream Pro-Events hinzugefügt werden.

https://lspro.movingimage.com/view/mgh0YQsb7hJvw7Lj922HO?hmac-token=1671037090~09aeed76b483c0e4d34bdd1df6b4843dd436d8daf38f00cd13d6f62217d763e1


War dieser Artikel hilfreich?

What's Next