SSO di Amazon FireOS utilizzando il manuale API senza client amazon-fireos-sso-using-clientless-api-cookbook

NOTE
Il contenuto di questa pagina viene fornito solo a scopo informativo. L’utilizzo di questa API richiede una licenza corrente di Adobe. Non è consentito alcun uso non autorizzato.

Introduzione Introduction

Questo documento fornisce istruzioni per implementare la versione SSO di Amazon del flusso di autenticazione di Adobe Pass utilizzando l’API senza client. La prima parte di questo documento si concentra sulla specificità della versione Amazon dell’architettura, per i molti partner che già conoscono e hanno esperienza con la sua implementazione.

La seconda parte del documento illustra i passaggi principali per implementare l’API senza client di Adobe Pass Authentication.

Per un'ampia panoramica tecnica sul funzionamento della soluzione senza client, vedi Panoramica API REST. L’Adobe è il contatto preferito per il supporto relativo all’architettura generale e alle prime implementazioni.

SSO senza client di Amazon AMZ-Clientless-SSO

Architettura di alto livello High-Level-Arch

L’implementazione SSO senza client di Amazon è semplice e per lo più identica alle normali API senza client di autenticazione di Adobe Primetime.

Dovrai utilizzare l’SDK di Amazon per recuperare un payload personalizzato e utilizzarlo quando richiami le API Adobe clientless.

Se il payload viene riconosciuto e corrisponde a una sessione autenticata, le API senza client torneranno immediatamente con il token della sessione.

Come creare l’applicazione per utilizzare l’SDK di Amazon Build-entries

  • Scarica e copia l'ultimo Amazon Stub SDK in una cartella /SSOEnabler parallela alla directory dell'app

  • Aggiorna i file manifest/gradle per utilizzare la libreria:

    Aggiungi la seguente riga al file Manifest:

    code language-java
    <uses-library android:name="com.amazon.ottssotokenlib" android:required="false"/\>
    

    Voci del file Gradle:

    In archivi:

    code language-java
    flatDir {
         dirs '../SSOEnabler'
    }
    

    In dipendenze, aggiungi:

    code language-java
    provided fileTree(include: \['ottSSOTokenStub.jar'\], dir: '../SSOEnabler')
    
  • Gestione dell’assenza dell’app ausiliaria Amazon:

    Anche se è improbabile che, nel caso in cui il dispositivo ausiliario non sia presente nel dispositivo Amazon in esecuzione nell'applicazione, venga rilevata un'eccezione ClassNotFoundException in fase di esecuzione nella classe seguente: com.amazon.ottssotokenlib.SSOEnabler.

    In questo caso, tutto ciò che devi fare è saltare il passaggio di payload e tornare al normale flusso PrimeTime. SSO non verrà abilitato, ma il flusso di autenticazione regolare si verificherà normalmente.

Ottenere il payload SSO di Amazon con l’SDK di Amazon UseAmazonSSO

Durante l'inizializzazione dell'applicazione, ottenere un'istanza di SSOEnabler. In base all’architettura dell’applicazione, è necessario scegliere tra un’implementazione sincrona o asincrona.

Se per qualsiasi motivo le chiamate API non restituiscono un payload, utilizza il flusso non SSO regolare e contatta il tuo Amazon e i partner Adobe per effettuare un’indagine.

API asincrona

  • Ottieni istanza di SSO Enabler:

    code language-java
    ssoEnabler = SSOEnabler.getInstance(context);
    SSOEnablerCallback ssoEnablerCallback = new SSOEnablerCallbackImpl();
    ssoEnabler.setSSOTokenCallback(ssoEnablerCallback);
    
  • Impostare il callback

    code language-java
    public static abstract class SSOEnablerCallback
    {
            public abstract void getSSOTokenSuccess(Bundle result);
            public abstract void getSSOTokenFailure(Bundle result);
    }
    
    • Il bundle di risposta di successo conterrà:

      • Token SSO come stringa con chiave "SSOToken"
    • Il bundle di risposta degli errori conterrà:

      • codice di errore come int con chiave "ErrorCode"
      • descrizione dell’errore come stringa con chiave "ErrorDescription"
  • Ottieni token SSO

    code language-java
    Bundle getSSOTokenAsync(Void);
    
  • Questa API fornirà la risposta tramite callback impostato durante l’inizializzazione.

    Ex. chiama utilizzando l’istanza singleton creata durante l’inizializzazione:

    code language-java
    ssoEnabler.getSSOTokenAsync().
    

