@amazon-devices/tve-adobe-sso-enabler
TV Everywhere(TVE)向けKepler Adobe Single Sign-On(SSO)Enabler APIは、サードパーティのTVEアプリでローカルテレビ加入者の認証、承認、権限の検証を実行するための機能を提供します。Adobeのソリューションに関する詳細なドキュメントについては、AdobeのウェブサイトのREST API V2 - API - 概要を参照してください。
Adobeが提供するSSO機能を使用するKeplerのTVEアプリでは、TveAdobeSsoEnabler APIを使用して「Adobe-Subject-Token」を取得します。このトークンは、Adobeに対して行われたAPI呼び出しに関連付けることができます。詳細については、AdobeのドキュメントSingle Sign-on using platform identity flowsを参照してください。
開始の手順
前提条件
- Adobeのドキュメントに従って、認証、承認、権限の検証フロー用のアプリを作成します。
- Amazonのソリューションアーキテクトと連携して、アプリのパッケージIDによるSSOトークンの取得を承認します。
Authorization
Amazonソリューションアーキテクトによって承認されたアプリのみが、このAPIによって提供されるSSOトークンにアクセスできます。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月23日

