前提条件
開始する前に、以下を確認してください:- Administrator がサービスアカウントを作成し、Client Id とClient Secret を共有していること。これらの認証情報は、サービスアカウントの作成時に一度だけ表示されます。サービスアカウントの作成手順については、Service Accounts を参照してください。
- サービスアカウントに、データコネクションまたは仮想スキーマに対する権限が少なくとも 1 つ割り当てられていること。Administrator はEdit Service Account ページから権限を設定します。詳細については、権限とアクセス制御 を参照してください。
- サービスアカウントのステータスがActive であること。非アクティブなサービスアカウントは認証できません。
- クエリするコネクションがShared Authentication を使用していること。サービスアカウントは、そのコネクションに対する権限があっても、Per-User Authentication を使用するコネクションにはサインインできません。詳細については、サービスアカウントのコネクション要件 を参照してください。
Client Secret をお持ちでない場合は、Administrator に依頼してIdentities ページの Service Accounts タブからサービスアカウントの認証情報をローテーションしてもらってください。新しいシークレットは認証情報のローテーション直後に表示されます。シークレットは一度しか表示されません。
認証
Authentication ガイドの OAuth 2.0 Client Credentials の手順に従って、ベアラートークンを取得し、最初のAPI 呼び出しを行います。セットアップの検証
権限を持つコネクションに対してクエリを実行します。成功レスポンスが返れば、サービスアカウントの認証が完了し、利用可能な状態であることが確認できます。 リクエストが失敗した場合は、以下を確認してください:- トークンの有効期限切れ:トークンは
expires_inの期間経過後に失効します。新しいトークンをリクエストして再試行してください。 - 権限の不足:サービスアカウントには、クエリ対象のコネクションに対する権限が必要です。Administrator に連絡し、Identities ページの Service Accounts タブで権限を確認または更新してください。
- 非アクティブなアカウント:サービスアカウントのステータスはActive である必要があります。Administrator はIdentities ページの Service Accounts タブからステータスを確認および更新できます。
- ユーザーごとのコネクション:クエリが空のスキーマ一覧やテーブル一覧、OAuth エラー、または「A table could not be found」を返す場合、コネクションがPer-User Authentication を使用している可能性があります。サービスアカウントは、ユーザーごとのコネクションにサインインできません。代わりにShared Authentication を使用するコネクションに対してクエリを実行してください。コネクションの認証モデルについては、Administrator に確認してください。