Amazon SSO Cookbook (REST API V2) amazon-sso-cookbook-rest-api-v2
Adobe Pass Authentication REST API V2 har stöd för Platform Single Sign-On (SSO) för slutanvändare av klientprogram som körs på FireOS.
Det här dokumentet fungerar som ett tillägg till den befintliga REST API V2-översikten som ger en högnivåvy och det dokument som beskriver hur du implementerar enkel inloggning med plattformsidentitetsflöden.
Amazon samlad inloggning med plattformsidentitetsflöden cookbook
Förutsättningar prerequisites
Innan du fortsätter med Amazon Single Sign-on med plattformsidentitetsflöden måste du kontrollera att följande krav uppfylls.
Integrera Amazon SSO SDK integrate-amazon-sso-sdk
Direktuppspelningsprogrammet måste integrera biblioteket Amazon SSO SDK för enkel inloggning (SSO) i sitt bygge.
-
Hämta och kopiera det senaste Amazon SSO SDK-biblioteket till en
/SSOEnabler
-mapp parallellt med programmets katalog. -
Uppdatera manifest- och Gradle-filerna för att använda Amazon SSO SDK-biblioteket.
Manifest:
code language-java <uses-library android:name="com.amazon.ottssotokenlib" android:required="false">
Gradle:
Under databaser:
code language-java flatDir { dirs '../SSOEnabler' }
Under beroenden:
code language-java provided fileTree(include: ['ottSSOTokenStub.jar'], dir: '../SSOEnabler')
Använd Amazon SSO SDK use-amazon-sso-sdk
Strömningsprogrammet måste använda Amazon SSO SDK för att hämta SSO-tokennyttolasten (platform identity).
Amazon SSO SDK innehåller både synkrona och asynkrona API:er för att hämta SSO-tokennyttolasten (platform identity).
Strömningsprogrammet kan välja ett av de två alternativen baserat på dess arkitektur.
Asynkrona API:er
-
Hämta instansen
SSOEnabler
och angeSSOEnablerCallback
:code language-java SSOEnabler ssoEnabler = SSOEnabler.getInstance(context); SSOEnablerCallback ssoEnablerCallback = new SSOEnablerCallbackImpl(); ssoEnabler.setSSOTokenCallback(ssoEnablerCallback);
Detta kan göras under initieringen av direktuppspelningsprogrammet.
code language-java public static abstract class SSOEnablerCallback { public abstract void getSSOTokenSuccess(Bundle result); public abstract void getSSOTokenFailure(Bundle result); }
Svarspaketet för lyckade SSO-token innehåller:
- En SSO-token som en
string
med nyckeln SSOToken.
Svarspaketet för SSO-tokenfel innehåller:
- En felkod som
int
med nyckeln ErrorCode. - En felbeskrivning som
string
med nyckeln ErrorDescription.
- En SSO-token som en
-
Hämta SSO-token:
code language-java Bundle getSSOTokenAsync(Void);
Detta API tillhandahåller svaret via återanropsuppsättningen under initieringen.
Synkrona API:er
-
Hämta instansen
SSOEnabler
:code language-java SSOEnabler ssoEnabler = SSOEnabler.getInstance(context);
-
Hämta SSO-token:
code language-java Bundle getSSOTokenSync(Void);
Detta API blockerar anropartråden och svarar med resultatpaketet. Eftersom detta är ett synkront anrop bör du inte använda det i huvudtråden.
code language-java void setSSOTokenTimeout(long);
Detta API anger timeout-värdet för det synkrona anropet. Standardvärdet för timeout är 1 minut.
Reservation för Amazon SSO fallback-amazon-sso
Strömningsprogrammet måste hantera reservscenarier från Amazon SSO-flödet till det reguljära autentiseringsflödet.
Kontrollera att direktuppspelningsprogrammet hanterar:
-
Frånvaro av Amazon-tilläggsprogram som ska köras på Amazon-enheten.
- Strömningsprogrammet kan stöta på
ClassNotFoundException
vid körning i följande klasscom.amazon.ottssotokenlib.SSOEnabler
.
- Strömningsprogrammet kan stöta på
-
Frånvaro av SSO-token (platform identity)-nyttolast som ska returneras av ovanstående API:er.
- Direktuppspelningsapplikationen kan kontakta Amazon och Adobe för att undersöka saken.
Arbetsflöde workflow
Amazon SSO-tokennyttolasten (platform identity) måste finnas på alla HTTP-begäranden som görs mot Adobe Pass Authentication REST API V2-slutpunkter:
/api/v2/*
Adobe Pass Authentication REST API V2 stöder följande metoder för att ta emot SSO-tokennyttolasten (platform identity), som är en enhetsomfattning eller plattformsomfångad identifierare:
- Som en rubrik med namnet:
Adobe-Subject-Token
Adobe-Subject-Token
finns i Adobe-Subject-Token -dokumentationen.Exempel
Skicka som rubrik
GET /api/v2/{serviceProvider}/sessions HTTP/1.1
Host: sp-preprod.auth.adobe.com
Adobe-Subject-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA
Adobe-Subject-Token
saknas eller är ogiltigt hanterar Adobe Pass Authentication förfrågningarna utan att ta enkel inloggning i beaktande.