Requisiti per il passaggio a OAuth 2.0
Per supportare l’autenticazione con OAuth 2.0, un MVPD deve soddisfare i seguenti prerequisiti:
Innanzitutto, MVPD deve assicurarsi di supportare il flusso Concessione codice di autorizzazione.
Dopo aver confermato che supporta il flusso, il MVPD deve fornirci le seguenti informazioni:
-
end-point di autenticazione
- l’endpoint fornirà il codice di autorizzazione che verrà successivamente utilizzato in cambio del token di aggiornamento e accesso
-
end-point /token
- questo fornirà il token di aggiornamento e il token di accesso
- il token di aggiornamento deve essere stabile (non deve cambiare ogni volta che si richiede un nuovo token di accesso)
- MVPD deve consentire diversi token di accesso attivi per ogni token di aggiornamento
- questo endpoint scambierà anche un token di aggiornamento con un token di accesso
-
è necessario un endpoint per user-profile
- questo endpoint fornirà l’identificatore userID, che deve essere univoco per un account e non deve contenere alcuna informazione di identificazione personale
-
l'endpoint /logout (facoltativo)
- L’autenticazione Adobe Pass reindirizzerà a questo endpoint, fornirà all’MVPD un URI di reindirizzamento verso il retro; su questo endpoint, l’MVPD può cancellare i cookie sul computer client o applicare qualsiasi logica desiderata per la disconnessione
-
si consiglia vivamente di avere supporto per i client autorizzati (app client che non attivano una pagina di autorizzazione utente)
-
avremo anche bisogno di:
- clientID e client secret per le configurazioni di integrazione
- durata (TTL) valori per token di aggiornamento e token di accesso
- Possiamo fornire all'MVPD un callback di autorizzazione e un URI di callback di logout. Inoltre, se necessario, possiamo fornire agli MVPD un elenco di IP da inserire nella whitelist delle impostazioni del firewall.
Flusso di autenticazione
Nel flusso di autenticazione, l’autenticazione di Adobe Pass comunicherà con MVPD sul protocollo selezionato nella configurazione. Il flusso OAuth 2.0 è illustrato nell’immagine seguente:
Figura 1: flusso di autenticazione OAuth 2.0
Richiesta e risposta di autenticazione
In breve, il flusso di autenticazione per gli MVPD che supportano il protocollo OAuth 2.0 segue questi passaggi:
-
L’utente finale passa al sito del programmatore e seleziona di accedere con le sue credenziali MVPD
-
AccessEnabler installato sul lato del programmatore con l'invio di una richiesta di autenticazione sotto forma di richiesta HTTP all'endpoint di autenticazione Adobe Pass, che l'endpoint di autenticazione Adobe Pass reindirizzerà all'endpoint di autorizzazione MVPD.
-
L’endpoint di autorizzazione MVPD invia un codice di autorizzazione all’endpoint di autenticazione Adobe Pass
-
L’autenticazione di Adobe Pass utilizza il codice di autorizzazione ricevuto per richiedere un token di aggiornamento e un token di accesso dall’endpoint del token MVPD
-
Una chiamata per recuperare informazioni utente e metadati può essere inviata all’endpoint del profilo utente nel caso in cui le informazioni utente non siano incluse nel token
-
Il token di autenticazione viene passato all'utente finale che ora può esplorare correttamente il sito Programmatore
NOTE
Il token di aggiornamento viene utilizzato per ottenere un nuovo token di accesso dopo che il token di accesso corrente non è più valido o è scaduto.
Questa limitazione deriva dai flussi client che non consentono al server di aggiornare AuthNToken che, per il protocollo OAuth 2.0, contiene anche il token di aggiornamento.
Un flusso di autorizzazione tipico esegue uno scambio del token di aggiornamento salvato in AuthNToken con un token di accesso che viene successivamente utilizzato per eseguire la chiamata di autorizzazione a nome dell'utente autenticato in primo luogo. Se il server di autorizzazione (MVPD) dovesse modificare il token di aggiornamento e invalidare quello precedente, non sarà possibile aggiornare AuthNToken valido. Per questo motivo, gli MVPD devono supportare token di aggiornamento stabili per poter configurare le integrazioni OAuth 2.0 per essi.