(旧版)Apple SSO指南(iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk
Adobe Pass Authentication AccessEnabler iOS/tvOS SDK支持在iOS、iPadOS或tvOS上运行的客户端应用程序的最终用户使用合作伙伴单点登录(SSO)。
此文档可用作现有AccessEnabler iOS/tvOS SDK文档的扩展,该文档可在此处找到。
指南 apple-sso-cookbook-iostvos-sdk-cookbook
为了从Apple SSO用户体验中获益,该应用程序需要集成AccessEnabler iOS/tvOS SDK并遵循下面介绍的步骤顺序。
先决条件 apple-sso-cookbook-iostvos-sdk-prerequisites
权限 apple-sso-cookbook-iostvos-sdk-permission
Settings -> TV Provider
或tvOS上的Settings -> Accounts -> TV Provider
*来更改其决策。 ...
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.
...
}
}
...
回调 apple-sso-cookbook-iostvos-sdk-callbacks
- presentTVProviderDialog — 在Apple MVPD选取器打开时触发回调。
- dissiseTVProviderDialog — 即将关闭Apple MVPD选取器时触发的回调。
错误报告 apple-sso-cookbook-iostvos-sdk-error-reporting
- N003 — 用户从Apple MVPD选取器中选择了“其他电视提供商”选项。
- N004 — 用户从Apple MVPD选取器中选择了一个当前请求者不支持的电视提供程序(集成或单点登录)。
- N005 — 用户决定取消常规MVPD选取器或Apple MVPD选取器。
- VSA403 — 应用程序的用户电视提供程序权限被拒绝。
- VSA404 — 应用程序的用户电视提供程序权限未确定。
- VSA503 — 视频订阅者帐户元数据请求失败,消息 字段中提供了更多上下文。
- AAPL / APPL_ERROR — 视频订阅者帐户元数据请求失败,详细信息 字段中提供了更多上下文。
身份验证 apple-sso-cookbook-iostvos-sdk-authentication
-
应用程序必须初始化 AccessEnabler iOS/tvOS SDK。
-
应用程序必须设置当前请求者标识符。
重要提示: 如果以下任一情况为true ,则第二个步骤可能会触发特定于Apple SSO工作流的高级错误代码:
- VSA403 — 应用程序的用户电视提供程序权限被拒绝。
- VSA404 — 应用程序的用户电视提供程序权限未确定。
- APPL - AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
第二步将尝试静默地交换Apple SSO配置文件以获取Adobe身份验证令牌,前提是 以上所有条件均为false 且 以下所有条件均为true:
- 已为应用程序授予用户的TV提供商权限。
- 用户已在设备系统级别登录其电视提供商帐户。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序标识符。
- 通过Adobe Primetime TVE功能板,可启用用户的电视提供程序与应用程序的集成。
- 用户的电视提供程序通过应用程序的单点登录可通过Adobe Primetime TVE仪表板启用。
- 用户的电视提供程序未通过Adobe Primetime TVE仪表板降级。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序SAML响应。
专业提示: 第二个步骤不会触发除setRequestorComplete回调之外的任何其他回调,因为应用程序未显式启动身份验证。
-
应用程序必须检查身份验证状态。
重要提示: 如果以下任一情况为true ,则第三个步骤可能会触发特定于Apple SSO工作流的高级错误代码:
- *VSA403 — 用户已在以下位置登录到其电视提供商帐户:
设备系统级别,但用户的电视提供程序权限为
已拒绝该应用程序。 - *VSA404 — 用户已在以下位置登录到其电视提供商帐户:
设备系统级别,但用户的电视提供程序权限
尚未确定。 - *APPL_ERROR — 用户已登录其电视提供商
帐户在设备系统级别,但与
AccessEnabler iOS/tvOS SDK和视频订阅者帐户
框架遇到错误。
重要信息: 如果以下项之一为true ,则第三个步骤将触发 setAuthenticationStatus 回调,其中 状态 等于0:
- 用户未在设备系统级别或通过常规身份验证流程登录到其TV Provider帐户。
- 用户在设备系统级别或通过常规身份验证流程登录到其电视提供程序帐户,但用户的电视提供程序身份验证令牌TTL已通过。
- 用户已在设备系统级别或通过常规身份验证流程登录到其电视提供程序帐户,但已通过Adobe Primetime TVE仪表板禁用用户与应用程序的电视提供程序集成。
- 用户已在设备系统级别登录其电视提供商帐户,但用户的电视提供商单点登录应用程序已通过Adobe Primetime TVE仪表板禁用。
- 用户在设备系统级别登录到其TV提供商帐户,但应用程序的用户的TV提供商权限被拒绝。
- 用户在设备系统级别登录到其TV提供商帐户,但应用程序的用户的TV提供商权限未确定。
- 用户在设备系统级别登录到其电视提供商帐户,但AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
重要信息: 第三个步骤将触发 setAuthenticationStatus 回调,其中 状态 等于1,如果 以上全部为false。
- *VSA403 — 用户已在以下位置登录到其电视提供商帐户:
-
如果以前的身份验证状态检查触发了 setAuthenticationStatus 回调且 状态 等于0,则应用程序将必须初始化身份验证。
专业提示: 实施以下AccessEnabler iOS/tvOS SDK API getAuthentication或getAuthentication:filter之一。
重要提示: 如果以下任一情况为true ,则第四个步骤可能会触发特定于Apple SSO工作流的高级错误代码:
- VSA403 — 应用程序的用户电视提供程序权限被拒绝。
- VSA404 — 应用程序的用户电视提供程序权限未确定。
- VSA503 - AccessEnabler iOS/tvOS SDK与视频订阅者帐户框架之间的通信遇到错误。
- N003 — 用户从Apple MVPD选取器中选择了“其他电视提供商”选项。
- N004 — 用户从Apple MVPD选取器中选择了一个当前请求者不支持的电视提供程序(集成或单点登录)。
- N005 — 用户决定取消常规MVPD选取器或Apple MVPD选取器。
重要提示: 第四步将回退到常规身份验证流程,方法是:触发上述高级错误代码中的displayProviderDialog回调和 one,前提是上述回调中的 一个为true。
重要信息: 如果用户选择的电视提供程序不支持Apple SSO,但存在于Apple MVPD选取器中,则第四步将回退到常规身份验证流程,方法是触发navigateToUrl或navigateToUrl:useSVC回调以及上述高级错误代码中的 none。
专业提示: AccessEnabler iOS/tvOS SDK静默调用setSelectedPrrovder API,以防用户选择的电视提供程序不支持Apple SSO,但存在于Apple MVPD选取器中。
重要提示: 如果以上所有条件均为false 且 以下所有条件均为true ,则第四步将尝试静默交换Apple SSO配置文件以获取Adobe身份验证令牌:
- 已为应用程序授予用户的TV提供商权限。
- 用户已登录/当前已在设备系统级别登录其电视提供商帐户。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序标识符。
- 通过Adobe Primetime TVE功能板,可启用用户的电视提供程序与应用程序的集成。
- 用户的电视提供程序通过应用程序的单点登录可通过Adobe Primetime TVE仪表板启用。
- 用户的电视提供程序未通过Adobe Primetime TVE仪表板降级。
- AccessEnabler iOS/tvOS SDK从视频订阅者帐户框架收到了用户的电视提供程序SAML响应。
专业提示: 此第四步将触发 setAuthenticationStatus 回调,而不考虑 状态 结果,因为身份验证是由应用程序显式启动的。
元数据 apple-sso-cookbook-iostvos-sdk-metadata
应用程序可以选择使用AccessEnabler iOS/tvOS SDK中的"tokenSource" 用户元数据 API,确定是否由于通过合作伙伴SSO登录而发生了身份验证。
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
注销 apple-sso-cookbook-iostvos-sdk-logout
视频订阅者帐户框架不提供API以编程方式注销已在设备系统级别登录其电视提供程序帐户的人员。 因此,要完全注销,最终用户必须从iOS/iPadOS上的 Settings -> TV Provider
或tvOS上的 Settings -> Accounts -> TV Provider
中显式注销。 用户将拥有的另一个选项是从特定应用程序设置部分(TV提供商权限访问)撤销访问用户订阅信息的权限。
- 应用程序必须从AccessEnabler iOS/tvOS SDK 启动注销。 这将无助于MVPD端的会话清理。
- 仅当触发VSA203 状态代码时,应用程序才必须指示/提示用户从tvOS上的
Settings -> Accounts -> TV Provider
显式注销。
- 应用程序必须从AccessEnabler iOS/tvOS SDK 启动注销。 这将有助于MVPD端的会话清理。
- 仅当触发VSA203 状态代码时,应用程序才必须指示/提示用户在iOS/iPadOS上从
Settings -> TV Provider
显式注销。