REST API v2-Checkliste rest-api-v2-checklist
- Themen:
- Authentifizierung
In diesem Dokument werden die obligatorischen Anforderungen und empfohlenen Vorgehensweisen für Programmierer, die Client-Anwendungen implementieren, die die Adobe Pass-Authentifizierung (REST V2) verwenden, an einer Stelle.
Das folgende Dokument muss bei der Implementierung der REST-API V2 als Teil Ihrer Akzeptanzkriterien betrachtet und als Checkliste verwendet werden, um sicherzustellen, dass alle erforderlichen Schritte unternommen wurden, um eine erfolgreiche Integration zu erreichen.
Obligatorische Anforderungen mandatory-requirements
1. Phase der Registrierung mandatory-requirements-registration-phase
Fordern Sie nicht für jeden REST API v2-Aufruf ein neues Token an. Aktualisieren Sie die Zugriffstoken erst, wenn sie ablaufen.
2. Konfigurationsphase mandatory-requirements-configuration-phase
Rufen Sie die Konfigurationsantwort nur ab, wenn Sie vor der Authentifizierungsphase den Benutzer auffordern müssen, seinen MVPD (TV-Anbieter) auszuwählen.
Es ist nicht erforderlich, die Konfigurationsantwort abzurufen, wenn:
- Der Benutzer ist bereits authentifiziert.
- Dem Benutzer wird temporärer Zugriff angeboten.
- Die Benutzerauthentifizierung ist abgelaufen, aber der Benutzer kann aufgefordert werden, zu bestätigen, dass er weiterhin Abonnent der zuvor ausgewählten MVPD ist.
Speichern Sie die Auswahl des Pay-TV-Anbieters (MVPD) des Benutzers in einem beständigen Speicher, um sie in allen nachfolgenden Phasen zu verwenden:
- Der Benutzer hat im Konfigurationsantwortspeicher „ID“ für MVPD ausgewählt.
- Der Benutzer hat im Konfigurationsantwortspeicher „displayName“ für MVPD ausgewählt.
- Der Benutzer hat im Konfigurationsantwortspeicher „logoUrl“ für MVPD ausgewählt.
3. Authentifizierungsphase mandatory-requirements-authentication-phase
Starten Sie den Abrufmechanismus unter den folgenden Bedingungen:
Authentifizierung wird innerhalb der primären (Bildschirm-)Anwendung durchgeführt
- Die primäre (Streaming-)Anwendung sollte den Abfragevorgang starten, wenn die Benutzerin oder der Benutzer die endgültige Zielseite erreicht, nachdem die Browser-Komponente die in der Sitzungs-Endpunktanforderung für den Parameter „redirectUrl“ angegebene URL geladen hat.
Authentifizierung wird in einer sekundären (Bildschirm-)Anwendung durchgeführt
- Die primäre (Streaming-)Anwendung sollte den Abfragevorgang starten, sobald der Benutzer den Authentifizierungsprozess einleitet - direkt nach Erhalt der Antwort des Sitzungs-Endpunkts und Anzeige des Authentifizierungs-Codes für den Benutzer.
Beenden Sie den Abrufmechanismus unter den folgenden Bedingungen:
Erfolgreiche Authentifizierung
- Die Profilinformationen des Benutzers wurden erfolgreich abgerufen, wodurch sein Authentifizierungsstatus bestätigt wird. Daher ist keine Abfrage mehr erforderlich.
Authentifizierungssitzung und Code-Ablauf
- Wenn die Authentifizierungssitzung und der Authentifizierungscode ablaufen, muss der Benutzer den Authentifizierungsprozess neu starten, und das Abrufen mit dem vorherigen Authentifizierungscode sollte sofort gestoppt werden.
Neuer Authentifizierungs-Code generiert
- Wenn der Benutzer einen neuen Authentifizierungs-Code anfordert, wird die vorhandene Sitzung ungültig gemacht, und das Abrufen mit dem vorherigen Authentifizierungs-Code sollte sofort gestoppt werden.
Konfigurieren Sie die Häufigkeit des Abrufmechanismus unter den folgenden Bedingungen:
Authentifizierung wird innerhalb der primären (Bildschirm-)Anwendung durchgeführt
- Die primäre (Streaming-)Anwendung sollte alle 3-5 Sekunden oder länger abfragen.
Authentifizierung wird in einer sekundären (Bildschirm-)Anwendung durchgeführt
- Die primäre (Streaming-)Anwendung sollte alle 3-5 Sekunden eine Abfrage durchführen.
Speichern Sie Teile der Profilinformationen des Benutzers im beständigen Speicher, um die Leistung zu verbessern und unnötige REST-API-v2-Aufrufe zu minimieren.
Die Zwischenspeicherung sollte sich auf die folgenden Antwortfelder der Profile konzentrieren:
mvpd
- Die Client-Anwendung kann dies verwenden, um den vom Benutzer ausgewählten TV-Anbieter zu verfolgen und ihn während der Vorautorisierungs- oder Autorisierungsphase weiter zu verwenden.
- Wenn das aktuelle Benutzerprofil abläuft, kann die Client-Anwendung die gespeicherte MVPD-Auswahl verwenden und den Benutzer einfach zur Bestätigung auffordern.
Attribute
- Wird verwendet, um das Benutzererlebnis basierend auf verschiedenen Benutzermetadatenschlüsseln (z. B. ZIP, MaxRating usw.) zu personalisieren.
- Benutzermetadaten werden nach Abschluss des Authentifizierungsflusses verfügbar, daher muss die Client-Anwendung keinen separaten Endpunkt abfragen, um die Benutzermetadaten-Informationen abzurufen, da sie bereits in den Profilinformationen enthalten sind.
- Bestimmte Metadatenattribute können während der Autorisierungsphase aktualisiert werden, je nach MVPD (z. B. Charta) und dem spezifischen Metadatenattribut (z. B. householdID). Daher muss die Client-Anwendung möglicherweise die Profil-APIs nach der Autorisierung erneut abfragen, um die neuesten Benutzermetadaten abzurufen.
4. (Optional) Phase vor der Autorisierung mandatory-requirements-preauthorization-phase
Risiken, unsere Überwachungs- und Warnsysteme zu umgehen.
Nur eine begrenzte Anzahl erweiterter Fehler-Codes rechtfertigt einen erneuten Versuch, während für die meisten alternative Auflösungen wie im Aktionsfeld angegeben erforderlich sind.
Stellen Sie sicher, dass ein Wiederholungsmechanismus, der zum Abrufen von Entscheidungen vor der Autorisierung implementiert wird, nicht zu einer Endlosschleife führt und dass Wiederholungsversuche auf eine angemessene Anzahl begrenzt werden (d. h. 2-3).
5. Genehmigungsphase mandatory-requirements-authorization-phase
Erlauben Sie Streams die unterbrechungsfreie Fortsetzung, selbst wenn das Medien-Token während der Wiedergabe abläuft, und fordern Sie eine neue Autorisierungsentscheidung an, die ein (neues) Medien-Token enthält, wenn der Benutzer seine nächste Wiedergabeanforderung durchführt, unabhängig davon, ob es sich um dieselbe oder eine andere Ressource handelt.
Live-Streams, die über längere Zeiträume laufen, können nach Videovorgängen eine neue Autorisierungsentscheidung anfordern, z. B. nach dem Anhalten von Inhalten, dem Initiieren von Werbeunterbrechungen oder dem Ändern der Konfigurationen auf Asset-Ebene, wenn der MRSS geändert wird.
Risiken, unsere Überwachungs- und Warnsysteme zu umgehen.
Nur eine begrenzte Anzahl erweiterter Fehler-Codes rechtfertigt einen erneuten Versuch, während für die meisten alternative Auflösungen wie im Aktionsfeld angegeben erforderlich sind.
Stellen Sie sicher, dass ein zum Abrufen von Autorisierungsentscheidungen implementierter Wiederholungsmechanismus nicht zu einer Endlosschleife führt und dass Wiederholungsversuche auf eine angemessene Anzahl (d. h. 2-3) begrenzt werden.
6. Abmeldephase mandatory-requirements-logout-phase
Implementieren Sie die Abmelde-API, damit sich Benutzer manuell abmelden können, wodurch ihr authentifiziertes Profil beendet wird, und folgen Sie dem für jedes entfernte Profil angegebenen REST API v2-Aktionsnamen:
- Bei MVPDs, die einen Abmeldeendpunkt unterstützen, muss die Client-Anwendung in einem Benutzeragenten zur angegebenen „URL“ navigieren.
- Bei Profilen vom Typ „appleSSO“ muss die Client-Anwendung den Benutzer anweisen, sich auch auf Partnerebene abzumelden (Systemeinstellungen von Apple).
7. Parameter und Kopfzeilen mandatory-requirements-parameters-headers
Selbst wenn die Anfrage von einem Server im Namen eines Geräts stammt, muss der Kopfzeilenwert AP-Device-Identifier die tatsächliche Kennung des Streaming-Geräts widerspiegeln.
Selbst wenn die Anfrage von einem Server im Namen eines Geräts stammt, muss der Header-Wert für X-Device-Info die tatsächlichen Streaming-Geräteinformationen widerspiegeln.
Darüber hinaus sind einige Felder, wie die connectionIp des Streaming-Geräts und connectionPort, für Funktionen wie die Basisauthentifizierung von Spectrum obligatorisch.
Bei Plattformen ohne Hardware-Kennung aus Anwendungsattributen eine eindeutige Kennung generieren und beibehalten.
8. Umgang mit Fehlern mandatory-requirements-error-handling
Nur eine begrenzte Anzahl erweiterter Fehler-Codes rechtfertigt einen erneuten Versuch, während für die meisten alternative Auflösungen wie im Aktionsfeld angegeben erforderlich sind.
Die meisten erweiterten Fehler-Codes, die in der Dokumentation Erweiterte Fehler-Codes - REST API V2 aufgeführt sind, können vollständig verhindert werden, wenn sie während der Entwicklungsphase vor dem Start der Anwendung korrekt verarbeitet werden.
Es besteht das Risiko, dass die Client-Anwendung aufgrund einer fehlenden Handhabung der erweiterten Fehler-Codes nicht funktioniert, was zu unklaren Fehlermeldungen, falschen Benutzeranleitungen oder falschem Fallback-Verhalten führt.
Nur eine begrenzte Anzahl von HTTP-Fehler-Codes rechtfertigt einen erneuten Versuch, während die meisten alternative Auflösungen erfordern.
Die meisten HTTP-Fehlerantworten können vollständig verhindert werden, wenn sie während der Entwicklungsphase vor dem Start der Anwendung korrekt verarbeitet werden.
Es besteht das Risiko, dass die Client-Anwendung aufgrund einer fehlenden Handhabung der erweiterten Fehler-Codes nicht funktioniert, was zu unklaren Fehlermeldungen, falschen Benutzeranleitungen oder falschem Fallback-Verhalten führt.
9. Prüfung mandatory-requirements-testing
Entwickeln und testen Sie die Anwendung mit den offiziellen produktionsfremden Umgebungen für die Adobe Pass-Authentifizierung:
- Vorserienfertigung
- Release-Staging
Führen Sie in diesen Umgebungen eine gründliche Qualitätssicherung (QA) durch, bevor Sie mit der Veröffentlichung in der Produktionsumgebung beginnen.
Client-Anwendungen dürfen nicht zur Produktionsfreigabe übergehen, ohne zunächst die End-to-End-Validierung in Nicht-Produktionsumgebungen abzuschließen.
Ein kurzer und effizienter Debugging-Weg kann den Adobe Support und das Engineering daran hindern, schnell einzugreifen.
Empfohlene Verfahren recommended-practices
1. Phase der Registrierung recommended-practices-registration-phase
Stellen Sie sicher, dass jeder Wiederholungsmechanismus für die Verarbeitung von „nicht autorisierten“ HTTP 401-Fehlern zunächst das Zugriffstoken aktualisiert, bevor Sie die ursprüngliche Anfrage erneut versuchen.
2. Konfigurationsphase recommended-practices-configuration-phase
3. Authentifizierungsphase recommended-practices-authentication-phase
Validieren Sie den Authentifizierungscode, der über die Benutzereingabe auf dem Bildschirm der zweiten Anwendung gesendet wurde, bevor Sie die API /api/v2/Authenticate aufrufen, unter den folgenden Bedingungen:
Authentifizierung wird innerhalb der sekundären Anwendung (Bildschirm) mit vorab ausgewähltem mvpd durchgeführt
- Nutzen Sie Authentifizierungssitzung fortsetzen POST /api/v2/{serviceProvider}/sessions/{code}
- Verwenden Sie Authentifizierungssitzung abrufen - GET /api/v2/{serviceProvider}/sessions/{code}
Die Client-Anwendung erhält einen Fehler, wenn der angegebene Authentifizierungs-Code falsch eingegeben wurde oder die Authentifizierungssitzung abgelaufen ist.
Unterstützung nicht grundlegender Flüsse, falls das Client-Anwendungsgeschäft Folgendes erfordert:
- Heruntergestufte Zugriffsflüsse (Premium-Funktion)
- Temporäre Zugriffsflüsse (Premium-Funktion)
- Single-Sign-On-Zugriffsflüsse (Standardfunktion)
4. (Optional) Phase vor der Autorisierung recommended-practices-preauthorization-phase
5. Genehmigungsphase recommended-practices-authorization-phase
6. Abmeldephase recommended-practices-logout-phase
7. Parameter und Kopfzeilen recommended-practices-parameters-headers
Verwenden Sie Code aus der REST-API v1 zum Aufrufen der DCR-API, um ein Zugriffstoken abzurufen.
8. Prüfung recommended-practices-testing
Stellen Sie sicher, dass die folgenden grundlegenden Flüsse geräte- und plattformübergreifend getestet werden
Authentifizierungsflüsse
- Authentifizierungsszenario für Primäre Anwendungen (Bildschirm)
- Authentifizierungsszenario für Sekundäre Anwendungen (Bildschirm)
(Optional) Vorautorisierungsflüsse
- Szenario für Testgenehmigungsentscheidungen
- Szenario „Ablehnungsentscheidungen testen“
Autorisierungsflüsse
- Szenario für Testgenehmigungsentscheidungen
- Szenario „Ablehnungsentscheidungen testen“
Abmeldevorgänge
Testen Sie außerdem ggf. weitere Zugriffsflüsse:
- Heruntergestufte Zugriffsflüsse (Premium-Funktion)
- Temporäre Zugriffsflüsse (Premium-Funktion)
- Single-Sign-On-Zugriffsflüsse (Standardfunktion)
Abdeckung der wichtigsten MVPD-Integrationen (einschließlich der am häufigsten verwendeten Anbieter).
Zusammenfassung summary
Zugriffstoken zwischenspeichern
Zwischenspeichern von Profilteilen
Support-Beeinträchtigungsfunktion (bei Geschäftsanforderungen)
Support-TempPass-Funktion (bei Geschäftsanforderungen)
Support-Single-Sign-On-Funktion (bei Geschäftsanforderungen)
Wiederholung) zwischenspeichern
Wiedergabe-/Wiederholungsmechanismus
-Medien-Token
Implementieren der HTTP-Fehlerbehandlung