Amazon SSO逐步指南(REST API V2) amazon-sso-cookbook-rest-api-v2
Adobe Pass Authentication REST API V2支援在FireOS上執行之使用者端應用程式的一般使用者使用平台單一登入(SSO)。
此檔案可作為現有REST API V2總覽的延伸,提供高階檢視和說明如何使用平台識別流程實作單一登入的檔案。
使用平台身分流程的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驗證REST API V2端點發出的所有HTTP請求中,都必須有Adobe Pass SSO權杖(平台身分)裝載:
/api/v2/*
Adobe Pass驗證REST API V2支援下列方法來接收SSO權杖(平台身分)裝載,此為裝置範圍或平台範圍的識別碼:
- 作為標頭,名稱為:
Adobe-Subject-Token
Adobe-Subject-Token
標頭的詳細資訊,請參閱Adobe-Subject-Token檔案。範例
以標頭傳送
GET /api/v2/{serviceProvider}/sessions HTTP/1.1
Host: sp-preprod.auth.adobe.com
Adobe-Subject-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJyb2t1IiwiaWF0IjoxNTExMzY4ODAyLCJleHAiOjE1NDI5MDQ4MDIsImF1ZCI6ImFkb2JlIiwic3ViIjoiNWZjYzMwODctYWJmZi00OGU4LWJhZTgtODQzODViZTFkMzQwIiwiZGlkIjoiY2FmZjQ1ZDAtM2NhMy00MDg3LWI2MjMtNjFkZjNhMmNlOWM4In0.JlBFhNhNCJCDXLwBjy5tt3PtPcqbMKEIGZ6sr2NA
Adobe-Subject-Token
標頭值遺失或無效,則Adobe Pass驗證將處理請求而不考慮單一登入。