インストール済みアプリケーションのユーザー アカウントを使用した認証

このガイドでは、アプリケーションがユーザーのマシンにインストールされているときに、Google BigQuery API へのアクセスをユーザー アカウントを使用して認証する方法について説明します。

ユーザー認証情報を使用して、エンドユーザーに公開されている BigQuery テーブルにしかアプリケーションからアクセスできないようにすることができます。ユーザー認証情報でクエリを実行できるのは、エンドユーザーの Cloud Platform プロジェクトに対してだけであり、アプリケーションのプロジェクトに対してではありません。つまり、ユーザーはアプリケーションではなくクエリに対して課金されます。

始める前に

  1. インストールされたアプリケーションを表す新しい Google Cloud Platform プロジェクトを作成します。
  2. BigQuery クライアント ライブラリをインストールします。
  3. その他のライブラリをインストールします。

    Python

    Google Auth と統合した oauthlib をインストールします。
    pip install --upgrade google-auth-oauthlib

クライアント認証情報のセットアップ

  1. Cloud Platform Console の API 認証情報ページに移動します。
  2. OAuth 同意画面の必須フィールドに必要事項を入力します。
  3. 認証情報ページで、[認証情報を作成] ボタンをクリックします。

    [OAuth クライアント ID] を選択します。

  4. アプリケーションの種類として [その他] を選択してから、[作成] をクリックします。
  5. [JSON をダウンロード] ボタンをクリックして、認証情報をダウンロードします。

    JSON をダウンロード

    認証情報ファイルを client_secrets.json に保存します。このファイルはアプリケーションとともに配布する必要があります。

API の認証と呼び出し

  1. クライアント認証情報を使用して OAuth 2.0 フローを実行します。

    Python

    def authenticate_and_query(project, query, launch_browser=True):
        from google_auth_oauthlib import flow
    
        appflow = flow.InstalledAppFlow.from_client_secrets_file(
            'client_secrets.json',
            scopes=['https://www.googleapis.com/auth/bigquery'])
    
        if launch_browser:
            appflow.run_local_server()
        else:
            appflow.run_console()
    
        run_query(appflow.credentials, project, query)
  2. 認証済みの認証情報を使用して BigQuery API に接続します。

    Python

    def run_query(credentials, project, query):
        from google.cloud import bigquery
    
        client = bigquery.Client(project=project, credentials=credentials)
        query_job = client.query(query)
    
        # Print the results.
        for row in query_job.result():  # Wait for the job to complete.
            print(row)

サンプルコードを実行すると、クライアント シークレットに関連付けられたプロジェクトへのアクセスを要求するブラウザが起動します。このサンプルは BigQuery スコープを要求しているため、生成された認証情報を使用してユーザーの BigQuery リソースにアクセスできます。

次のステップ

  1. BigQuery API にアクセスするアプリケーションを認証するための他の方法について学びます。
  2. すべての Google Cloud Platform API のエンドユーザー認証情報を使用した認証について学びます。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。