このトピックでは、エンドユーザーに代わって Google Cloud APIs にアクセスする方法について説明します。Google Cloud APIs への認証に関する一般情報については、認証の概要をご覧ください。
認証フロー
アプリケーションがエンドユーザーに代わって Google Cloud APIs にアクセスする必要がある場合、アプリケーションは OAuth 同意フローを開始します。ユーザーが OAuth 同意フローを完了すると、アプリケーションがユーザーの認証情報を受け取ります。認証情報を使用すると、アプリケーションがユーザーの代わりに Google Cloud APIs を呼び出すことができます。
このプロセスは OAuth 2.0 と呼ばれるプロトコルです。
OAuth 2.0 の詳細については、OAuth 2.0 をご覧ください。
OAuth スコープの指定
エンドユーザーとして認証する場合は、OAuth スコープを明示的に指定する必要があります。OAuth スコープにより、アプリケーションがエンドユーザーの代わりに実行できる操作が制限されます。たとえば、これらの操作には Cloud Storage からのファイルの読み取り、Google Cloud プロジェクトの管理などが含まれます。
使用可能な OAuth スコープの詳細については、特定の API ページをご覧ください。たとえば、Compute Engine API で disks.get()
メソッドを使用する場合は、これらの OAuth スコープのいずれかを設定する必要があります。ユースケースに基づいて必要な最小限のスコープを設定します。
プロジェクト リソースへのアクセスの許可と制限
エンドユーザー認証情報を使用してプロジェクト内のリソースにアクセスする場合は、プロジェクト内のリソースへのユーザー アクセス権を付与する必要があります。これを行うには、Google Cloud で Identity and Access Management(IAM)のロールを設定します。
ユーザーがアクセスできるリソースを制限できます。これは、所有するプロジェクトのリソースにユーザーがアクセスできるようにしている場合が特に該当します。ユーザーが必要とする最低限の権限に従ってロールを設定します。
各サービスには一連の IAM ロールがあります。また、カスタムロールを作成することもできます。詳細については、ロールについてとカスタムロールの作成と管理をご覧ください。
エンドユーザーの認証の例
エンドユーザーの認証情報を取得するには、以下の各セクションに記載されている手順を実行します。以下に示す手順では BigQuery API を使用しますが、クライアント ライブラリがある Google Cloud API であれば、どの API でもこの同じプロセスを使用できます。
プロジェクトの設定
- Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- BigQuery API を有効にします。
- BigQuery クライアント ライブラリをインストールします。
- Python または Node.js を使用する場合は、追加の認証ライブラリをインストールする必要があります。
Python
Google Auth と統合した oauthlib をインストールします。pip install --upgrade google-auth-oauthlib
クライアント認証情報の作成
Google Cloud Console でクライアント認証情報を作成します。
Cloud Console の [OAuth 同意画面] ページに移動します。
認証情報ページで、[認証情報を作成] ボタンを選択して [OAuth クライアント ID] を選択します。
[その他] を選択し、[作成] ボタンを選択します。成功を示すダイアログが表示されたら、[OK] ボタンを選択します。
クライアント ID の [JSON をダウンロード] ボタンをクリックして、認証情報をダウンロードします。
認証情報ファイルを
client_secrets.json
に保存します。このファイルはアプリケーションとともに配布する必要があります。
API の認証と呼び出し
クライアント認証情報を使用して OAuth 2.0 フローを行います。
Python
認証済みの認証情報を使用して BigQuery API に接続します。
Python
サンプルコードを実行すると、クライアント シークレットに関連付けられたプロジェクトへのアクセスを要求するブラウザが起動します。このサンプルは BigQuery スコープを要求しているため、生成された認証情報を使用してユーザーの BigQuery リソースにアクセスできます。
別のユースケースでは、IAM のロールを付与して、ユーザーがアクセスできるリソースを決定できます。
次のステップ
- Google Cloud API に対する認証について学習する
- サービス アカウントとして認証する方法について学習する
- API キーの使用方法について学習する