Apple SSO逐步指南(iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk

NOTE
此頁面上的內容僅供參考。 使用此API需要Adobe的目前授權。 不允許未經授權的使用。

簡介 Introduction

Adobe Primetime Authentication AccessEnabler iOS/tvOS SDK可支援平台單一登入(SSO)驗證,適用於在iOS、iPadOS或tvOS上執行之使用者端應用程式的一般使用者,操作方式為所謂的Apple SSO工作流程。

請注意,此檔案可當作現有AccessEnabler iOS/tvOS SDK檔案的擴充功能,您可以在這裡找到。

逐步指南 Cookbook

為了從Apple SSO使用者體驗中獲益,一個應用程式需要整合AccessEnabler iOS/tvOS SDK,並遵循下面提供的提示順序。

必要條件 Prerequisites

許可權

TIP
專業秘訣: ​若要存取使用者的訂閱資訊,使用者必須授予應用程式繼續的許可權,類似於提供裝置攝影機或麥克風的存取許可權。 必須為每個應用程式要求此許可權,裝置將會儲存使用者的選擇。 請記住,使用者可以透過移至應用程式設定(電視提供者許可權存取),或從iOS/iPadOS上的​*Settings -> TV Provider​或tvOS上的​Settings -> Accounts -> TV Provider*​移至區段來變更其決定。
TIP
專業秘訣: ​我們建議在應用程式進入前景狀態時要求使用者的許可權,但這只是建議,因為應用程式可以在要求使用者驗證之前,隨時檢查存取使用者訂閱資訊的許可權。 此外,AccessEnabler iOS/tvOS SDK API也會在需要時自動要求使用者的許可權。
TIP
專業秘訣: ​如果使用者未授予其訂閱資訊的存取權,或是與視訊訂閱者帳戶架構的通訊失敗,則AccessEnabler iOS/tvOS SDK將會退回一般驗證流程。
TIP
專業秘訣: ​我們建議您說明單一登入(SSO)使用者體驗的優點,以鼓勵拒絕提供許可權存取訂閱資訊的使用者。 請記住,使用者可以透過移至應用程式設定(電視提供者許可權存取),或從iOS/iPadOS上的​*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.
                   ...
                }
    }
    ...

回呼

TIP
專業秘訣: ​實作下列回呼清單,這些回呼是特定於Apple SSO工作流程的。

錯誤報告

TIP
專業秘訣: ​實作下列進階錯誤碼清單,這些是特定於Apple SSO工作流程的。
  • N003 — 使用者從Apple MVPD選擇器中選取[其他電視提供者]選項。
  • N004 — 使用者從Apple MVPD選擇器選取電視提供者,但目前的要求者不支援該電視提供者(整合或停用單一登入)。
  • N005 — 使用者決定取消一般MVPD選擇器或Apple MVPD選擇器。
  • VSA403 — 應用程式拒絕使用者的TV提供者許可權。
  • VSA404 — 應用程式未決定使用者的TV提供者許可權。
  • VSA503 — 視訊訂閱者帳戶中繼資料要求失敗,訊息 ​欄位中有更多內容。
  • AAPL / APPL_ERROR — 視訊訂閱者帳戶中繼資料要求失敗,詳細資料 ​欄位中有更多內容。

驗證 Authentication

