Amazon SSO指南(REST API V2) amazon-sso-cookbook-rest-api-v2
Adobe Pass身份验证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令牌成功响应包将包含:
- 作为
string
的SSO令牌,带有密钥“SSOToken”。
SSO令牌失败响应包将包含:
- 带有键“ErrorCode”的
int
形式的错误代码。 - 带有键“ErrorDescription”的
string
的错误描述。
- 作为
-
获取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主题令牌文档。示例
作为标头发送
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身份验证将无需考虑单点登录即可为请求提供服务。