Apple SSO指南(iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk
介绍 Introduction
Adobe Primetime Authentication AccessEnabler iOS/tvOS SDK可以通过我们所说的Apple SSO工作流程,为在iOS、iPadOS或tvOS上运行的客户端应用程序的最终用户支持平台单点登录(SSO)身份验证。
请注意,本文档是对现有AccessEnabler iOS/tvOS SDK文档的扩展,该文档可以找到 此处.
指南 Cookbook
为了从Apple SSO用户体验中获益,一个应用程序需要集成AccessEnabler iOS/tvOS SDK,并遵循下面介绍的提示序列。
先决条件 Prerequisites
权限
Settings -> TV Provider
在iOS/iPadOS上,或 Settings -> Accounts -> TV Provider
在tvOS上。Settings -> TV Provider
在iOS/iPadOS上,或 Settings -> Accounts -> TV Provider
在tvOS上。 ...
let videoSubscriberAccountManager: VSAccountManager = VSAccountManager();
videoSubscriberAccountManager.checkAccessStatus(options: [VSCheckAccessOption.prompt: true]) { (accessStatus, error) -> Void in
switch (accessStatus) {
// The user allows the application to access subscription information.
case VSAccountAccessStatus.granted:
// Do nothing.
// The user has not yet made a choice or does not allow the application to access subscription information.
default:
// Incentivize users who refuse to give permission to access subscription information by explaining the benefits of the Single Sign-On (SSO) user experience. Please bear in mind that the user can change its decision by going to the application settings (TV Provider permission access) or to the section from Settings -> TV Provider on iOS/iPadOS or Settings -> Accounts -> TV Provider on tvOS.
...
}
}
...
回调
- presentTVProviderDialog — 在Apple MVPD选取器即将打开时触发的回调。
- dissiseTVProviderDialog — 在Apple MVPD选取器即将关闭时触发的回调。
错误报告
- N003 — 用户从Apple MVPD选取器中选择了“其他电视提供商”选项。
- N004 — 用户从Apple MVPD选取器中选择了一个当前请求者不支持的电视提供程序(集成或单点登录)。
- N005 — 用户决定取消常规MVPD选取器或Apple MVPD选取器。
- VSA403 — 应用程序的用户电视提供商权限被拒绝。
- VSA404 — 应用程序无法确定用户的电视提供程序权限。
- VSA503 — 视频订阅者帐户元数据请求失败,中提供了更多上下文 message 字段。
- AAPL / APPL_ERROR — 视频订阅者帐户元数据请求失败,中提供了更多上下文 详细信息 字段。
身份验证 Authentication
-
该应用程序必须 初始化 AccessEnabler iOS/tvOS SDK。
-
该应用程序必须 设置当前请求者标识符.
重要提示: 第二步可能会触发 高级错误代码 如果是,则它特定于Apple SSO工作流 以下项之一为true:
- VSA403 — 应用程序的用户电视提供商权限被拒绝。
- VSA404 — 应用程序无法确定用户的电视提供程序权限。
- 应用 - AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
如果出现这种情况,第二步将尝试静默地交换Apple SSO配置文件以获取Adobe身份验证令牌 以上都是假的 和 以下全部为true:
- 已为应用程序授予用户的TV提供商权限。
- 用户已在设备系统级别登录其电视提供商帐户。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序标识符。
- 通过Adobe Primetime TVE功能板,可启用用户的电视提供程序与应用程序的集成。
- 用户的电视提供程序通过应用程序的单点登录可通过Adobe Primetime TVE仪表板启用。
- 用户的电视提供程序未通过Adobe Primetime TVE仪表板降级。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序SAML响应。
专业提示: 此第二步不会触发任何其他回调, setRequestorComplete 回调,因为应用程序未明确启动身份验证。
-
该应用程序必须 检查身份验证状态.
重要提示: 第三步可能会触发 高级错误代码 如果是,则它特定于Apple SSO工作流 以下项之一为true:
- *VSA403 — 用户在设备系统级别登录到其TV提供商帐户,但应用程序的TV提供商权限被拒绝。
- *VSA404 — 用户在设备系统级别登录到其TV提供商帐户,但应用程序的TV提供商权限未确定。
- *APPL_ERROR — 用户在设备系统级别登录到其电视提供商帐户,但AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
重要提示: 此第三步将触发 setAuthenticationStatus 回调方法 状态 等于0,大写 以下项之一为true:
- 用户未在设备系统级别或通过常规身份验证流程登录到其TV Provider帐户。
- 用户在设备系统级别或通过常规身份验证流程登录到其电视提供程序帐户,但用户的电视提供程序身份验证令牌TTL已通过。
- 用户已在设备系统级别或通过常规身份验证流程登录到其电视提供程序帐户,但已通过Adobe Primetime TVE仪表板禁用用户与应用程序的电视提供程序集成。
- 用户已在设备系统级别登录其电视提供商帐户,但用户的电视提供商单点登录应用程序已通过Adobe Primetime TVE仪表板禁用。
- 用户在设备系统级别登录到其TV提供商帐户,但应用程序的用户的TV提供商权限被拒绝。
- 用户在设备系统级别登录到其TV提供商帐户,但应用程序的用户的TV提供商权限未确定。
- 用户在设备系统级别登录到其电视提供商帐户,但AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
重要提示: 此第三步将触发 setAuthenticationStatus 回调方法 状态 等于1,如果是 以上都是假的。
-
该应用程序必须 初始化身份验证 如果之前的身份验证状态检查触发了 setAuthenticationStatus 回调方法 状态 等于0。
专业提示: 实施以下AccessEnabler iOS/tvOS SDK API之一 getAuthentication 或 getAuthentication:filter.
重要提示: 第四步可能会触发 高级错误代码 如果是,则它特定于Apple SSO工作流 以下项之一为true:
- VSA403 — 应用程序的用户电视提供商权限被拒绝。
- VSA404 — 应用程序无法确定用户的电视提供程序权限。
- VSA503 - AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
- N003 — 用户从Apple MVPD选取器中选择了“其他电视提供商”选项。
- N004 — 用户从Apple MVPD选取器中选择了一个当前请求者不支持的电视提供程序(集成或单点登录)。
- N005 — 用户决定取消常规MVPD选取器或Apple MVPD选取器。
重要提示: 第四步将回退到常规身份验证流程,触发 displayProviderDialog 回调和 一 以上的 高级错误代码,以防万一 以上任一情况属实.
重要提示: 第四步将回退到常规身份验证流程,触发 navigateToUrl 或 navigateToUrl:useSVC 回调和 无 以上的 高级错误代码,如果用户选择的电视提供程序不支持Apple SSO,但存在于Apple MVPD选取器中。
专业提示: AccessEnabler iOS/tvOS SDK以静默方式调用 setSelectedProvder API,以防用户选择的电视提供程序不支持Apple SSO,但存在于Apple MVPD选取器中。
重要提示: 如果出现这种情况,第四步将尝试静默地将Apple SSO配置文件交换为Adobe身份验证令牌 以上都是假的 和 以下全部为true:
- 已为应用程序授予用户的TV提供商权限。
- 用户已登录/当前已在设备系统级别登录其电视提供商帐户。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序标识符。
- 通过Adobe Primetime TVE功能板,可启用用户的电视提供程序与应用程序的集成。
- 用户的电视提供程序通过应用程序的单点登录可通过Adobe Primetime TVE仪表板启用。
- 用户的电视提供程序未通过Adobe Primetime TVE仪表板降级。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序SAML响应。
专业提示: 第四步将触发 setAuthenticationStatus callback,不考虑 状态 结果,因为应用程序显式启动了身份验证。
元数据 Metadata
应用程序可以选择确定是否由于通过平台SSO登录而发生了身份验证,具体方法为:tokenSource” 用户元数据 AccessEnabler iOS/tvOS SDK中的API。
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
注销 Logout
此 视频订阅者帐户 框架不提供API以编程方式注销在设备系统级别登录到其电视提供商帐户的人员。 因此,要完全注销,最终用户必须明确从注销 Settings -> TV Provider
在iOS/iPadOS上,或 Settings -> Accounts -> TV Provider
在tvOS上。 用户将拥有的另一个选项是从特定应用程序设置部分(TV提供商权限访问)撤销访问用户订阅信息的权限。
- 该应用程序必须 启动注销 从AccessEnabler iOS/tvOS SDK访问。 这无助于MVPD端的会话清理。
- 应用程序必须指示/提示用户明确从中注销
Settings -> Accounts -> TV Provider
仅在tvOS上 VSA203 状态代码已触发.
- 该应用程序必须 启动注销 从AccessEnabler iOS/tvOS SDK访问。 这将有助于MVPD端的会话清理。
- 应用程序必须指示/提示用户明确从中注销
Settings -> TV Provider
在iOS/iPadOS上仅用于 VSA203 状态代码已触发.