API sincrone

  • Ottieni l’istanza di SSO Enabler e imposta il callback

    code language-java
    ssoEnabler = SSOEnabler.getInstance(context);</span>
    
  • Ottieni token SSO

    code language-java
    Bundle getSSOTokenSync(Void);
    
    • Questa API blocca il thread chiamante e risponde con il bundle dei risultati. Poiché si tratta di una chiamata sincrona, non utilizzarla nel thread principale.
    code language-java
    void setSSOTokenTimeout(long);
    
    • Valore in millisecondi. se questa opzione è impostata, sovrascrivi il valore di timeout predefinito di 1 minuto per l’API di sincronizzazione.

Aggiornamento API di Adobe Pass Clientless per utilizzare la registrazione client dinamica clientlessdcr

Se questa è la tua prima implementazione, consulta la Panoramica tecnica senza client e contatta l'Adobe nel caso tu abbia bisogno di supporto.

L’API Adobe Clientless richiede che le applicazioni utilizzino la registrazione client dinamica per effettuare chiamate ai server Adobe.

  • Per utilizzare Registrazione client dinamica nell'applicazione, seguire le istruzioni in Gestione registrazione client dinamica per creare un'applicazione registrata e scaricare un'istruzione software.

  • Per implementare l'API Dynamic Client Registration per eseguire le richieste di autenticazione e autorizzazione ai server Adobe Pass, seguire le istruzioni contenute in Flusso di registrazione client dinamico.

Aggiornamento API Adobe Pass Clientless per l’utilizzo di Amazon SSO clientlesssso

Il payload SSO di Amazon ottenuto dall’SDK di Amazon deve essere presente nelle richieste effettuate agli endpoint di autenticazione di Adobe Pass:

      /adobe-services/*
      /reggie/*
      /api/*

Tutti gli endpoint di autenticazione di Adobe Pass supportano i seguenti metodi per ricevere l’identificatore con ambito dispositivo o con ambito piattaforma (presente nel payload SSO SSO di Amazon):

  • Come intestazione : "Adobe-Subject-Token"
  • Come parametro di query : "ast"
  • Come parametro post : "ast"
NOTE
Se l’identificatore con ambito dispositivo o con ambito piattaforma viene inviato come parametro query/post, deve essere incluso durante la generazione della firma della richiesta.
NOTE
Utilizzando il parametro di query "ast", l’intero URL potrebbe diventare molto lungo e rifiutato. Nella chiamata /authenticate, questo parametro può essere ignorato poiché è stato fornito nella chiamata /regcode

Esempi:

Invio come intestazione personalizzata

GET /adobe-services/config/requestor HTTP/1.1 Host: sp-preprod.auth.adobe.com

Adobe-Subject-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA

Invio come parametro di query

GET /adobe-services/config/requestor?ast=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA

HTTP/1.1
Host: sp.auth.adobe.com

Invio come parametro post

POST /adobe-services/config/requestor?ast=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.Jl\_BFhN\_h\_NCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA

HTTP/1.1
Host: sp.auth.adobe.com Content-Type: multipart/form-data;
boundary=---- WebKitFormBoundary7MA4YWxkTrZu0gW
NOTE
Se l’SSO di Amazon non è presente o non è valido, l’autenticazione di Adobe Pass ignorerà l’attributo e le chiamate verranno eseguite come se l’SSO non fosse presente.
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b