Chrome ウェブストア API でサービス アカウントを使用する

Chrome ウェブストア API は、Google Cloud サービス アカウントを使用した認証をサポートしています。サービス アカウントは、サーバー間のやり取りを目的とした特別なアカウントです。CI/CD パイプラインやその他のバックエンド サービスなど、拡張機能の公開ワークフローを自動化するのに最適です。これにより、ユーザーが直接関与する OAuth フローを経由することなく API を使用できます。

サービス アカウントを Chrome ウェブストア デベロッパー ダッシュボードにリンクすると、パブリッシャー アカウントが所有するアイテムを管理する権限がサービス アカウントに付与されます。

セットアップ

まず、サービス アカウントを設定し、Chrome ウェブストア API へのアクセス権を付与します。

Chrome ウェブストア API を有効にする

  1. Google Cloud Console に移動します。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
    Google コンソールで新しいプロジェクトを作成します。
    Google コンソールで新しいプロジェクトを作成します。
  3. 検索バーに「Chrome ウェブストア API」と入力します。
  4. Chrome ウェブストア API を有効にします。

サービス アカウントを作成する

Google Cloud コンソールで新しいサービス アカウントを追加する。
Google Cloud コンソールで新しいサービス アカウントを追加する。

Google Cloud コンソールでサービス アカウントを作成します。この段階では、サービス アカウントに権限を追加する必要はありません。

デベロッパー ダッシュボードでサービス アカウントを追加する

Developer Dashboard で新しいサービス アカウントを追加する。
デベロッパー ダッシュボードで新しいサービス アカウントを追加する。

[アカウント] セクションのデベロッパー ダッシュボードでサービス アカウントのメールアドレスを追加して、サービス アカウントに Chrome ウェブストア API へのアクセス権を付与します。

アクセス トークンを取得する

Chrome ウェブストア API でサービス アカウントを使用するには、アプリケーションでサービス アカウントに関連付けられたアクセス トークンを取得する必要があります。アプリケーション コードの実行場所とセキュリティ設定に応じて、いくつかの方法があります。

サービス アカウントの権限借用

gcloud コマンドライン ツールを使用して、サービス アカウントの有効期間が短いアクセス トークンを取得できます。これは、多くの場合、ローカル開発または CLI アクセスに使用されます。

gcloud auth login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
gcloud config set project PROJECT_ID
gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT_EMAIL --scopes=https://www.googleapis.com/auth/chromewebstore
ACCESS_TOKEN=<The output from the last command>

次に、チュートリアルに示されているようにリクエストを行います。

JSON Web Token を使用する

また、JSON ウェブトークン(JWT)を使用して HTTP 経由で直接認証することもできます。Google Cloud コンソールでサービス アカウントの JSON キーを作成します。

Google Cloud コンソールのキー作成ダイアログ。
Google Cloud コンソールのキー作成ダイアログ。

次に、JWT を作成してアクセス トークンと交換する手順に沿って操作します。