アプリケーションが Cloud SQL Admin API に送信する各リクエストでは、Google に対してそのアプリケーションを識別する必要があります。アプリケーションを識別する方法としては、OAuth 2.0 トークン(リクエストの承認も行います)を使用する方法と、アプリケーションの API キーを使用する方法の 2 つがあります。これらのオプションのどちらを使用するかを決定する方法は次のとおりです。
- リクエストに承認が必要である場合(個人のプライベート データについてのリクエストなど)、アプリケーションはリクエストと共に OAuth 2.0 トークンを提供する必要があります。アプリケーションが API キーも提供することがありますが、これは必須ではありません。
- リクエストに承認が必要でない場合(一般公開データについてのリクエストなど)、アプリケーションは API キーまたは OAuth 2.0 トークンのいずれか、または両方を提供する必要があります。
認証プロトコルについて
アプリケーションは OAuth 2.0 を使用してリクエストを承認する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで Google ログインを使用している場合、承認作業の一部が代行されます。
OAuth 2.0 を使用したリクエストの承認
非公開のユーザーデータに対する Cloud SQL Admin API へのリクエストは、認証済みユーザーによって承認される必要があります。
OAuth 2.0 の認証プロセス、つまり「フロー」の詳細は、開発するアプリケーションの種類によって若干異なりますが、次の一般的なプロセスは、すべての種類のアプリケーションに当てはまります。
- アプリケーションを作成した場合は、Google Cloud Platform Console を使用してアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google Cloud Platform Console で Cloud SQL Admin API を有効にします(API が Cloud Platform Console に表示されない場合は、この手順をスキップしてください)。
- アプリケーションがユーザーデータにアクセスする必要がある場合は、アクセスの範囲を Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、Google はアプリケーションに有効期間が短いアクセス トークンを付与します。
- アプリケーションはリクエストにそのアクセス トークンを付けて、ユーザーデータをリクエストします。
- Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。
新しいアクセス トークンを取得するためにリフレッシュ トークンを使用するなど、承認フローには追加のステップがあります。アプリケーションによって異なるフローの詳細については、Google の OAuth 2.0 ドキュメントをご覧ください。
Cloud SQL Admin API の OAuth 2.0 スコープ情報は以下になります。
スコープ | 意味 |
---|---|
https://www.googleapis.com/auth/sqlservice.admin |
Cloud SQL への読み書きアクセス権。 |
https://www.googleapis.com/auth/cloud-platform |
Instances.import と Instances.export には、この追加スコープが必要です。 |
OAuth 2.0 を使用してアクセスをリクエストするには、アプリケーションの登録時に Google より提供される情報(クライアント ID やクライアント シークレットなど)のほかに、スコープ情報が必要です。
API キーの取得と使用
一般公開データに対する Cloud SQL Admin API へのリクエストには、識別子(API キーまたはアクセス トークン)が含まれている必要があります。
API キーを取得するには:
- Cloud Platform Console で認証情報ページを開きます。
-
この API は、2 タイプの認証情報をサポートします。プロジェクトに適したいずれかの認証情報を作成します。
-
OAuth 2.0: アプリケーションがユーザーのプライベート データをリクエストする場合、リクエストとあわせて OAuth 2.0 トークンを送信する必要があります。アプリケーションは、トークンを取得するためにクライアント ID を送信し、またクライアント シークレットも送信することがあります。ウェブ アプリケーション、サービス アカウント、インストールしたアプリケーションについて OAuth 2.0 認証情報を生成できます。
詳細については、OAuth 2.0 ドキュメントをご覧ください。
-
API キー: OAuth 2.0 トークンが提供されないリクエストでは、API キーを送信する必要があります。キーによりプロジェクトが特定され、API アクセス、割り当て、およびレポートが提供されます。
API は、いくつかのタイプの API キーをサポートします。必要とする API キーのタイプが存在しない場合は、コンソールで [認証情報作成] > [API キー] をクリックして API キーを作成します。運用環境で使用する前にキーを制限するには、[キーを制限] をクリックして、いずれかの制限を選択します。
-
API キーの安全性を保つため、API キーを安全に使用するためのベスト プラクティスに従ってください。
API キーを取得すると、アプリケーションはすべてのリクエスト URL にクエリ パラメータ key=yourAPIKey
を追加できます。
API キーは、安全に URL に埋め込むことができます。エンコーディングの必要はありません。