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
に移動することで、ユーザーの判断を変 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 ピッカーが開こうとしたときにトリガーされるコールバック。
- dismissTVProviderDialog - Apple MVPD ピッカーが閉じようとしたときにトリガーされるコールバック。
エラーレポート apple-sso-cookbook-iostvos-sdk-error-reporting
- N003 - Appleの MVPD ピッカーから「その他の TV プロバイダー」オプションを選択した。
- N004 – 現在のリクエスターでサポートされていない(統合またはシングルサインオンが無効になっている)Apple MVPD ピッカーからテレビプロバイダーを選択しました。
- N005 – 通常の MVPD ピッカーまたはApple MVPD ピッカーをキャンセルすることにしました。
- VSA403 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が拒否されました。
- VSA404 - アプリケーションに対するユーザーのテレビ プロバイダーのアクセス許可が不明です。
- VSA503 - ビデオ サブスクライバ アカウントのメタデータ要求に失敗しました。詳細なコンテキストが message フィールドに提供されています。
- AAPL / APPL_ERROR - ビデオ購読者のアカウントメタデータのリクエストに失敗しました。詳細コンテキストが「details」フィールドに表示されます。
認証 apple-sso-cookbook-iostvos-sdk-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 プロバイダーの統合は、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 プロバイダーの統合は、Adobe Primetime TVE Dashboard を介して有効になります。
- このアプリでのユーザーの TV プロバイダーのシングルサインオンは、Adobe Primetime TVE ダッシュボードを通じて有効になります。
- ユーザーの TV プロバイダは、Adobe Primetime TVE Dashboard を使用しても劣化しない。
- AccessEnabler iOS/tvOS SDK は、ビデオ加入者アカウント フレームワークからユーザのテレビ プロバイダ SAML 応答を受信しました。
ヒント: この 4 番目の手順では、トリガーがアプリケーションによって明示的に開始されたので、status🔗 の結果に関係なく、setAuthenticationStatus コールバックを認証します。
メタデータ apple-sso-cookbook-iostvos-sdk-metadata
AccessEnabler iOS/tvOS SDK の「tokenSource」user metadata API を使用して、パートナー SSO にログインした結果として認証が発生したかどうかを判断するオプションがあります。
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
ログアウト apple-sso-cookbook-iostvos-sdk-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
から明示的にログアウトするようにユーザーに指示またはプロンプトを表示する必要がありす。