REST API V2 チェックリスト rest-api-v2-checklist
- トピック:
- 認証
このドキュメントでは、Adobe Pass認証 REST API V2 を使用するクライアントアプリケーションを実装するプログラマー向けの必須要件と推奨事項を 1 か所にまとめています。
このドキュメントに従う必要があるのは、REST API V2 を実装する際に、受け入れ基準の一部と見なす必要があります。また、統合を成功させるために必要なすべての手順を実行するためのチェックリストとして使用する必要があります。
必須の要件 mandatory-requirements
1.登録段階 mandatory-requirements-registration-phase
REST API v2 呼び出しごとに新しいトークンをリクエストしないでください。アクセストークンは期限切れになった場合にのみ更新します。
2.設定フェーズ mandatory-requirements-configuration-phase
認証段階の前にMVPD(TV プロバイダー)を選択するように促す必要がある場合にのみ、設定応答を取得します。
次の場合、設定応答を取得する必要はありません。
- ユーザーは既に認証済みです。
- ユーザーには一時的なアクセスが提供されます。
- ユーザー認証の有効期限が切れているが、以前に選択したMVPDの購読者であることを確認するプロンプトをユーザーに表示できます。
ユーザーの有料テレビプロバイダー(MVPD)の選択内容を永続ストレージに保存して、以降のすべてのフェーズで使用できるようにします。
- 設定応答ストアから、ユーザーが選択したMVPD「id」を保存します。
- configuration response store から、ユーザーが選択したMVPD「displayName」を保存します。
- Configuration response store から、ユーザーが選択したMVPD「logoUrl」を保存します。
3.認証フェーズ mandatory-requirements-authentication-phase
次の条件でポーリングメカニズムを起動します。
プライマリ(画面)アプリケーション内で認証を実行
- プライマリ(ストリーミング)アプリケーションでは、ブラウザーコンポーネントがセッションエンドポイントリクエストの「redirectUrl」パラメーターに指定された URL を読み込んだ後、ユーザーが最終的な宛先ページに到達すると、ポーリングを開始する必要があります。
- プライマリ(ストリーミング)アプリケーションでは、ユーザーが認証プロセスを開始するとすぐに、つまり、セッションエンドポイントの応答を受信して認証コードをユーザーに表示した直後に、ポーリングを開始する必要があります。
次の条件でポーリングメカニズムを停止します。
認証に成功
- ユーザーのプロファイル情報は正常に取得され、ユーザーの認証ステータスが確認されるので、ポーリングは不要になりました。
認証セッションとコードの有効期限
- 認証セッションとコードの有効期限が切れると、ユーザーは認証プロセスを再開する必要があり、以前の認証コードを使用したポーリングは直ちに停止する必要があります。
新しい認証コードが生成されました
- ユーザーが新しい認証コードを要求すると、既存のセッションが無効になり、前の認証コードを使用したポーリングがすぐに停止されます。
次の条件でポーリングメカニズムの頻度を設定します。
プライマリ(画面)アプリケーション内で認証が実行され す。
- プライマリ(ストリーミング)アプリケーションは、3 ~ 5 秒以上ごとにポーリングする必要があります。
- プライマリ(ストリーミング)アプリケーションは、3~5 秒ごとにポーリングする必要があります。
パフォーマンスを向上させ、不要な REST API v2 呼び出しを最小限に抑えるために、ユーザーのプロファイル情報の一部を永続ストレージに保存します。
キャッシュは、次のプロファイル応答フィールドに焦点を当てる必要があります:
mvpd
- クライアントアプリケーションは、これを使用してユーザーが選択したテレビプロバイダーを追跡し、事前認証または認証フェーズ中にさらに使用できます。
- 現在のユーザープロファイルの有効期限が切れると、クライアントアプリケーションは記憶されているMVPDの選択内容を使用し、ユーザーに確認を求めることができます。
属性
- 様々なユーザーメタデータキー(zip、maxRating など)に基づいてユーザーエクスペリエンスをパーソナライズするために使用されます。
- ユーザーメタデータは認証フローが完了すると使用できるようになります。したがって、ユーザーメタデータ情報は既にプロファイル情報に含まれているため、クライアントアプリケーションはユーザーメタデータ情報を取得するために別のエンドポイントをクエリする必要はありません。
- MVPD(Charter など)や特定のメタデータ属性(householdID など)に応じて、特定のメタデータ属性は認証フェーズ中に更新される場合があります。 その結果、最新のユーザーメタデータを取得するために、クライアントアプリケーションが認証後にプロファイル API を再度クエリする必要が生じる場合があります。
4. (オプション)事前認証フェーズ mandatory-requirements-preauthorization-phase
監視および警告システムをバイパスするリスク。
再試行が必要な拡張エラーコードは限られていますが、ほとんどの場合、アクションフィールドで指定された代替解決策が必要です。
事前認証決定を取得するために実装された再試行メカニズムが無限ループを引き起こさず、再試行が適切な数(2-3 など)に制限されていることを確認します。
5.認証フェーズ mandatory-requirements-authorization-phase
メディアトークンが再生中に期限切れになり、ユーザーが次の再生リクエストを行うときに(新規)メディアトークンを含む新しい認証決定をリクエストした場合でも、同じリソースまたは異なるリソースに対するものであっても、ストリームが中断されることなく続行することを許可します。
長時間実行されるライブストリームでは、コンテンツの一時停止、コマーシャルブレークの開始、MRSS の変更に伴うアセットレベルの設定の変更など、ビデオ操作に続いて、新しい承認決定をリクエストする場合があります。
監視および警告システムをバイパスするリスク。
再試行が必要な拡張エラーコードは限られていますが、ほとんどの場合、アクションフィールドで指定された代替解決策が必要です。
認証決定を取得するために実装された再試行メカニズムが無限ループを引き起こさず、再試行が適切な数(2-3 など)に制限されていることを確認します。
6. ログアウトフェーズ mandatory-requirements-logout-phase
ログアウト API を実装して、ユーザーが手動でログアウトし、認証済みプロファイルを終了して、削除されたプロファイルごとに指定された REST API v2 アクション名に従えるようにします。
- ログアウトエンドポイントをサポートする MVPD の場合、クライアントアプリケーションは、ユーザーエージェントで指定された「url」に移動する必要があります。
- 「appleSSO」タイプのプロファイルの場合、クライアントアプリケーションは、パートナーレベル(Appleのシステム設定)からもログアウトするようにユーザーをガイドする必要があります。
7. パラメーターとヘッダー mandatory-requirements-parameters-headers
デバイスの代わりにサーバーからリクエストが送信された場合でも、AP-Device-Identifier ヘッダー値には、実際のストリーミングデバイスの識別子が反映されている必要があります。
デバイスの代わりにサーバーからリクエストが送信された場合でも、X-Device-Info ヘッダー値には、実際のストリーミングデバイス情報が反映されている必要があります。
さらに、ストリーミングデバイス connectionIp や connectionPort などの一部のフィールドは、Spectrum のホームベース認証などの機能に必須です。
ハードウェア ID のないプラットフォームの場合、アプリケーション属性から一意の ID を生成して保持します。
8. エラー処理 mandatory-requirements-error-handling
再試行が必要な拡張エラーコードは限られていますが、ほとんどの場合、アクションフィールドで指定された代替解決策が必要です。
拡張エラーコード - REST API V2 ドキュメントにリストされているほとんどの拡張エラーコードは、アプリケーションを起動する前の開発段階で正しく処理すれば、完全に防止できます。
拡張エラーコードの処理が欠落しているために、クライアントアプリケーションが誤動作するリスクがあります。その結果、不明なエラーメッセージが表示されたり、誤ったユーザーガイダンスが表示されたり、誤ったフォールバック動作が発生したりします。
再試行を保証するのは HTTP エラーコードの数が限られていますが、ほとんどの場合、別の解決策が必要です。
ほとんどの HTTP エラー応答は、アプリケーションを起動する前の開発フェーズで正しく処理すれば、完全に防ぐことができます。
拡張エラーコードの処理が欠落しているために、クライアントアプリケーションが誤動作するリスクがあります。その結果、不明なエラーメッセージが表示されたり、誤ったユーザーガイダンスが表示されたり、誤ったフォールバック動作が発生したりします。
9. テスト mandatory-requirements-testing
公式のAdobe Pass認証非実稼動環境を使用して、アプリケーションを開発およびテストします。
- 前生産
- リリース – ステージング
リリース版の実稼働を開始する前に、これらの環境で徹底的な品質保証(QA)を実行します。
クライアントアプリケーションは、実稼動以外の環境で最初にエンドツーエンドの検証を完了しない限り、リリース実稼動に進んではなりません。
短く効率的なデバッグパスがないと、Adobe サポートおよびエンジニアリングがすぐに介入できなくなる可能性があります。
推奨プラクティス recommended-practices
1.登録段階 recommended-practices-registration-phase
HTTP 401 「未認証」エラーを処理する再試行メカニズムでは、最初にアクセストークンを更新してから元のリクエストを再試行するようにしてください。
2.設定フェーズ recommended-practices-configuration-phase
3.認証フェーズ recommended-practices-authentication-phase
セカンダリ(2 番目)アプリケーション(画面)でユーザー入力を通じて送信された認証コードを検証してから、次の条件で/api/v2/authenticate API を呼び出します。
セカンダリ(画面)アプリケーション内で実行される認証で、事前に選択された mvpd を使用 ます。
- 認証セッションの再開を利用する – POST /api/v2/{serviceProvider}/sessions/{code}
事前に選択された mvpd を使用せずに、セカンダリ(画面)アプリケーション内で認証を実行
- 認証セッションの取得を利用する – GET /api/v2/{serviceProvider}/sessions/{code}
指定された認証コードが正しく入力されなかった場合、または認証セッションが期限切れになった場合、クライアントアプリケーションにエラーが発生します。
クライアントアプリケーションビジネスで必要とされる次のような場合に、非基本フローをサポートします。
- アクセス・フローの低下(プレミアム機能)
- 一時的なアクセスフロー(プレミアム機能)
- シングルサインオンアクセスフロー(標準機能)
4. (オプション)事前認証フェーズ recommended-practices-preauthorization-phase
5.認証フェーズ recommended-practices-authorization-phase
6. ログアウトフェーズ recommended-practices-logout-phase
7. パラメーターとヘッダー recommended-practices-parameters-headers
DCR API を呼び出してアクセストークンを取得するために、REST API v1 のコードを再利用します
8. テスト recommended-practices-testing
デバイスとプラットフォームをまたいで、次の基本フローをテストします。
認証フロー
- プライマリアプリケーション(画面)認証のシナリオ
- セカンダリアプリケーション(画面)認証のシナリオ
(任意)事前認証フロー
- 許可の決定シナリオのテスト
- 拒否の決定シナリオのテスト
認証フロー
- 許可の決定シナリオのテスト
- 拒否の決定シナリオのテスト
ログアウトフロー
さらに、該当する場合は、他のアクセスフローをテストします。
- アクセス・フローの低下(プレミアム機能)
- 一時的なアクセスフロー(プレミアム機能)
- シングルサインオンアクセスフロー(標準機能)
上位のMVPD統合(最も広く使用されているプロバイダーをカバー)について説明します。
概要 summary
アクセストークンのキャッシュ
プロファイルの一部をキャッシュする
ビジネス要件の場合はサポートの最適化機能
ビジネス要件の場合はサポートの TempPass 機能
ビジネス要件の場合はシングルサインオン機能のサポート
再試行メカニズムの微調整
再試行メカニズムの微調整をリクエストした場合に、認証決定を取得します
メディアトークンの検証
HTTP エラー処理を実装