アプリケーションから限定公開データがリクエストされた場合は、そのデータへのアクセス権を持つ認証済みのユーザーによってそのリクエストが承認される必要があります。
アプリケーションから一般公開データがリクエストされた場合は、リクエストの承認は必要ありませんが、ID(API キーなど)を追加する必要があります。
アプリケーションが Cloud Billing API に送信するすべてのリクエストには、認可トークンが含まれている必要があります。このトークンは Google に対してアプリケーションの識別も行います。
承認プロトコルについて
アプリケーションは OAuth 2.0 を使用してリクエストを承認する必要があります。これ以外の承認プロトコルはサポートされていません。アプリケーションで Google でログインを使用している場合、承認作業の一部が代行されます。
OAuth 2.0 を使用したリクエストの承認
Cloud Billing API に対するすべてのリクエストは、認証済みユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス、つまり「フロー」の詳細は、開発するアプリケーションの種類によって多少異なりますが、次の一般的なプロセスは、すべての種類のアプリケーションに当てはまります。
- アプリケーションを作成した場合は、Google Cloud Console を使用してそのアプリケーションを登録します。後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google Cloud コンソールで Cloud Billing API をアクティブ化します(API がコンソールに表示されない場合、この手順は省略します)。
- アプリケーションがユーザーデータにアクセスする必要がある場合は、アクセスの範囲を Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、Google はアプリケーションに有効期間が短いアクセス トークンを付与します。
- アプリケーションはリクエストにそのアクセス トークンを付けて、ユーザーデータをリクエストします。
- 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-billing と cloud-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 やクライアント シークレットなど)の他に、スコープ情報が必要です。