(Legacy) Android SDK con registrazione client dinamica android-sdk-with-dynamic-client-registration

NOTE
Il contenuto di questa pagina viene fornito solo a scopo informativo. L’utilizzo di questa API richiede una licenza corrente da Adobe. Non è consentito alcun uso non autorizzato.
IMPORTANT
Assicurati di essere sempre informato sugli ultimi annunci di prodotto per l'autenticazione di Adobe Pass e sulle timeline di disattivazione aggregate nella pagina Annunci di prodotto.

Introduzione Intro

Android AccessEnabler SDK per Android è stato modificato per abilitare l’autenticazione senza l’utilizzo dei cookie di sessione. Poiché sempre più browser limitano l’accesso ai cookie, è necessario utilizzare un altro metodo per consentire l’autenticazione.

Per Android, l’utilizzo delle schede personalizzate di Chrome limita l’accesso ai cookie di altre applicazioni.

Android SDK 3.0.0 introduce:

  • dynamic client registration sostituisce l'attuale meccanismo di registrazione dell'app basato sull'autenticazione con ID richiedente firmato e cookie di sessione
  • Schede personalizzate Chrome per i flussi di autenticazione
NOTE
Per le versioni precedenti di Android senza il supporto delle schede personalizzate di Chrome, verrà utilizzata l’autenticazione WebView simile a quella delle versioni precedenti di AccessEnabler SDK.

Registrazione client dinamici DCR

Android SDK v3.0+ utilizzerà la procedura di registrazione del client dinamico definita in Panoramica registrazione client dinamico.

Demo sulle funzioni Demo

Guarda questo webinar che fornisce più contesto della funzione e contiene una demo su come gestire le istruzioni software utilizzando il dashboard TVE e come testare quelle generate utilizzando un'applicazione demo fornita da Adobe come parte di Android SDK.

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.

Chiamata API: costruttore
getInstance(Context appContext, String softwareStatement, String redirectUrl)
statico pubblico di AccessEnabler genera AccessEnablerException

Disponibilità: v3.0+

Parametri:

  • appContext: contesto dell'applicazione Android
  • softwareStatement: valore ottenuto da TVE Dashboard o null se "software_statement" è impostato in strings.xml
  • redirectUrl : URL univoco, uno dei domini in ordine inverso aggiunto in modo esplicito nel dashboard TVE oppure null se "redirect_uri" è impostato in stringhe.xml

Nota: un softwareStatement o redirectUrl non valido impedirà all'applicazione di inizializzare AccessEnabler o di registrare l'applicazione per l'autenticazione e l'autorizzazione di Adobe Pass


Nota: il parametro redirectUrl o redirect_uri in strings.xml deve essere il valore del dominio aggiunto nel dashboard TVE per l’applicazione in ordine inverso ( per esempio, per il dominio "adobe.com" aggiunto nel dashboard TVE, il redirectUrl deve essere "com.adobe".

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 verrà indirizzata all'URL del provider di servizi predefinito: l'ambiente Adobe Release/Production.

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.

Chiamata API: configurazione richiedente
public void setRequestor(String requestorId)

Disponibilità: v3.0+

Chiamata API: configurazione richiedente
public void setRequestor(String requestorId, ArrayList<String> urls)

Disponibilità: v3.0+

Parametri:

  • requestorID: ID univoco associato al canale. Passa l’ID univoco assegnato da Adobe al sito alla prima registrazione al servizio di autenticazione di Adobe Pass.
  • urls: 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.

Chiamata API: avvia il flusso di logout
public void logout()

Disponibilità: v3.0+

Parametri: Nessuno

Callback attivati: setAuthenticationStatus()

Flusso di implementazione del programmatore Progr

1. Registra applicazione

a. Ottenere il software_statement e il reindirizzamento_uri da Adobe Pass ( Dashboard TVE )

b. Esistono due opzioni per trasmettere questi valori ad Adobe Pass SDK:

In strings.xml aggiungi:

<string name="software_statement">[softwarestatement value]</string>
<string name="redirect_uri">application_url.com</string>

Chiama AccessEnabler.getInstance(appContext,softwareStatement,
redirectUrl)

​2. Configurare l’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

Risposte di errore token:

Risposte di errore
HTTP 400 (richiesta non valida)
{"error": "invalid_request"}
Nella richiesta manca un parametro obbligatorio, include un valore di parametro non supportato (diverso dal tipo di concessione), ripete un parametro, include più credenziali, utilizza più meccanismi per l’autenticazione del client o ha un formato non valido.
HTTP 400 (richiesta non valida)
{"error": "invalid_client"}
Autenticazione client non riuscita. Client sconosciuto. SDK DEVE registrarsi nuovamente con il server autorizzazioni.
HTTP 400 (richiesta non valida)
{"error": "unauthorized_client"}
Il client autenticato non è autorizzato a utilizzare questo tipo di concessione di autorizzazione.
  • nel caso in cui un MVPD richieda l’autenticazione passiva, si aprirà una scheda personalizzata di Chrome per l’esecuzione passiva con tale MVPD e si chiuderà al termine

b. checkAuthentication()

  • true : vai a Autorizzazione
  • false : vai a Seleziona MVPD

c. getAuthentication: 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://redirect_uri" 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, viene effettuata una chiamata per ottenere
    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 attiverà sendTrackingData(new Event(EVENT_LOGOUT,USER_NOT_AUTHENTICATED_ERROR) e un callback : setAuthenticationStatus(0,"Logout")

Nota: poiché ogni chiamata richiede un access_token, possibili codici di errore di seguito sono gestiti in SDK.

Risposte di errore
invalid_request
400
Richiesta non valida. Il SDK dovrebbe interrompere l’esecuzione delle chiamate al server.
invalid_client
403
L’ID client non è più autorizzato a eseguire richieste. L'SDK DEVE eseguire nuovamente la registrazione client.
accesso negato
401
Accesso_token non valido. L’sdk DEVE richiedere un nuovo access_token.
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b