(Herdado) Guia de SSO do Amazon (REST API V1)
- Tópicos:
- Authentication
A API REST V1 de autenticação da Adobe Pass tem suporte para o Logon único da plataforma (SSO) para usuários finais de aplicativos clientes em execução no FireOS.
Este documento atua como uma extensão para a Visão geral da REST API V1 existente que fornece uma exibição de alto nível.
Logon único do Amazon usando fluxos de identidade da plataforma
Pré-requisitos
Antes de prosseguir com o logon único da Amazon usando fluxos de identidade da plataforma, verifique se os seguintes pré-requisitos foram atendidos.
Integrar o Amazon SSO SDK
O aplicativo de streaming deve integrar a biblioteca Amazon SSO SDK para Logon Único (SSO) em sua compilação.
-
Baixe e copie a biblioteca Amazon SSO SDK mais recente em uma pasta
/SSOEnabler
paralela ao diretório do aplicativo. -
Atualize os arquivos manifest e Gradle para usar a biblioteca SDK de SSO do Amazon.
Manifesto:
<uses-library android:name="com.amazon.ottssotokenlib" android:required="false">
Grade:
Em repositórios:
flatDir { dirs '../SSOEnabler' }
Em dependências:
provided fileTree(include: ['ottSSOTokenStub.jar'], dir: '../SSOEnabler')
Usar o Amazon SSO SDK
O aplicativo de transmissão deve usar o SDK de SSO do Amazon para obter a carga do token de SSO (identidade da plataforma).
O Amazon SSO SDK fornece APIs síncronas e assíncronas para obter a carga do token de SSO (identidade da plataforma).
O aplicativo de transmissão pode escolher uma das duas opções com base em sua arquitetura.
APIs assíncronas
-
Obtenha a instância
SSOEnabler
e defina oSSOEnablerCallback
:SSOEnabler ssoEnabler = SSOEnabler.getInstance(context); SSOEnablerCallback ssoEnablerCallback = new SSOEnablerCallbackImpl(); ssoEnabler.setSSOTokenCallback(ssoEnablerCallback);
Isso pode ser feito durante a inicialização do aplicativo de streaming.
public static abstract class SSOEnablerCallback { public abstract void getSSOTokenSuccess(Bundle result); public abstract void getSSOTokenFailure(Bundle result); }
O pacote de resposta de sucesso do token de SSO conterá:
- Um token SSO como um
string
com a chave "SSOToken".
O pacote de resposta de falha do token de SSO conterá:
- Um código de erro como um
int
com a chave "ErrorCode". - Uma descrição de erro como
string
com a chave "ErrorDescription".
- Um token SSO como um
-
Obtenha o token SSO:
Bundle getSSOTokenAsync(Void);
Essa API fornecerá a resposta por meio do conjunto de retorno de chamada durante a inicialização.
APIs síncronas
-
Obter a instância
SSOEnabler
:SSOEnabler ssoEnabler = SSOEnabler.getInstance(context);
-
Obtenha o token SSO:
Bundle getSSOTokenSync(Void);
Essa API bloqueará o thread do chamador e responderá com o pacote de resultados. Como esta é uma chamada síncrona, certifique-se de não usá-la no thread principal.
void setSSOTokenTimeout(long);
Essa API definirá o valor de tempo limite para a chamada síncrona. O valor de tempo limite padrão é de 1 minuto.
Fallback para Amazon SSO
O aplicativo de transmissão deve lidar com cenários de fallback do fluxo de SSO do Amazon para o fluxo de autenticação regular.
Verifique se o aplicativo de transmissão está lidando com:
-
A ausência do aplicativo associado do Amazon que deve estar em execução no dispositivo Amazon.
- O aplicativo de streaming pode encontrar um
ClassNotFoundException
em tempo de execução na seguinte classecom.amazon.ottssotokenlib.SSOEnabler
.
- O aplicativo de streaming pode encontrar um
-
A ausência da carga do token SSO (identidade da plataforma) que deve ser retornada pelas APIs acima.
- O aplicativo de transmissão pode entrar em contato com os representantes da Amazon e da Adobe para investigar.
Fluxo de trabalho (WRK)
A carga do token SSO (identidade da plataforma) do Amazon precisa estar presente em todas as solicitações HTTP feitas em relação aos endpoints de autenticação da Adobe Pass:
/adobe-services/*
/reggie/*
/api/*
/authenticate
, pois ela foi fornecida na chamada /regcode
.A Autenticação do Adobe Pass é compatível com os seguintes métodos para receber a carga do token SSO (identidade da plataforma), que é um identificador com escopo de dispositivo ou de plataforma:
- Como um cabeçalho chamado:
Adobe-Subject-Token
- Como um parâmetro de consulta chamado:
ast
- Como um parâmetro de postagem chamado:
ast
Amostras
Enviando como cabeçalho
GET /api/v1/config/{requestorId} HTTP/1.1
Host: sp-preprod.auth.adobe.com
Adobe-Subject-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA
Enviando como parâmetro de consulta
GET /api/v1/config/{requestorId}?ast=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA HTTP/1.1
Host: sp.auth.adobe.com
Enviando como parâmetro de postagem
POST /api/v1/config/{requestorId}?ast=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.Jl\_BFhN\_h\_NCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA HTTP/1.1
Host: sp.auth.adobe.com
Content-Type: multipart/form-data;
Adobe-Subject-Token
ou o valor do parâmetro ast
esteja ausente ou seja inválido, a Autenticação da Adobe Pass atenderá às solicitações sem considerar o Logon Único.