TIP
秘訣: ​請依照下列步驟進行iOS/iPadOS/tvOS實作。
  1. 應用程式必須初始化 AccessEnabler iOS/tvOS SDK。

  2. 應用程式必須設定目前的要求者識別碼

    重要: ​第二個步驟可能會觸發Apple SSO工作流程專屬的進階錯誤碼,以防下列其中一項​ 為true

    • VSA403 — 應用程式拒絕使用者的TV提供者許可權。
    • VSA404 — 應用程式未決定使用者的TV提供者許可權。
    • APPL - AccessEnabler iOS/tvOS SDK與視訊訂閱者帳戶架構之間的通訊發生錯誤。

    第二個步驟會嘗試以無訊息方式將Apple SSO設定檔交換為Adobe驗證Token,以防上述​ 全部為false ​且​ 下列全部為true

    • 使用者的電視提供者許可權已授予應用程式。
    • 使用者已在裝置系統層級登入其電視提供者帳戶。
    • AccessEnabler iOS/tvOS SDK從視訊訂閱者帳戶架構收到使用者的電視提供者識別碼。
    • 使用者的電視提供者與應用程式的整合可透過Adobe Primetime TVE Dashboard啟用。
    • 使用者透過應用程式的電視提供者單一登入功能可透過Adobe Primetime TVE控制面板啟用。
    • 使用者的電視提供者不會透過Adobe Primetime TVE Dashboard降級。
    • AccessEnabler iOS/tvOS SDK從視訊訂閱者帳戶架構收到使用者的電視提供者SAML回應。

    專業秘訣: ​此第二個步驟不會觸發任何其他回呼(除了setRequestorComplete回呼),因為應用程式並未明確起始驗證。

  3. 應用程式必須檢查驗證狀態

    重要: ​第三個步驟可能會觸發Apple SSO工作流程專屬的進階錯誤碼,以防下列其中一項​ 為true

    • *VSA403 — 使用者已登入其電視提供者帳戶,位於
      裝置系統層級,但使用者的電視提供者許可權為
      已拒絕應用程式。
    • *VSA404 — 使用者已登入其電視提供者帳戶,位於
      裝置系統層級,但使用者的電視提供者許可權
      應用程式的未決定。
    • *APPL_ERROR — 使用者已登入其電視提供者
      裝置系統層級的帳戶,但與
      AccessEnabler iOS/tvOS SDK和視訊訂閱者帳戶
      框架發生錯誤。

    重要: ​此第三個步驟會觸發具有​ 狀態 ​等於0的​ setAuthenticationStatus ​回呼,如果​ 下列其中一個為true

    • 使用者並未在裝置系統層級登入其TV提供者帳戶,或是透過一般驗證流程登入。
    • 使用者已在裝置系統層級或透過一般驗證流程登入其電視提供者帳戶,但使用者的電視提供者驗證權杖TTL已通過。
    • 使用者已在裝置系統層級或透過一般驗證流程登入其電視提供者帳戶,但使用者與應用程式的電視提供者整合已透過Adobe Primetime TVE Dashboard停用。
    • 使用者已在裝置系統層級登入其電視提供者帳戶,但使用者使用應用程式的電視提供者單一登入已透過Adobe Primetime TVE Dashboard停用。
    • 使用者已在裝置系統層級登入其TV提供者帳戶,但使用者的TV提供者許可權已遭拒。
    • 使用者已在裝置系統層級登入其TV提供者帳戶,但使用者的TV提供者許可權未決定於應用程式。
    • 使用者已在裝置系統層級登入其電視提供者帳戶,但AccessEnabler iOS/tvOS SDK與視訊訂閱者帳戶架構之間的通訊發生錯誤。

    重要: ​此第三個步驟將會觸發​ setAuthenticationStatus ​回呼,其中​ 狀態 ​等於1,若上述​ 全部為false。

  4. 若先前的驗證狀態檢查觸發了​ setAuthenticationStatus ​回呼,且​ 狀態 ​等於0,應用程式將必須初始化驗證

    專業秘訣: ​實作下列其中一個AccessEnabler iOS/tvOS SDK API getAuthenticationgetAuthentication:filter

    重要: ​如果下列其中一項​ 為true,此第四個步驟可能會觸發Apple SSO工作流程專屬的進階錯誤碼

    • VSA403 — 應用程式拒絕使用者的TV提供者許可權。
    • VSA404 — 應用程式未決定使用者的TV提供者許可權。
    • VSA503 - AccessEnabler iOS/tvOS SDK與視訊訂閱者帳戶架構之間的通訊發生錯誤。
    • N003 — 使用者從Apple MVPD選擇器中選取[其他電視提供者]選項。
    • N004 — 使用者從Apple MVPD選擇器選取電視提供者,但目前的要求者不支援該電視提供者(整合或停用單一登入)。
    • N005 — 使用者決定取消一般MVPD選擇器或Apple MVPD選擇器。

    重要: ​此第四個步驟將遞補為一般驗證流程,觸發上述進階錯誤碼displayProviderDialog回呼​ one,若上述其中一個為true

    重要: ​此第四個步驟將退回至一般驗證流程,方法是觸發navigateToUrlnavigateToUrl:useSVC回呼及上述進階錯誤碼中的​ none,以防使用者選取不支援Apple SSO,但存在於Apple MVPD選擇器中的電視提供者。

    專業秘訣: AccessEnabler iOS/tvOS SDK會無訊息地呼叫setSelectedPrrovder API,以防使用者選取的電視提供者不支援Apple SSO,但存在於Apple MVPD選擇器中。

    重要: ​此第四個步驟會嘗試以無訊息方式交換Apple SSO設定檔以取得Adobe驗證Token,前提是​ 以上皆為false ​且​ 以下皆為true

    • 使用者的電視提供者許可權已授予應用程式。
    • 使用者已登入/目前正在裝置系統層級登入其電視提供者帳戶。
    • AccessEnabler iOS/tvOS SDK從視訊訂閱者帳戶架構收到使用者的電視提供者識別碼。
    • 使用者的電視提供者與應用程式的整合可透過Adobe Primetime TVE Dashboard啟用。
    • 使用者透過應用程式的電視提供者單一登入功能可透過Adobe Primetime TVE控制面板啟用。
    • 使用者的電視提供者不會透過Adobe Primetime TVE Dashboard降級。
    • AccessEnabler iOS/tvOS SDK從視訊訂閱者帳戶架構收到使用者的電視提供者SAML回應。

專業秘訣: ​此第四個步驟將會觸發​ setAuthenticationStatus ​回呼,不論​ 狀態 ​結果為何,因為驗證是由應用程式明確啟動。

中繼資料 Metadata

應用程式可以選擇使用AccessEnabler iOS/tvOS SDK的"tokenSource" 使用者中繼資料 API,判斷是否因為透過平台SSO登入而發生驗證。

    ...
    accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
    ...

登出 Logout

視訊訂閱者帳戶架構未提供API以程式方式登出已在裝置系統層級登入其電視提供者帳戶的人員。 因此,若要讓登出完全生效,使用者必須從iOS/iPadOS上的​ Settings -> TV Provider ​或tvOS上的​ Settings -> Accounts -> TV Provider ​明確登出。 使用者可以使用的另一個選項,是從特定應用程式設定區段(TV提供者許可權存取)撤銷存取使用者訂閱資訊的許可權。

TIP
秘訣: ​透過AccessEnabler iOS/tvOS SDK 登出 API實作此專案。
TIP
專業秘訣: ​請依照下列步驟進行tvOS實作。
TIP
專業秘訣: ​請依照下列步驟實作iOS/iPadOS。
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b