@amazon-devices/tve-adobe-sso-enabler
TVE向けKepler Adobe SSO Enabler APIは、サードパーティのTV Everywhere(TVE)アプリでローカルテレビ加入者の認証、承認、権限の検証を実行するための機能を提供します。Adobeのソリューションに関する詳細なドキュメントについては、AdobeのウェブサイトのREST API V2 - API - 概要を参照してください。
Adobeが提供するシングルサインオン(SSO)機能を使用するKepler上のTVEアプリでは、TveAdobeSsoEnabler APIを使用して「Adobe-Subject-Token」を取得できます。このトークンは、AdobeのドキュメントプラットフォームIDフローを使用したシングルサインオンで説明されているように、Adobeに対して行われるAPI呼び出しに関連付けることができます。
開始手順
前提条件
- Adobeのドキュメントに従って、認証、承認、権限の検証フロー用のアプリを作成します。
- Amazonのソリューションアーキテクトと協力して、アプリのパッケージIDでSSOトークンを取得することを認可します。
Authorization
このAPIによって提供されるSSOトークンには、Amazonソリューションアーキテクトによって承認されたアプリのみがアクセスできます。アプリがAmazonのソリューションアーキテクトによって承認された後、アプリ開発者はAPIにアクセスしてSSOトークンを取得するまでに、最大24時間待たなければならない場合があります。
セットアップ
-
package.jsonファイルの
dependenciesセクションに、以下のライブラリ依存関係を追加します。"@amazon-devices/tve-adobe-sso-enabler": "~0.0.4", -
manifest.tomlに、以下の権限を追加します。
[wants] [[wants.module]] id = /com.amazon.tve.adobe_sso_enabler@IAdobeSsoEnabler [[wants.service]] id = "com.amazon.tve.sso.companion.service"
使用方法
-
TveAdobeSsoEnablerをアプリコードにインポートします。import { TveAdobeSsoEnabler } from '@amazon-devices/tve-adobe-sso-enabler'; -
SSOトークンを取得して、トークンを使用するか、エラーを処理します。
TveAdobeSsoEnabler.getSsoToken().then((token: string) => { // トークンを処理します。 }).catch((error: string) => { // エラーを処理します。 });
注: SSOトークンを使用しなくても、アプリはAdobeのAPIで認証できます。SSOトークンがないか、正しくない場合、シングルサインオン機能は動作しません。つまり、ユーザーはすべてのTVEアプリに個別にログインする必要があります。
一般的なユースケース
次のサンプルコードは、Adobeのドキュメントの説明に従って、SSOトークンを使用してプロフィールを取得する方法を示しています。アプリは、Adobeにアプリを登録する際にPROVIDER_NAMEとMVPD_NAMEを取得します。SSOトークン(SsoTokenフィールドに格納されています)はGetProfilesParamsオブジェクトの一部であり、TveAdobeSsoEnabler.getSsoToken()を呼び出すことによって取得されます。
const ADOBE_GET_PROFILES_PATH = `/api/v2/%PROVIDER_NAME%/profiles/%MVPD_NAME%`;
const ADOBE_BASE_URL = 'https://sp.auth.adobe.com';
export interface GetProfilesParams {
accessToken: string;
ssoToken: string;
deviceIdentifier: string;
}
export interface GetProfilesResponse {
profiles: Record<string, Profile>;
}
export interface Profile {
notBefore: number;
notAfter: number;
issuer: string;
type: string;
attributes: Record<string, Record<string, string>>;
}
export async function getProfiles(params: GetProfilesParams) {
const url = new URL(ADOBE_GET_PROFILES_PATH, ADOBE_BASE_URL);
const response = await fetch(url, {
method: 'GET',
headers: {
Accept: 'application/json',
'Adobe-Subject-Token': params.ssoToken,
'AP-Device-Identifier': `fingerprint ${params.deviceIdentifier}`,
Authorization: `Bearer ${params.accessToken}`,
},
});
if (!response.ok) {
throw new Error('Bad response');
}
const payload: GetProfilesResponse = await response.json();
return payload;
}
トラブルシューティング
TveAdobeSsoEnabler.getSsoToken()関数を呼び出した後、アプリに「«パッケージID» is not allowed」というエラーが表示された場合、アプリにはSSOトークンを取得する権限がありません。アプリ開発者は、Amazonのソリューションアーキテクトと協力してアプリのパッケージIDの承認を受け、24時間待ってからトークンの取得を再試行する必要があります。
関連トピック
Adobe REST API V2 APIの概要(Adobeドキュメント)
モジュール
Last updated: 2025年10月2日

