Leitfaden: Autorisieren
Leitfaden: Autorisieren
Einführung
In diesem Leitfaden wird der Authentifizierungs- und Autorisierungsvorgang für C2C-Geräte (Camera to Cloud) in einem Frame.io-Projekt erläutert.Wir werden sowohl die standardmäßige manuelle Codeeingabe als auch den verbesserten Ansatz zur QR-Code-Kopplung für eine optimale Benutzererfahrung beleuchten.
Was benötige ich?
Lesen Sie den Leitfaden Vorbereitung der Implementierung, wenn Sie dies noch nicht getan haben.Sie haben ein client_secret von unserem Team erhalten, um Ihre Integration zu identifizieren.Falls nicht, lesen Sie bitte diese Einführung in das C2C-Ökosystem und wenden Sie sich an unser Team.
Voraussetzungen für die URL- und QR-Code-Kopplung
Um die URL- und QR-Code-Kopplung zu implementieren, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:
- Gerätekompatibilität: Stellen Sie sicher, dass das Gerät die Generierung von URL-/QR-Code während des Kopplungsprozesses unterstützt.
Führung durch den Autorisierungsfluss
Um den Autorisierungsfluss aus der Benutzerperspektive zu verstehen, verweisen Sie auf die folgenden Ressourcen:
- Support-Artikel zum Hinzufügen neuer Geräte.
- Schulungsvideo zur Autorisierung eines Teradek Cube.
Durch diesen Autorisierungsprozess werden die Implementierungsanforderungen minimiert.Folgendes ist nicht erforderlich:
- Weiterleitung an Webbrowser (außer bei Verwendung von URL-Code-Kopplung)
- Bearbeitung der Frame.io-Benutzerauthentifizierung
- Bereitstellung von Schnittstellen für die Konto-/Projektauswahl
- Entwicklung komplexer UI-Komponenten, die über grundlegende Informationsanzeigen hinausgehen
Verbesserung der Benutzererfahrung durch URL-Code-Kopplung
Moderne Benutzende erwarten effiziente Interaktionen mit Geräten.Der derzeitige manuelle Kopplungsprozess funktioniert zwar zufriedenstellend, lässt sich jedoch optimieren.
Durch die Einführung einer Kopplung von URL und QR-Code – ähnlich wie bei Streaming-Diensten wie Netflix oder Disney+ – können wir den Prozess erheblich vereinfachen, Eingabefehler minimieren und die Kopplungszeit verkürzen.
Geräteidentifikation (client_id)
Jedes physische Gerät benötigt eine eindeutige Kennung zur Nachverfolgung der Verbindung innerhalb des Projekts eines Benutzenden.
Bei Geräten ist diese Kennung die client_id, die während der Autorisierung erforderlich ist.Berücksichtigen Sie bei der Implementierung geeignete Identifikationsquellen wie Seriennummern von Geräten, UUIDs oder andere eindeutige Zeichenfolgen.Wenn Sie die Integration auf einem Apple-Gerät vornehmen, empfehlen wir die Verwendung einer eindeutigen, dauerhaften UUID, die auch nach einem Neustart des Geräts unverändert bleibt.Seien Sie vorsichtig in Bezug auf personenbezogene Daten.E-Mail-Adressen von Benutzenden sind keine geeigneten client_id-Werte.
Achten Sie außerdem darauf, die Kennung zu kontrollieren.Geräte-MAC-Adressen sind ungeeignet, da sie nicht im Besitz Ihrer Software sind und personenbezogene Daten darstellen können.
Wenn Sie Hilfe bei der Auswahl einer geeigneten Kennung benötigen, kann unser Team Ihnen bei der Ermittlung eines geeigneten Werts helfen, der die Integration vereinfacht.
Schritt 1: Einen Gerätecode anfordern
Um mit der Implementierung zu beginnen, fordern Sie einen Gerätecode über den /v2/auth/device/code-Endpunkt an:
Herkömmliche Kopplungsmethode
URL-Code-Kopplung aktivieren
Um eine URL-Code-Kopplung vorzunehmen, ergänzen Sie den API-Aufruf um zusätzliche Header:
Hinweis: Diese Authentifizierungsendpunkte akzeptieren ausschließlich Formulardaten, nicht JSON.Nach der Authentifizierung akzeptieren andere Endpunkte JSON-Payloads, während Authentifizierungsendpunkte JSON-Anfragen ablehnen.
Payload-Parameter
-
client_id: Die eindeutige Kennung für Ihr physisches Gerät.Diese muss eindeutig sein, wie z. B. eine Seriennummer oder eine UUID.
-
client_secret: Wird von Frame.io zur Identifizierung Ihres Gerätemodells bereitgestellt.Dieser vertrauliche Wert sollte vor Benutzenden geschützt und bei der Speicherung verschlüsselt bleiben.
-
scope: Die angeforderten Berechtigungen, getrennt durch Leerzeichen.Geräte können Folgendes anfordern:
-
asset_create: Ermöglicht das Erstellen und Hochladen von Assets.*offline: Ermöglicht die Aktualisierung der Autorisierung über einen Aktualisierungstoken.Ohne diesen Gültigkeitsbereich müssten Nutzer ihr Gerät alle 8 Stunden neu autorisieren, da die Autorisierungstoken ablaufen.
In der Praxis fordern Geräte in der Regel beide Gültigkeitsbereiche an.
API-Antwort verstehen
Die Anfrage erzeugt eine Antwort ähnlich der folgenden:
Herkömmliche Kopplungsreaktion
URL-Kopplungsreaktion
Aufschlüsselung der Antworten
- device_code: Diese interne Kennung sollte für Benutzende verborgen bleiben und die Autorisierungsanfrage während der Abfrage identifizieren.
- expires_in: Der Gültigkeitszeitraum des Codes in Sekunden.
- interval: Das empfohlene Abfrageintervall in Sekunden.
- name: Die Kennung des Verbindungsgeräts.
- user_code: Der sechsstellige Code für die manuelle Eingabe in Frame.io zur Gerätekopplung.
- verification_uri: Die Basis-URL für die manuelle Eingabe, wenn kein QR-Scannen verfügbar ist.
- verification_uri_complete: Die vollständige URL mit dem Kopplungscode, die für die Verlinkung innerhalb einer mobilen App oder die Erstellung eines QR-Codes vorgesehen ist, um die Navigation der Benutzenden zur Kopplungsoberfläche zu vereinfachen.
QR-Codes für Benutzende anzeigen
Erstellen Sie mithilfe von verification_uri_complete einen QR-Code und zeigen Sie ihn auf dem Bildschirm des Geräts an, damit der Benutzende ihn scannen kann, was eine effiziente Kopplung ermöglicht.
Beispiel: Gerätebildschirm mit QR-Code
Bieten Sie stets Ausweichmöglichkeiten an: Zeigen Sie den user_code und die verification_uri zur manuellen Eingabe an, falls das Scannen des QR-Codes nicht möglich ist.Alternativ können Sie die verification_uri als statischen QR-Code für mobiles Scannen anzeigen.Bei der Integration in mobile Apps sollten Sie den Parameter verification_uri_complete als anklickbaren Hyperlink einfügen, da Nutzer auf dem Gerät, auf dem die App läuft, keine QR-Codes scannen können.
Schritt 2: Die Benutzerautorisierung abfragen
Nachdem Sie den Kopplungscode oder den URL-Code angegeben haben, überprüfen Sie die Benutzereingabe mit dieser Anfrage:
Payload-Parameter
- client_id: Dieselbe Kennung wie in Schritt 1.
- device_code: Der Wert
device_code, der zuvor zurückgegeben wurde. - grant_type: Die OAuth-Berechtigungstyp-ID, konsistent
urn:ietf:params:oauth:grant-type:device_codefür diese Implementierung.
Erste Abfrageversuche liefern in der Regel folgende Ergebnisse:
Dieser nicht schwerwiegende Fehler zeigt an, dass der Benutzende die Codeeingabe nicht abgeschlossen hat.Fahren Sie mit der Abfrage fort, bis der Vorgang abgeschlossen ist.
Hinweis für iOS-Geräte: Wenn der Benutzende zur Frame.io-iOS-App wechselt, um den Kopplungscode einzugeben, wird Ihre App möglicherweise in den Hintergrund verschoben.Wenn Ihre App wieder aktiv wird, beispielsweise in der Methode applicationDidBecomeActive, setzen Sie die Abfrage fort, damit der Autorisierungsablauf fortgesetzt werden kann, ohne dass der Benutzende die Kopplung neu starten muss.
Wenn Sie Folgendes erhalten:
Der Code ist vor der Benutzereingabe abgelaufen.Generieren Sie einen neuen Code/QR-Code über Schritt 1, stellen Sie ihn dem Benutzenden bereit und setzen Sie die Abfrage fort.
Bei erfolgreicher Autorisierung wird Folgendes ausgegeben:
Herzlichen Glückwunsch! Sie haben Ihre Kamera erfolgreich für das Cloud-Gerät autorisiert.
Sehen wir uns diese Antwort an:
- access_token: Ihre Authentifizierungsanmeldedaten für den Frame.io-Backend-Zugriff, erforderlich in Headern für zukünftige API-Anfragen.
- expires_in: Der Gültigkeitszeitraum des Zugriffstokens in Sekunden, nach dem eine Aktualisierung erforderlich ist.
- refresh_token: Wird für die Verwaltung von Zugriffstoken verwendet, hauptsächlich für die Aktualisierung der Autorisierung, aber auch für den Widerruf.
- token_type: Wird bei C2C-API-Implementierungen stets als
bearerverwendet; es sind keine Maßnahmen erforderlich.
Die Schritte zusammenfügen
Wir implementieren nun diese API-Aufrufe in Python-ähnlichem Pseudocode und behandeln den möglichen Ablauf von Gerätecodes:
Hinweis: Die äußere Schleife behandelt Fälle, in denen Kopplungscodes ablaufen und neue Codes benötigt werden.
Rufen Sie als letzten Schritt die Projektinformationen aus Frame.io ab und zeigen Sie sie an, um zu überprüfen, ob die Kopplung mit dem gewünschten Projekt erfolgreich war.Dies wird im nächsten Tutorial behandelt.
QR-Codes für die Kopplung erstellen und anzeigen
Bei der Implementierung der Kopplung von URL und QR-Code müssen Sie anhand des Werts verification_uri_complete in der Antwort einen QR-Code generieren.Hier sind einige Beispiele für die Verwendung gängiger Bibliotheken in verschiedenen Programmiersprachen:
Python-Beispiel mit QR-Code
JavaScript-Beispiel (Web oder Electron)
Android-Beispiel (Java)
iOS-Beispiel (Swift)
Best Practices für die Anzeige von QR-Codes
Beachten Sie bei der Implementierung der QR-Code-Kopplung die folgenden Richtlinien, um ein optimales Benutzererlebnis zu gewährleisten:
-
Optimale Größe: Zeigen Sie QR-Codes mit mindestens 200–250 quadratischen Pixeln für zuverlässiges Scannen an.
-
Kontrast: Stellen Sie einen hohen Kontrast zwischen QR-Code und Hintergrund sicher (Schwarz auf Weiß ist ideal).
-
Fehlerkorrektur: Verwenden Sie mäßige Fehlerkorrekturstufen (L oder M), um Codedichte und Zuverlässigkeit auszugleichen.
-
Klare Anweisungen: Geben Sie klare Hinweise dazu, wie der Code gescannt werden soll, z. B. „Scannen Sie diesen Code mit der Kamera Ihres Smartphones, um Ihr Gerät zu koppeln.“
-
Mehrere Optionen: Geben Sie neben dem QR-Code stets den manuellen Kopplungscode als Ausweichmöglichkeit an:
-
Hyperlink für mobile Apps: Wenn es sich bei Ihrer Integration um eine mobile App handelt, fügen Sie den
verification_uri_completeals anklickbaren Link ein, da Benutzende einen QR-Code nicht vom selben Gerät aus scannen können. -
Testen: Testen Sie Ihre QR-Codes mit verschiedenen Geräten und unter unterschiedlichen Lichtverhältnissen, um ein zuverlässiges Scannen sicherzustellen.

