(舊版) Amazon SSO逐步指南(REST API V1) amazon-sso-cookbook-rest-api-v1
Adobe Pass Authentication REST API V1支援在FireOS上執行之使用者端應用程式的一般使用者之平台單一登入(SSO)。
此檔案可作為提供高階檢視的現有REST API V1總覽的延伸。
使用平台身分流程的Amazon單一登入 cookbook
先決條件 prerequisites
繼續使用平台身分識別流程進行Amazon單一登入之前,請確定符合下列先決條件。
整合Amazon SSO SDK integrate-amazon-sso-sdk
串流應用程式必須將單一登入(SSO)的Amazon SSO SDK資料庫整合至其組建。
-
將最新的Amazon SSO SDK程式庫下載並複製到與應用程式目錄平行的
/SSOEnabler
資料夾中。 -
更新資訊清單和Gradle檔案,以使用Amazon SSO SDK資料庫。
資訊清單:
code language-java <uses-library android:name="com.amazon.ottssotokenlib" android:required="false">
Gradle:
在存放庫下:
code language-java flatDir { dirs '../SSOEnabler' }
在相依性下:
code language-java provided fileTree(include: ['ottSSOTokenStub.jar'], dir: '../SSOEnabler')
使用Amazon SSO SDK use-amazon-sso-sdk
串流應用程式必須使用Amazon SSO SDK來取得SSO權杖(平台身分)裝載。
Amazon SSO SDK提供同步和非同步API來取得SSO權杖(平台身分)裝載。
串流應用程式可以根據其架構選擇兩個選項之一。
非同步API
-
取得
SSOEnabler
執行個體並設定SSOEnablerCallback
:code language-java SSOEnabler ssoEnabler = SSOEnabler.getInstance(context); SSOEnablerCallback ssoEnablerCallback = new SSOEnablerCallbackImpl(); ssoEnabler.setSSOTokenCallback(ssoEnablerCallback);
這可以在串流應用程式初始化期間完成。
code language-java public static abstract class SSOEnablerCallback { public abstract void getSSOTokenSuccess(Bundle result); public abstract void getSSOTokenFailure(Bundle result); }
SSO權杖成功回應套件組合將包含:
- SSO權杖作為具有索引鍵「SSOToken」的
string
。
SSO權杖失敗回應套件組合將包含:
- 含有索引鍵「ErrorCode」的
int
錯誤碼。 string
的錯誤描述,含索引鍵「ErrorDescription」。
- SSO權杖作為具有索引鍵「SSOToken」的
-
取得SSO權杖:
code language-java Bundle getSSOTokenAsync(Void);
此API將在初始化期間透過回呼集提供回應。
同步API
-
取得
SSOEnabler
執行個體:code language-java SSOEnabler ssoEnabler = SSOEnabler.getInstance(context);
-
取得SSO權杖:
code language-java Bundle getSSOTokenSync(Void);
此API將封鎖呼叫者對話串,並以結果套件回應。 由於這是同步呼叫,請勿在主執行緒中使用它。
code language-java void setSSOTokenTimeout(long);
此API會設定同步呼叫的逾時值。 預設逾時值為1分鐘。
Amazon SSO後援 fallback-amazon-sso
串流應用程式必須處理從Amazon SSO流程到一般驗證流程的遞補案例。
確認串流應用程式正在處理:
-
缺少應在Amazon裝置上執行的Amazon隨附應用程式。
- 串流應用程式在執行階段可能遇到下列類別
com.amazon.ottssotokenlib.SSOEnabler
的ClassNotFoundException
。
- 串流應用程式在執行階段可能遇到下列類別
-
缺少上述API應傳回的SSO權杖(平台身分)裝載。
- 串流應用程式可能會聯絡Amazon和Adobe代表進行調查。
工作流程 workflow
針對Amazon驗證端點發出的所有HTTP請求中,都必須有Adobe Pass SSO權杖(平台身分)裝載:
/adobe-services/*
/reggie/*
/api/*
/authenticate
呼叫上傳送Amazon SSO權杖(平台身分)裝載,因為它是在/regcode
呼叫上提供的。Adobe Pass驗證支援以下方法來接收SSO權杖(平台身分)裝載,該裝載為裝置範圍或平台範圍的識別碼:
- 作為標頭,名稱為:
Adobe-Subject-Token
- 作為查詢引數,名稱為:
ast
- 作為名為
ast
的張貼引數
範例
以標頭傳送
GET /api/v1/config/{requestorId} HTTP/1.1
Host: sp-preprod.auth.adobe.com
Adobe-Subject-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA
正在以查詢引數的形式傳送
GET /api/v1/config/{requestorId}?ast=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA HTTP/1.1
Host: sp.auth.adobe.com
正在以張貼引數的形式傳送
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
標頭或ast
引數值遺失或無效,則Adobe Pass驗證將處理要求而不考慮單一登入。