Für dieses Szenario müssen im Voraus eine eindeutige Client-ID und eine Redirect-URI mit movingimage eingerichtet werden. Kontaktieren Sie den Professional Services von movingimage für weitere Unterstützung.
Verwenden Sie dieses Szenario, wenn Sie eine Client-seitige Anwendung erstellen, die es Benutzern ermöglicht, sich bei ihrem VideoManager Pro-Konto anzumelden. Mit diesem Szenario können Sie den Benutzer zur Login-Seite des Autorisierungsservers umleiten. Der Workflow ist im Diagramm rechts dargestellt und entspricht dem "Authorization Code" Grant-Typ von OAuth 2.0.
Es stehen mehrere Authentifizierungs-APIs zur Verfügung, die anstelle des Schreibens des Codes für die unten beschriebenen Anfragen verwendet werden können. Das Framework, das zur Entwicklung der Integrationssoftware verwendet wird, bietet möglicherweise bereits diese Funktionalität. Eine Liste von Authentifizierungs-APIs finden Sie auch auf der OAuth-Website. Stellen Sie sicher, dass die von Ihnen gewählte API den "Authorization Code" Grant-Typ unterstützt. Lesen Sie weiter, um zu erfahren, wie Sie diese Anfragen von Grund auf erstellen können.
Um die Zugriffs- und Aktualisierungstoken zu erhalten, muss die Anwendung zwei Anfragen an den Autorisierungsserver senden:
- Holen Sie sich einen Autorisierungscode
- (Dies umfasst Schritte 1-3 im Diagramm)
- Tauschen Sie den Autorisierungscode gegen Zugriffs- und Aktualisierungstoken ein
- (Dies umfasst Schritte 4-6 im Diagramm)
- (Dies umfasst Schritte 4-6 im Diagramm)
Sobald die Tokens erworben wurden, werden sie auf folgende Weise verwendet:
- Verwenden Sie das Zugriffstoken - fügen Sie es dem Autorisierungsheader jeder Anfrage an die REST-API von Movingimage hinzu.
- (Dies umfasst Schritte 7-8 im Diagramm)
Verwenden Sie das Refresh-Token - nachdem das Zugriffstoken abgelaufen ist, verwenden Sie das Refresh-Token, um ein neues zu erhalten.
- (Dies umfasst Schritte 9 - 11 im Diagramm)
Erhalte einen Autorisierungscode
Die Anwendung muss den Benutzer an eine Login-Seite senden, indem sie den Autorisierungs-Endpunkt verwendet (siehe Kapitel "Endpoint Discovery").
- Verwenden Sie die folgenden Daten für Ihre Anfrage:
- client_id - Sie müssen diese im Voraus von Movingimage erhalten (siehe gelber Hinweis oben auf der Seite)
- redirect_uri - Dies ist der Ort, an den die Login-Seite den Browser nach der Anmeldung des Benutzers umleiten wird. Dies muss auch im Voraus mit Movingimage eingerichtet werden.
- response_mode - Dies sollte auf "fragment" gesetzt werden, obwohl es nicht notwendig ist, diesen Parameter einzubeziehen, da "fragment" bereits der Standardwert ist (er wird hier aus Gründen der Transparenz aufgenommen).
- response_type - Setzen Sie dies auf "code".
- scope - Setzen Sie dies auf "openid".
state - (optional) - Erstellen Sie eine zufällige URL-codierte Zeichenkette für diesen Wert.
Obwohl der Zustandswert optional ist, wird dringend empfohlen, ihn zu verwenden, da er vor bösartigen Softwareangriffen schützt. Klicken Sie hier für weitere Informationen.
Beispiel:
https://login.movingimage.com/auth/realms/platform/protocol/openid-connect/auth? client_id=<---CLIENT_ID--->& redirect_uri=<---REDIRECT_URI--->& response_mode=fragment& response_type=code& scope=openid& state=<---RANDOM_STRING--->
Denken Sie daran, Ihre Redirect-URI zu URL-codieren (also "https://" sollte "https%3A%2F%2F" sein).
- Verwenden Sie die folgenden Daten für Ihre Anfrage:
- Dieser Link sendet den Benutzer zu einer Login-Seite, auf der er seinen Benutzernamen und sein Passwort eingeben kann, um sich anzumelden.
Der Benutzer wird dann zu dem Ort weitergeleitet, der im redirect_uri-Parameter angegeben ist. Dieser Ort enthält einen Autorisierungscode, ähnlich wie im folgenden Beispiel:
https://redirect.example.com/#state=7f4jKO98p0&code=beEGJ7l7OmpTI6DuCmOsAWmcPMz4EwajvLE-0BU5NdA.3a21d1a0-23ad-40c0-8d79-332ac758dee2
Der Zustand wird auch an Sie zurückgegeben, wenn Sie diesen Parameter in der Login-URL verwendet haben. Wenn der Zustandswert mit der Zeichenfolge aus der ursprünglichen Login-URL übereinstimmt, ist es sicher, den Code zu verwenden.
Tauschen Sie den Autorisierungscode gegen Zugriffs- und Aktualisierungstoken aus.
4. Extrahieren Sie den Autorisierungscode aus der URL.
5. Verwenden Sie den Token-Endpunkt, um eine POST-Anfrage zu erstellen, die Ihre Zugriffs- und Aktualisierungstoken zurückgibt (sofern der Code gültig ist).
- Verwenden Sie die folgenden Daten für Ihre Anfrage:
grant_type - Dies muss "authorization_code" sein.
client_id - Verwenden Sie dieselbe Client-ID wie im letzten Schritt.
code - Verwenden Sie den Autorisierungscode, der im letzten Schritt abgerufen wurde.
redirect_uri - Dies muss mit der Redirect-URI übereinstimmen, die im vorherigen Schritt verwendet wurde.
Beispielanfrage:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d ' grant_type=authorization_code& client_id=<---CLIENT_ID--->& code=<---AUTHORIZATION_CODE--->& redirect_uri=<---REDIRECT_URI--->' https://login.movingimage.com/auth/realms/platform/protocol/openid-connect/token
- Verwenden Sie die folgenden Daten für Ihre Anfrage:
6. Beispielantwort:
{ "access_token": "<----ACCESS_TOKEN---->", "expires_in":300, "refresh_expires_in":3600, "refresh_token":"<----REFRESH_TOKEN---->", "token_type":"bearer", "id_token":"<----ID_TOKEN---->", "not-before-policy":0, "session_state":"b2e84e67-f61e-4193-88d8-5846a0b76178" "scope": "openid profile email" }
Beachten Sie die Werte "expires_in" und "refresh_expires_in". Diese geben den Zeitrahmen (in Sekunden) an, während dem die Zugriffs- und Aktualisierungstoken jeweils gültig sind. Der Zeitrahmen des Zugriffstokens wird kurz sein, was die Verwendung des Aktualisierungstokens erforderlich macht (wie im folgenden Abschnitt "Verwenden des Aktualisierungstokens" demonstriert).
Mit den Zugriffs- und Aktualisierungstoken ist es jetzt möglich, den Benutzer zu autorisieren, auf Ressourcen der API zuzugreifen.
Verwenden Sie das Zugriffstoken.
Sobald Sie ein gültiges Zugriffstoken haben, müssen Sie es im Header jeder Anforderung an die REST-API von Movingimage einschließen. Das Folgende zeigt dies anhand der Methode "Get VideoManagers":
curl -X GET -H "Authorization: Bearer <ACCESS_TOKEN>" https://api.video-cdn.net/v1/vms
Verwenden Sie das Aktualisierungstoken (Refresh Token)
Der Zugriffs-Token läuft nach kurzer Zeit ab, aber es ist möglich, den Zugang ununterbrochen aufrechtzuerhalten. Nach Ablauf des Zugriffs-Tokens können Sie das Refresh-Token verwenden, um ein neues zu erhalten. Sie erhalten auch ein neues Refresh-Token, und die Ablaufzeit der Tokens wird neu gestartet. Die Aktualisierung der Tokens ist möglich, solange das neueste Refresh-Token nicht abgelaufen ist. Wenn beide Tokens ohne Aktualisierung ablaufen, endet die Sitzung und Sie müssen sich erneut authentifizieren.
Führen Sie die folgende POST-Anforderung (erneut unter Verwendung des ermittelten Token-Endpunkts) aus, um die Tokens zu aktualisieren:
- Verwenden Sie die folgenden Daten für Ihre Anfrage:
grant_type - Dies muss "authorization_code" sein.
client_id - Verwenden Sie dieselbe Client-ID wie im letzten Schritt
refresh_token - der Auffrischungs-Token
Beispielanfrage:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d ' grant_type=refresh_token& client_id=<---CLIENT_ID--->& refresh_token=<---REFRESH_TOKEN--->' https://login.movingimage.com/auth/realms/platform/protocol/openid-connect/token
Die Antwortdaten werden genauso formatiert sein wie beim ersten Mal, als der Token-Endpunkt verwendet wurde. Es wird neue Zugriffs- und Aktualisierungstoken enthalten, die bis zum nächsten Ablauf des Zugriffstokens verwendet werden können.