Amazon SSO-Cookbook (REST API v2) amazon-sso-cookbook-rest-api-v2
Die Adobe Pass-Authentifizierungs-REST-API V2 unterstützt Platform Single Sign-On (SSO) für Endbenutzer von Client-Anwendungen, die auf FireOS ausgeführt werden.
Dieses Dokument dient als Erweiterung für die vorhandene REST API V2 - Übersicht, die eine allgemeine Ansicht bietet, sowie für das Dokument, in dem die Implementierung von Single Sign-on mithilfe von Platform-Identitätsflüssen beschrieben wird.
Amazon-Single-Sign-on mit Platform-Identitätsflüssen cookbook
Die Adobe Pass-Authentifizierung arbeitet mit Amazon zusammen, um das Benutzererlebnis bei der Anmeldung zu verbessern und die einmalige Anmeldung (Single Sign-On, SSO) für TV Everywhere-Programme für TV-Abonnenten zu erleichtern.
Voraussetzungen prerequisites
Bevor Sie mit dem Amazon-Single-Sign-on unter Verwendung von Platform-Identitätsflüssen fortfahren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind.
Integrieren von Amazon SSO SDK integrate-amazon-sso-sdk
Die Streaming-Anwendung muss die Amazon SSO SDK-Bibliothek für einmaliges Anmelden (SSO) in ihren Build integrieren.
-
Laden Sie die neueste Amazon SSO SDK-Bibliothek herunter und kopieren Sie sie in einen
/SSOEnabler
Ordner parallel zum Verzeichnis der Anwendung. -
Aktualisieren Sie die Manifest- und Gradle-Dateien zur Verwendung der Amazon SSO SDK-Bibliothek.
manifest:
code language-java <uses-library android:name="com.amazon.ottssotokenlib" android:required="false">
Gradle:
Unter Repositorys:
code language-java flatDir { dirs '../SSOEnabler' }
Unter Abhängigkeiten:
code language-java provided fileTree(include: ['ottSSOTokenStub.jar'], dir: '../SSOEnabler')
Verwenden von Amazon SSO SDK use-amazon-sso-sdk
Die Streaming-Anwendung muss die Amazon SSO SDK verwenden, um die Payload des SSO-Tokens (Plattformidentität) abzurufen.
Amazon SSO SDK stellt sowohl synchrone als auch asynchrone APIs zum Abrufen der SSO-Token-Payload (Plattformidentität) bereit.
Die Streaming-Anwendung kann je nach Architektur eine der beiden Optionen auswählen.
Asynchrone APIs
-
Rufen Sie die
SSOEnabler
-Instanz ab und legen Sie dieSSOEnablerCallback
fest:code language-java SSOEnabler ssoEnabler = SSOEnabler.getInstance(context); SSOEnablerCallback ssoEnablerCallback = new SSOEnablerCallbackImpl(); ssoEnabler.setSSOTokenCallback(ssoEnablerCallback);
Dies kann während der Initialisierung der Streaming-Anwendung erfolgen.
code language-java public static abstract class SSOEnablerCallback { public abstract void getSSOTokenSuccess(Bundle result); public abstract void getSSOTokenFailure(Bundle result); }
Das Bundle SSO Token Success Response enthält:
- Ein SSO-Token als
string
mit dem Schlüssel „SSOToken“.
Das Bundle mit der SSO-Token-Fehlerantwort enthält:
- Fehlercode als
int
mit Schlüssel „ErrorCode“. - Eine Fehlerbeschreibung als
string
mit dem Schlüssel „ErrorDescription“.
- Ein SSO-Token als
-
Abrufen des SSO-Tokens:
code language-java Bundle getSSOTokenAsync(Void);
Diese API stellt die Antwort über einen Callback bereit, der während der Initialisierung festgelegt wurde.
Synchrone APIs
-
SSOEnabler
abrufen:code language-java SSOEnabler ssoEnabler = SSOEnabler.getInstance(context);
-
Abrufen des SSO-Tokens:
code language-java Bundle getSSOTokenSync(Void);
Diese API blockiert den Aufrufer-Thread und antwortet mit dem Ergebnispaket. Da es sich um einen synchronen Aufruf handelt, sollten Sie sicherstellen, dass Sie ihn nicht in Ihrem Haupt-Thread verwenden.
code language-java void setSSOTokenTimeout(long);
Diese API legt den Timeout-Wert für den synchronen Aufruf fest. Der Standardwert für die maximale Wartezeit ist 1 Minute.
Fallback für Amazon SSO fallback-amazon-sso
Die Streaming-Anwendung muss Fallback-Szenarien vom Amazon-SSO-Fluss zum regulären Authentifizierungsfluss verarbeiten.
Stellen Sie sicher, dass die Streaming-Anwendung Folgendes verarbeitet:
-
Das Fehlen der Amazon Companion-Anwendung, die auf dem Amazon-Gerät ausgeführt werden sollte.
- Die Streaming-Anwendung kann zur Laufzeit auf eine
ClassNotFoundException
bei der folgendencom.amazon.ottssotokenlib.SSOEnabler
stoßen.
- Die Streaming-Anwendung kann zur Laufzeit auf eine
-
Die Abwesenheit der Payload des SSO-Tokens (Plattformidentität), das von den oben genannten APIs zurückgegeben werden sollte.
- Die Streaming-Anwendung kann sich zur Untersuchung an die Amazon- und Adobe-Support-Mitarbeiter wenden.
Workflow workflow
Die Payload des Amazon-SSO-Tokens (Plattformidentität) muss bei allen HTTP-Anfragen vorhanden sein, die an REST-API-V2-Endpunkten für die Adobe Pass-Authentifizierung gesendet werden:
/api/v2/*
Die Adobe Pass-Authentifizierungs-REST-API V2 unterstützt die folgenden Methoden, um die Payload des SSO-Tokens (Plattformidentität) zu empfangen, die eine Kennung im Gerätebereich oder Plattformbereich ist:
- Als Kopfzeile mit dem Namen:
Adobe-Subject-Token
Adobe-Subject-Token
Kopfzeile finden Sie in der Dokumentation Adobe-Subject-Token.Beispiele
Als Kopfzeile senden
GET /api/v2/{serviceProvider}/sessions HTTP/1.1
Host: sp-preprod.auth.adobe.com
Adobe-Subject-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA
Adobe-Subject-Token
-Header-Wert fehlt oder ungültig ist, verarbeitet die Adobe Pass-Authentifizierung die Anfragen, ohne Single Sign-On zu berücksichtigen.