(Legacy) Amazon FireOS SDK con registrazione client dinamica amazon-fireos-sdk-with-dynamic-client-registration
Introduzione Intro
FireOS AccessEnabler SDK per FireTV è stato modificato per abilitare l’autenticazione senza utilizzare i cookie di sessione. Poiché sempre più browser limitano l’accesso ai cookie, era necessario un altro metodo per consentire l’autenticazione.
FireOS SDK 3.0.4 sostituisce l'attuale meccanismo di registrazione dell'app basato sull'ID richiedente firmato e sull'autenticazione dei cookie di sessione con Panoramica registrazione client dinamica.
Modifiche API API
Factory.getInstance
Descrizione: crea istanze dell'oggetto Access Enabler. Deve essere presente una singola istanza di Access Enabler per ogni istanza dell'applicazione.
statico pubblico di AccessEnabler genera AccessEnablerException
Disponibilità: v3.0+
Parametri:
- appContext: contesto dell'applicazione Android
- softwareStatement: valore ottenuto dal dashboard TVE o null se "software_statement" è impostato in stringhe.xml
- redirectUrl: per le implementazioni FireTV questo parametro deve essere null. Qualsiasi impostazione su questo attributo verrà ignorata.
Note
- softwareStatement non valido impedirà all'applicazione di inizializzare AccessEnabler o di registrare l'applicazione per l'autenticazione e l'autorizzazione di Adobe Pass
- Il parametro redirectUrl per FireTV è impostato da SDK su adobepass://android.app in quanto l'autenticazione è gestita da un'istanza AccessEnabler univoca.
setRequestor
Descrizione: stabilisce l'identità del canale. A ciascun canale viene assegnato un ID univoco al momento della registrazione ad Adobe per il sistema di autenticazione di Adobe Pass. Quando si tratta di token SSO e remoti, lo stato di autenticazione può cambiare quando l'applicazione è in background, setRequestor può essere richiamato nuovamente quando l'applicazione viene portata in primo piano per sincronizzarsi con lo stato del sistema (recuperare un token remoto se SSO è abilitato o eliminare il token locale se nel frattempo si è verificato un logout).
La risposta del server contiene un elenco di MVPD insieme ad alcune informazioni di configurazione associate all’identità del canale. La risposta del server viene utilizzata internamente dal codice di Access Enabler. Solo lo stato dell’operazione (ovvero SUCCESS/FAIL) viene presentato all’applicazione tramite il callback setRequestorComplete().
Se il parametro urls non viene utilizzato, la chiamata di rete risultante esegue il targeting dell'URL del provider di servizi predefinito: l'ambiente di produzione Adobe Release.
Se viene fornito un valore per il parametro urls, la chiamata di rete risultante eseguirà il targeting di tutti gli URL forniti nel parametro urls. Tutte le richieste di configurazione vengono attivate contemporaneamente in thread separati. Il primo responder ha la precedenza quando si compila l’elenco degli MVPD. Per ogni MVPD nell'elenco, Access Enabler ricorda l'URL del provider di servizi associato. Tutte le richieste di adesione successive vengono indirizzate all’URL associato al provider di servizi che è stato associato al MVPD di destinazione durante la fase di configurazione.
Disponibilità: v3.0+
public void setRequestor(String requestorId, ArrayList<String> urls)Disponibilità: v3.0+
Parametri:
- requestorID: ID univoco associato al canale. La prima volta che ti registri al servizio di autenticazione di Adobe Pass, passa l’ID univoco assegnato da Adobe al tuo sito.
- url: parametro facoltativo; per impostazione predefinita, viene utilizzato il provider di servizi Adobe (http://sp.auth.adobe.com/). Questo array consente di specificare gli endpoint per i servizi di autenticazione e autorizzazione forniti da Adobe (a scopo di debug possono essere utilizzate istanze diverse). È possibile utilizzare questa opzione per specificare più istanze del provider di servizi di autenticazione di Adobe Pass. In questo caso, l’elenco MVPD è composto dagli endpoint di tutti i provider di servizi. Ogni MVPD è associato al provider di servizi più veloce, ovvero il provider che ha risposto per primo e che supporta tale MVPD.
Obsoleto:
- signedRequestorID: copia dell'ID richiedente con firma digitale nella chiave privata. .
Callback attivati: setRequestorComplete()
logout
Descrizione: Utilizzare questo metodo per avviare il flusso di disconnessione. La disconnessione è il risultato di una serie di operazioni di reindirizzamento HTTP dovute al fatto che l’utente deve essere disconnesso sia dai server di autenticazione di Adobe Pass che dai server di MVPD. Di conseguenza, questo flusso aprirà una finestra ChromeCustomTab per eseguire la disconnessione.
Disponibilità: v3.0+
Parametri: Nessuno
Callback attivati: setAuthenticationStatus()
Flusso di implementazione del programmatore Progr
1. Registra applicazione
-
Ottenere il software_statement da Adobe Pass ( Dashboard TVE )
-
Esistono due opzioni per trasmettere questi valori ad Adobe Pass SDK:
-
In strings.xml aggiungi:
code language-none <string name>"software\_statement">[softwarestatement value]</string> -
Chiama AccessEnabler.getInstance(appContext,softwareStatement, null)
-
2. Configura applicazione
-
a. setRequestor(requestor_id)
SDK eseguirà le seguenti operazioni:
- registra applicazione: utilizzando software_statement, SDK otterrà un client_id, client_secret, client_id_issued_at, redirect_uris, grant_types. Queste informazioni verranno archiviate nell'archivio interno dell'applicazione.
- ottieni un accesso_token utilizzando client_id, client_secret e grant_type="client_credentials" . Questo accesso_token verrà utilizzato in ogni chiamata effettuata da SDK ai server Adobe Pass.
-
nel caso in cui un MVPD richieda l'autenticazione passiva, verrà aperto un WebView per l'esecuzione passiva con tale MVPD e verrà chiuso una volta completato
-
b. checkAuthentication()
- true: vai ad autorizzazione
- false : vai a Seleziona MVPD
-
c. getAuthentication: il SDK includerà access_token nei parametri di chiamata
- mvpd memorizzato: vai a setSelectedProvider(mvpd_id)
- mvpd non selezionato: displayProviderDialog
- mvpd selezionato: vai a setSelectedProvider(mvpd_id)
-
d. setSelectedProvider
- L'URL di autenticazione mvpd_id è caricato in ChromeCustomTabs
- accesso riuscito : delegate.setAuthenticationStatus ( SUCCESS )
- accesso annullato: reimpostare la selezione di MVPD
- Lo schema URL viene impostato come "adobepass://android.app" da acquisire al termine dell’autenticazione
-
e. get/checkAuthorization : SDK includerà access_token nell'intestazione come Authorization: Bearer access_token
-
se l’autorizzazione viene rilasciata, verrà effettuata una chiamata per ottenere il token multimediale
-
f. logout:
- SDK eliminerà il token valido per il richiedente corrente (le autenticazioni ottenute da altre applicazioni e non tramite SSO rimarranno valide)
- SDK aprirà le schede personalizzate di Chrome per raggiungere l'endpoint mvpd_id logout. Al termine, le schede personalizzate Chrome verranno chiuse
- Lo schema URL viene impostato come "adobepass://logout" per acquisire il momento in cui viene completato il logout
- la disconnessione attiva sendTrackingData(new Event(EVENT_LOGOUT,USER_NOT_AUTHENTICATED_ERROR) e un callback : setAuthenticationStatus(0,"Logout")
Nota: poiché ogni chiamata richiede un access_token, i possibili codici di errore seguenti vengono gestiti in SDK.