Apple SSO クックブック(iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk
概要 Introduction
Adobe Primetime Authentication AccessEnabler iOS/tvOS SDK は、Apple SSO ワークフローと呼ばれるワークフローを通じて、iOS、iPadOS、tvOS で動作するクライアントアプリケーションのエンドユーザーに対して、Platform Single Sign-On (SSO)認証をサポートできます。
このドキュメントは、既存の AccessEnabler iOS/tvOS SDK ドキュメントの拡張として機能します。このドキュメントについては こちらを参照してください。
クックブック Cookbook
Apple SSO のユーザーエクスペリエンスを活用するには、AccessEnabler iOS/tvOS SDK を組み込み、以下に示す一連のヒントに従う必要があります。
前提条件 Prerequisites
権限
Settings -> TV Provider
または tvOS の Settings -> Accounts -> TV Provider
のセクションにアクセスして、アプリの設定(TV プロバイダーの権限へのアクセス)を変更することができます。Settings -> TV Provider
または tvOS の Settings -> Accounts -> TV Provider
のセクションにアクセスして、アプリの設定(TV プロバイダーの権限へのアクセス)を変更することができます。 ...
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 ピッカーが開こうとしたときにトリガーされるコールバック。
- dismissTVProviderDialog - Apple MVPD ピッカーが閉じようとしたときにトリガーされるコールバック。
エラーレポート
- N003 - Appleの MVPD ピッカーから「その他の TV プロバイダー」オプションを選択した。
- N004 – 現在のリクエスターでサポートされていない(統合またはシングルサインオンが無効になっている)Apple MVPD ピッカーからテレビプロバイダーを選択しました。
- N005 – 通常の MVPD ピッカーまたはApple MVPD ピッカーをキャンセルすることにしました。
- VSA403 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が拒否されました。
- VSA404 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が不明です。
- VSA503 - ビデオ サブスクライバ アカウントのメタデータ要求に失敗しました。詳細なコンテキストが message フィールドに提供されています。
- AAPL / APPL_ERROR - ビデオ購読者のアカウントメタデータのリクエストに失敗しました。詳細コンテキストが「details」フィールドに表示されます。
認証 Authentication
-
アプリケーションは、AccessEnabler iOS/tvOS SDK を 初期化する必要があります。
-
アプリケーションは、 現在の要求者識別子を設定する必要があります。
重要: 次のいずれかが当てはまる場合、この 2 番目の手順では、Apple SSO ワークフローに固有の 🔗 高度なエラーコード をトリガーする場合があります。
- VSA403 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が拒否されました。
- VSA404 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が不明です。
- APPL - AccessEnabler iOS/tvOS SDK とビデオ購読者アカウント フレームワーク間の通信でエラーが発生しました。
この 2 番目の手順では、上記のすべてが false かつ 以下のすべてが true の場合に、Apple SSO プロファイルをAdobe認証トークンとサイレントに交換しようとします。
- ユーザーの TV プロバイダー権限がアプリケーションに付与されます。
- ユーザーは、デバイス システム レベルで TV Provider アカウントにサインインしています。
- AccessEnabler iOS/tvOS SDK は、ビデオ加入者アカウント フレームワークからユーザーの TV プロバイダー識別子を受信しました。
- アプリケーションと連携するユーザーの TV プロバイダーの統合は、Adobe Primetime TVE Dashboard を介して有効になります。
- このアプリでのユーザーの TV プロバイダーのシングルサインオンは、Adobe Primetime TVE ダッシュボードを通じて有効になります。
- ユーザーの TV プロバイダは、Adobe Primetime TVE Dashboard を使用しても劣化しない。
- AccessEnabler iOS/tvOS SDK は、ビデオ加入者アカウント フレームワークからユーザのテレビ プロバイダ SAML 応答を受信しました。
ヒント: この 2 番目の手順では、setRequestorComplete コールバック以外のコールバックはトリガーされません。
-
アプリケーションは、 認証ステータスを確認する必要があります。
重要: 次のいずれかが当てはまる場合、この 3 番目の手順では、Apple SSO ワークフローに固有の 🔗 高度なエラーコード をトリガーする場合があります。
- *VSA403 - ユーザーは、次の場所で TV Provider アカウントにサインインしています:
デバイスのシステム レベルですが、ユーザーのテレビ プロバイダのアクセス許可は
申請が拒否されました。 - *VSA404 - ユーザーは、次の場所で TV Provider アカウントにサインインしています:
デバイスのシステム レベル、ただしユーザーのテレビ プロバイダのアクセス許可
アプリケーションに対して未決定です。 - *APPL_ERROR - ユーザーが TV プロバイダーにサインインしている
デバイスのシステムレベルでの説明ですが、
AccessEnabler iOS/tvOS SDK およびビデオ加入者アカウント
フレームワークでエラーが発生しました。
重要: この 3 番目の手順では、status🔗 が 0 に等しい setAuthenticationStatus コールバックを、次のいずれかが true である 場合にトリガーします。
- ユーザーは、デバイス システム レベルまたは通常の認証フローで TV Provider アカウントにサインインしていません。
- ユーザーは、デバイスシステムレベルまたは通常の認証フローを通じて TV プロバイダーアカウントにログインしますが、ユーザーの TV プロバイダー認証トークン TTL は合格しています。
- ユーザーは、デバイス システム レベルまたは通常の認証フローを使用して TV Provider アカウントにサインインしますが、アプリケーションとのユーザーの TV Provider 統合は、Adobe Primetime TVE Dashboard を使用して無効になります。
- ユーザーはデバイス システム レベルで TV Provider アカウントにサインインしますが、Adobe Primetime TVE Dashboard を使用してユーザーの TV Provider Single Sign-On が無効になります。
- ユーザーはデバイス システム レベルで TV Provider アカウントにサインインしていますが、アプリケーションに対するユーザーの TV Provider 権限が拒否されています。
- ユーザーはデバイス システム レベルで TV Provider アカウントにサインインしていますが、そのアプリケーションに対するユーザーの TV Provider 権限は未決定です。
- ユーザーはデバイス システム レベルで TV Provider アカウントにサインインしていますが、AccessEnabler iOS/tvOS SDK とビデオ加入者アカウント フレームワーク間の通信でエラーが発生しました。
重要: この 3 番目の手順では、上記のすべてが false である場合に備えて、 status *が 1 に等しい setAuthenticationStatus コールバックをトリガーします。*
- *VSA403 - ユーザーは、次の場所で TV Provider アカウントにサインインしています:
-
以前の認証ステータスチェックで status が 0 に等しい setAuthenticationStatus コールバックがトリガーされた場合、アプリケーションでは 認証の初期化 が必要になります。
ヒント: 次の AccessEnabler iOS/tvOS SDK API getAuthentication または getAuthentication:filter のいずれかを実装します。
重要: この 4 番目の手順では、 次のいずれかが当てはまる場合、Apple SSO ワークフローに固有の 高度なエラーコード をトリガーにすることができます。
- VSA403 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が拒否されました。
- VSA404 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が不明です。
- VSA503 - AccessEnabler iOS/tvOS SDK とビデオ購読者アカウント フレームワーク間の通信でエラーが発生しました。
- N003 - Appleの MVPD ピッカーから「その他の TV プロバイダー」オプションを選択した。
- N004 – 現在のリクエスターでサポートされていない(統合またはシングルサインオンが無効になっている)Apple MVPD ピッカーからテレビプロバイダーを選択しました。
- N005 – 通常の MVPD ピッカーまたはApple MVPD ピッカーをキャンセルすることにしました。
重要: この 4 番目の手順では、上記の 🔗 高度なエラーコード のいずれかが true である場合に、上記の displayProviderDialog コールバックと one をトリガーして、通常の認証フローにフォールバックします
重要: この 4 番目の手順では、Apple SSO をサポートしていないがApple MVPD ピッカーに存在する TV プロバイダーを選択した場合、navigateToUrl または navigateToUrl:useSVC callback および none 上記の 高度なエラーコードをトリガーして、通常の認証フローにフォールバックします。
ヒント: AccessEnabler iOS/tvOS SDK は、Apple MVPD ピッカーに存在するテレビ プロバイダーを選択した場合に、setSelectedProvder API をサイレントに呼び出します。このプロバイダーはApple SSO をサポートしていませんが、
重要: この 4 番目の手順では、上記のすべてが false かつ 以下のすべてが true の場合に、Apple SSO プロファイルをAdobe認証トークンとサイレントに交換しようとします。
- ユーザーの TV プロバイダー権限がアプリケーションに付与されます。
- ユーザーはサインインしています/現在、デバイス システム レベルで TV Provider アカウントにサインインしています。
- AccessEnabler iOS/tvOS SDK は、ビデオ加入者アカウント フレームワークからユーザーの TV プロバイダー識別子を受信しました。
- アプリケーションと連携するユーザーの TV プロバイダーの統合は、Adobe Primetime TVE Dashboard を介して有効になります。
- このアプリでのユーザーの TV プロバイダーのシングルサインオンは、Adobe Primetime TVE ダッシュボードを通じて有効になります。
- ユーザーの TV プロバイダは、Adobe Primetime TVE Dashboard を使用しても劣化しない。
- AccessEnabler iOS/tvOS SDK は、ビデオ加入者アカウント フレームワークからユーザのテレビ プロバイダ SAML 応答を受信しました。
ヒント: この 4 番目の手順では、トリガーがアプリケーションによって明示的に開始されたので、status🔗 の結果に関係なく、setAuthenticationStatus コールバックを認証します。
メタデータ Metadata
AccessEnabler iOS/tvOS SDK の「tokenSource」user metadata API を使用して、Platform SSO を使用したログインの結果、認証が発生したかどうかを判断できます。
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
ログアウト Logout
ビデオ購読者アカウントフレームワークには、デバイスシステムレベルで TV プロバイダーアカウントにログインしたユーザーをプログラムでログアウトする API はありません。 そのため、ログアウトを完全に有効にするには、エンドユーザーはiOS/iPadOS の Settings -> TV Provider
または tvOS の Settings -> Accounts -> TV Provider
から明示的にログアウトする必要があります。 ユーザーが持つもう 1 つのオプションは、特定のアプリケーション設定セクション(TV プロバイダーの権限アクセス)からユーザーの購読情報にアクセスするための権限を取り消すことです。
- アプリケーションは、AccessEnabler iOS/tvOS SDK から ログアウトを開始する必要があります。 これは、MVPD 側でのセッションのクリーンアップを容易にするものではありません。
- アプリケーションは、VSA203 ステータスコードがトリガーされた場合にのみ、tvOS で
Settings -> Accounts -> TV Provider
から明示的にログアウトするようにユーザーに指示またはプロンプトを表示する必要がありす。
- アプリケーションは、AccessEnabler iOS/tvOS SDK から ログアウトを開始する必要があります。 これにより、MVPD 側のセッションクリーンアップが容易になります。
- VSA203 ステータスコードがトリガーされた場合に限り、iOS/iPadOS 上で
Settings -> TV Provider
から明示的にログアウトするようにユーザーに指示またはプロンプトを表示する必要がありす。