Fehlerbehebung
Sollten Probleme auftreten, sehen Sie sich diese häufigen Fälle und Lösungen an:
-
“Connect Device” Button Not Visible (Schaltfläche „Gerät verbinden“ ist nicht sichtbar): Beim Aufrufen des C2C-Verwaltungsfensters kann dies folgende Ursachen haben:
-
Insufficient Permissions (Unzureichende Berechtigungen): Wenn eine Berechtigungsmeldung angezeigt wird, wenden Sie sich an Ihren Account Manager, um die Berechtigungen anzupassen oder eine entsprechende Rolle zuzuweisen.* Existing Device Connection (Bestehende Geräteverbindung): Nach dem Anschließen eines Geräts wird die primäre Schaltfläche „Neues Gerät hinzufügen“ durch ein Drei-Punkte-Menü in der oberen rechten Ecke der C2C-Anschlussleiste ersetzt.
-
Invalid Client Error (Ungültiger Client-Fehler): Die Antwort
invalid_clientweist auf eine Diskrepanz der Geräteinformationen hin, die in der Regel auf ein falschesclient_secretzurückzuführen ist. -
Bad Request Error (Fehler „Ungültige Anfrage“): Die Antwort
bad_requestweist auf fehlerhafte Anfragedaten hin. Überprüfen Sie die Feldnamen und stellen Sie sicher, dass alle erforderlichen Felder enthalten sind.
Wenn Ihr Problem hier nicht behandelt wird, teilen Sie uns bitte Ihre Erfahrungen mit, damit wir diesen Abschnitt zur Fehlerbehebung verbessern können.
Nächste Schritte
Wir empfehlen Ihnen, sich an unser Team zu wenden und den Leitfaden zum Autorisierungsmanagement zu lesen.Wir freuen uns auf Ihr Feedback!