(レガシー) Apple SSO クックブック (iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk

IMPORTANT
このページのコンテンツは、情報提供のみを目的として提供されています。 このAPIを使用するには、Adobeの現在のライセンスが必要です。 無断使用は認められません。
IMPORTANT
製品のお知らせ ページに集計されている最新のAdobe Pass認証製品のお知らせと廃止予定について、常に情報を得てください。

Adobe Pass Authentication AccessEnabler iOS/tvOS SDKは、iOS、iPadOS、またはtvOSで動作するクライアントアプリケーションのエンドユーザー向けのパートナーシングルサインオン(SSO)をサポートしています。

このドキュメントは、既存のAccessEnabler iOS/tvOS SDK ドキュメントの拡張機能として機能します。このドキュメントは、こちらにあります。

Cookbook apple-sso-cookbook-iostvos-sdk-cookbook

Apple SSO ユーザーエクスペリエンスを活用するには、AccessEnabler iOS/tvOS SDKを統合し、以下に示す一連の手順に従う必要があります。

前提条件 apple-sso-cookbook-iostvos-sdk-prerequisites

権限 apple-sso-cookbook-iostvos-sdk-permission

TIP
プロのヒント: ストリーミングアプリケーションは、デバイスのカメラやマイクへのアクセスを提供するのと同様に、デバイスレベルで保存されたユーザーのサブスクリプション情報へのアクセスをリクエストする必要があります。この場合、ユーザーはアプリケーションに続行する権限を付与する必要があります。 この権限は、AppleのVideo Subscriber Account Frameworkを使用してアプリケーションごとに要求する必要があり、デバイスはユーザーの選択内容を保存します。
TIP
Pro ヒント: Apple シングルサインオンのユーザーエクスペリエンスのメリットを説明することで、サブスクリプション情報へのアクセスを拒否するユーザーにインセンティブを提供することをお勧めしますが、アプリケーションの設定(TV プロバイダーのアクセス権)に移動するか、iOSおよびiPadOSの​*Settings -> TV Provider​またはtvOSの​Settings -> Accounts -> TV Provider*​に移動することで、ユーザーの判断を変えることができます。
TIP
プロのヒント: ストリーミングアプリケーションは、アプリケーションがフォアグラウンド状態に入ったときに、ユーザーの権限を要求できます。ユーザー認証を必要とする前に、任意の時点で​ ユーザーの購読情報にアクセスする権限をアプリケーションが確認できるからです。
TIP
Pro ヒント:​お客様がサブスクリプション情報へのアクセスを許可しない場合、またはビデオ購読者アカウントフレームワークとの通信が失敗した場合、AccessEnabler iOS/tvOS SDKは通常の認証フローにフォールバックします。
    ...
    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

TIP
プロ向けのヒント: Apple SSO ワークフローに固有の​ コールバック ​の次のリストを実装します。
  • presentTVProviderDialog - Apple MVPD ピッカーが開くときにコールバックがトリガーされます。
  • dismissTVProviderDialog - Apple MVPD ピッカーが閉じるときにコールバックがトリガーされます。

エラー報告 apple-sso-cookbook-iostvos-sdk-error-reporting

TIP
プロ向けのヒント: Apple SSO ワークフローに固有の詳細エラーコード ​の次のリストを実装します。
  • N003 - Apple MVPD ピッカーから「その他のTV プロバイダー」オプションを選択しました。
  • N004 - Apple MVPD ピッカーからTV プロバイダーを選択しましたが、現在の依頼者はサポートしていません(統合またはシングルサインオンが無効)。
  • N005 – 通常のMVPD ピッカーまたはApple MVPD ピッカーの解約を決定しました。
  • VSA403 - ユーザーのTV プロバイダー権限がアプリケーションに対して拒否されました。
  • VSA404 - ユーザーのTV プロバイダー権限がアプリケーションに対して決定されていません。
  • VSA503 - ビデオ購読者アカウントのメタデータ要求が失敗しました。詳細については、メッセージ フィールドを参照してください。
  • AAPL / APPL_ERROR - ビデオ購読者アカウントのメタデータ要求が失敗しました。詳細については、詳細 フィールドを参照してください。

認証 apple-sso-cookbook-iostvos-sdk-authentication

TIP
ヒント: iOS/iPadOS/tvOSの実装については、次の手順に従ってください。
  1. AccessEnabler iOS/tvOS SDKを初期化する必要があります。

  2. アプリケーションは、現在の依頼者識別子🔗を設定する必要があります。

    重要:​この2番目の手順では、Apple SSO ワークフローに固有の高度なエラーコード ​をトリガーする可能性があります。次のいずれか​ がtrue ​の場合です。

    • VSA403 - ユーザーのTV プロバイダー権限がアプリケーションに対して拒否されました。
    • VSA404 - ユーザーのTV プロバイダー権限がアプリケーションに対して決定されていません。
    • APPL - AccessEnabler iOS/tvOS SDKとビデオ サブスクライバーのアカウント フレームワーク間の通信でエラーが発生しました。

    この2番目の手順では、上記の​ すべてがfalse ​で、すべてがtrue​の場合、Apple SSO プロファイルをAdobe認証トークンとサイレントに交換しようとします。

    • ユーザーのTV プロバイダー権限がアプリケーションに付与されます。
    • ユーザーは、デバイスシステムレベルでTV プロバイダーアカウントにログインしています。
    • AccessEnabler iOS/tvOS SDKは、ビデオ加入者アカウントフレームワークからユーザーのTV プロバイダーIDを受け取りました。
    • ユーザーのTV プロバイダーとアプリケーションの統合は、Adobe Primetime TVE ダッシュボードを通じて有効になります。
    • アプリケーションを使用したユーザーのTV プロバイダーシングルサインオンは、Adobe Primetime TVE ダッシュボードを通じて有効になります。
    • ユーザーのTV プロバイダーは、Adobe Primetime TVE ダッシュボードを通じて劣化しません。
    • AccessEnabler iOS/tvOS SDKは、ビデオ加入者アカウントフレームワークからユーザーのTV プロバイダーのSAML応答を受け取りました。

    Pro ヒント:​この2番目の手順では、アプリケーションによってトリガーが明示的に開始されていないため、setRequestorComplete コールバック以外のコールバックは認証されません。

  3. アプリケーションでは、認証ステータスを確認する必要があります。

    重要:​この3番目の手順では、Apple SSO ワークフローに固有の詳細エラーコード ​がトリガーされる可能性があります。次のいずれか​ がtrue ​の場合です。

    • *VSA403 - ユーザーは次の場所でTV プロバイダーアカウントにサインインしています
      デバイスシステムレベルですが、ユーザーのTV プロバイダー権限は
      アプリケーションに対して拒否されました。
    • *VSA404 - ユーザーは次の場所でTV プロバイダーアカウントにサインインしています
      デバイスのシステムレベルではなく、ユーザーのTV プロバイダー権限
      アプリケーションに対して未決定です。
    • *APPL_ERROR - ユーザーはTV プロバイダーにサインインしています
      アカウントはデバイスシステムレベルで使用されますが、アプリ内の
      accessEnabler iOS/tvOS SDKおよびビデオ購読者アカウント
      フレームワークでエラーが発生しました。

    重要:​この3番目の手順では、setAuthenticationStatus コールバックを​ status ​が0に等しい状態でトリガーします。次の​ のいずれかがtrue ​の場合です。

    • ユーザーは、デバイスシステムレベルまたは通常の認証フローを通じて、TV プロバイダーアカウントにログインしていません。
    • ユーザーは、デバイスシステムレベルまたは通常の認証フローを通じてTV プロバイダーのアカウントにログインしていますが、ユーザーのTV プロバイダー認証トークン TTLは合格しています。
    • ユーザーは、デバイスシステムレベルまたは通常の認証フローを通じてTV プロバイダーアカウントにログインしていますが、Adobe Primetime TVE ダッシュボードを使用して、ユーザーのTV プロバイダーとアプリケーションとの統合は無効になっています。
    • ユーザーはデバイスシステムレベルでTV プロバイダーアカウントにログインしていますが、アプリケーションを使用したユーザーのTV プロバイダーシングルサインオンは、Adobe Primetime TVE ダッシュボードを使用して無効になっています。
    • ユーザーはデバイスシステムレベルでTV プロバイダーアカウントにログインしていますが、ユーザーのTV プロバイダー権限はアプリケーションに対して拒否されます。
    • ユーザーはデバイスシステムレベルでTV プロバイダーアカウントにログインしていますが、ユーザーのTV プロバイダー権限はアプリケーションに対して決定されていません。
    • ユーザーはデバイスシステムレベルでTV プロバイダーアカウントにログインしていますが、AccessEnabler iOS/tvOS SDKとビデオ加入者アカウントフレームワークの間でエラーが発生しました。

    重要:​この3番目の手順では、setAuthenticationStatus コールバックを​ status ​が1に等しい状態でトリガーします。上記の​すべてがfalseの場合です。

  4. 以前の認証ステータス確認で​setAuthenticationStatus コールバックがトリガーされ、status​が0に等しい場合、アプリケーションは認証を初期化する必要があります。

    Pro ヒント:​次のいずれかのAccessEnabler iOS/tvOS SDK API getAuthenticationまたはgetAuthentication:filterを実装します。

    重要:​この4つ目の手順では、Apple SSO ワークフローに固有の高度なエラーコード ​をトリガーする可能性があります。次の​ のいずれかがtrue ​の場合です。

    • VSA403 - ユーザーのTV プロバイダー権限がアプリケーションに対して拒否されました。
    • VSA404 - ユーザーのTV プロバイダー権限がアプリケーションに対して決定されていません。
    • VSA503 - AccessEnabler iOS/tvOS SDKとビデオ サブスクライバーのアカウント フレームワーク間の通信でエラーが発生しました。
    • N003 - Apple MVPD ピッカーから「その他のTV プロバイダー」オプションを選択しました。
    • N004 - Apple MVPD ピッカーからTV プロバイダーを選択しましたが、現在の依頼者はサポートしていません(統合またはシングルサインオンが無効)。
    • N005 – 通常のMVPD ピッカーまたはApple MVPD ピッカーの解約を決定しました。

    重要:​この4番目のステップは、上記の高度なエラーコード ​のうちdisplayProviderDialog コールバックと​ one ​をトリガーすることで、通常の認証フローにフォールバックします。上記のいずれかが​ true ​の場合です。

    重要:​この4番目のステップは、上記の高度なエラーコード ​のnavigateToUrlまたはnavigateToUrl:useSVC コールバックと​ none ​をトリガーすることで、通常の認証フローにフォールバックします。これは、ユーザーがApple SSOをサポートしていないが、Apple MVPD ピッカーに存在するTV プロバイダーを選択した場合です。

    Pro ヒント: AccessEnabler iOS/tvOS SDKは、ユーザーがApple SSOをサポートしていないがApple MVPD ピッカーに存在するTV プロバイダーを選択した場合、setSelectedProvider APIをサイレントに呼び出します。

    重要:​この4番目の手順では、上記の​ すべてがfalse ​で、次のすべてがtrue である場合に、Apple SSO プロファイルをAdobe認証トークンとサイレントに交換しようとします。

    • ユーザーのTV プロバイダー権限がアプリケーションに付与されます。
    • ユーザーは、デバイスシステムレベルでTV プロバイダーアカウントにサインインしています/現在ログインしています。
    • AccessEnabler iOS/tvOS SDKは、ビデオ加入者アカウントフレームワークからユーザーのTV プロバイダーIDを受け取りました。
    • ユーザーのTV プロバイダーとアプリケーションの統合は、Adobe Primetime TVE ダッシュボードを通じて有効になります。
    • アプリケーションを使用したユーザーのTV プロバイダーシングルサインオンは、Adobe Primetime TVE ダッシュボードを通じて有効になります。
    • ユーザーのTV プロバイダーは、Adobe Primetime TVE ダッシュボードを通じて劣化しません。
    • AccessEnabler iOS/tvOS SDKは、ビデオ加入者アカウントフレームワークからユーザーのTV プロバイダーのSAML応答を受け取りました。

    Pro ヒント:​この4番目のステップでは、アプリケーションによって明示的にトリガーが開始されたため、status​の結果に関係なく、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

Video Subscriber Account Frameworkでは、デバイス システム レベルでテレビ プロバイダーのアカウントにサインインしたユーザーをプログラムでログアウトするためのAPIが提供されていません。 したがって、ログアウトを完全に有効にするには、iOS/iPadOSの​ Settings -> TV Provider ​から明示的にログアウトするか、tvOSの​ Settings -> Accounts -> TV Provider ​から明示的にログアウトする必要があります。 ユーザーが持つもう1つのオプションは、特定のアプリケーション設定セクションからユーザーの購読情報にアクセスする権限を取り消すことです(テレビプロバイダーの権限アクセス)。

TIP
ヒント: AccessEnabler iOS/tvOS SDK ​ ログアウト ​ APIを使用して、これを実装します。
TIP
Pro ヒント: tvOSの実装については、次の手順に従ってください。
TIP
Pro ヒント: iOS/iPadOSの実装については、次の手順に従ってください。
recommendation-more-help
pass-help-authentication