API リクエストの承認

アプリケーションから限定公開データがリクエストされた場合は、そのデータへのアクセス権を持つ認証済みのユーザーによってそのリクエストが承認される必要があります。

アプリケーションから一般公開データがリクエストされた場合は、リクエストの承認は必要ありませんが、ID(API キーなど)を追加する必要があります。

アプリケーションが Cloud Billing API に送信するすべてのリクエストには、認可トークンが含まれている必要があります。このトークンは Google に対してアプリケーションの識別も行います。

承認プロトコルについて

アプリケーションは OAuth 2.0 を使用してリクエストを承認する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで Google でログインを使用している場合、承認作業の一部が代行されます。

OAuth 2.0 を使用したリクエストの承認

Cloud Billing API に対するすべてのリクエストは、認証済みユーザーによって承認される必要があります。

OAuth 2.0 の承認プロセス、つまり「フロー」の詳細は、開発するアプリケーションの種類によって多少異なりますが、次の一般的なプロセスは、すべての種類のアプリケーションに当てはまります。

  1. アプリケーションを作成した場合は、Google Cloud Console を使用してそのアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google Cloud コンソールで Cloud Billing API をアクティブ化します(API がコンソールに表示されない場合、この手順は省略します)。
  3. アプリケーションがユーザーデータにアクセスする必要がある場合は、アクセスの範囲を Google にリクエストします。
  4. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  5. ユーザーが承認すると、Google はアプリケーションに有効期間が短いアクセス トークンを付与します。
  6. アプリケーションはリクエストにそのアクセス トークンを付けて、ユーザーデータをリクエストします。
  7. Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。

新しいアクセス トークンを取得するためにリフレッシュ トークンを使用するなど、承認フローには追加のステップがあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。

Cloud Billing API の OAuth 2.0 のスコープに関する情報は次のとおりです。

スコープ 意味
https://www.googleapis.com/auth/cloud-platform Google Cloud Platform サービス全体のデータを表示、管理するためにアクセスします。これは、すべての Cloud Billing API メソッドを呼び出すのに十分な、最も範囲の広いスコープです。このスコープには cloud-billingcloud-billing.readonly が含まれるため、このスコープがある場合はどちらも必要ありません。
https://www.googleapis.com/auth/cloud-billing Google Cloud Platform の請求先アカウントを表示、管理するためにアクセスします。このスコープは cloud-platform より適用範囲が狭いですが、cloud-billing.readonly より適用範囲が広く、またこれを含んでいます。
https://www.googleapis.com/auth/cloud-billing.readonly Google Cloud Platform の請求先アカウントを表示するためにアクセスします。最も適用範囲の狭いスコープです。このスコープは、請求先アカウントの取得または一覧表示のみが必要であり、ProjectBillingInfo リソースの取得、更新は必要ない場合に使用できます。

OAuth 2.0 を使用してアクセスをリクエストするには、アプリケーションの登録時に Google より提供される情報(クライアント ID やクライアント シークレットなど)の他に、スコープ情報が必要です。