このガイドでは、アプリケーションとユーザーの認証情報を保護する方法について説明します。
OAuth アプリの確認を完了する
Google 広告 API の OAuth 2.0 スコープは 制限付きスコープに分類されます。つまり、アプリケーションを本番環境に移行する前に、OAuth アプリケーションの検証プロセスを完了する必要があります。詳しくは、 Google Identity のドキュメント、未検証アプリに関する ヘルプセンター記事、OAuth 同意画面の設定に関する ドキュメントをご覧ください。
アプリケーションの認証情報を保護する
アプリケーションの OAuth 2.0 クライアント ID とクライアント シークレットを保護する必要があります。 これらの認証情報は、ユーザーと Google がアプリケーションを識別するのに役立つため、慎重に扱う必要があります。これらのアプリケーションの認証情報はパスワードと同様に扱う必要があります。公開フォーラムへの投稿、これらの認証情報を含む構成ファイルをメールの添付ファイルとして送信する、認証情報をハードコードする、コード リポジトリにコミットするなど、安全でない方法で共有しないでください。可能な場合は、Google Cloud Secret manager や AWS Secret Manager などのシークレット マネージャーを使用することをおすすめします。
OAuth 2.0 クライアント シークレットが漏洩した場合は、リセットできます。開発者トークンもリセットできます。
開発者トークンを保護する
開発者トークンを使用すると、アカウントに対して API 呼び出しを行うことができますが、呼び出しに使用できるアカウントに制限はありません。そのため、漏洩した開発者トークンを他者が使用して、アプリケーションに起因する呼び出しを行う可能性があります。この事態を回避するには、次の予防措置を講じます。
開発者トークンをパスワードと同様に扱います。公開フォーラムへの投稿や、開発者トークンを含む構成ファイルをメールの添付ファイルとして送信するなど、安全でない方法で共有しないでください。可能な場合は、Google Cloud Secret Manager や AWS Secret Manager などの シークレット マネージャーを使用することをおすすめします。
開発者トークンが漏洩した場合は、リセットする必要があります。
- Google 広告 API の申請に使用した Google 広告クライアント センター(MCC)アカウントにログインします。
- [ツールと設定] > [API センター] に移動します。
- [開発者トークン] の横にあるプルダウン矢印をクリックします。
- [トークンをリセット] リンクをクリックします。古い開発者トークンはすぐに使用できなくなります。
- 新しい開発者トークンを使用するように、アプリケーションの本番環境構成を更新します。
サービス アカウントを保護する
サービス アカウントが Google 広告 API で正しく動作するには、ドメイン全体の権限借用が必要です。また、ドメイン全体の権限借用を設定するには、Google Workspace のお客様である必要があります。これらの理由から、Google 広告 API 呼び出しを行う場合は、サービス アカウントを使用しないことをおすすめします。ただし、サービス アカウントを使用する場合は、次のように保護する必要があります。
サービス アカウント キーと JSON ファイルをパスワードとして扱います。可能な場合は、 シークレット マネージャー(Google Cloud Secret Manager や AWS Secret Manager など)を使用して保護します。
Google Cloud の追加のベスト プラクティスに沿って、サービス アカウントを保護 して管理します。
ユーザー トークンを保護する
アプリが複数のユーザーを承認する場合は、ユーザーの更新トークンとアクセス トークンを保護するための追加の手順を行う必要があります。トークンは安全に保存し、 平文で送信しないでください。プラットフォームに適した安全なストレージ システムを使用します。
更新トークンの取り消しと有効期限切れを処理する
アプリが承認の一部として OAuth 2.0 更新トークンをリクエストする場合は、無効化または有効期限切れも処理する必要があります。更新トークンは さまざまな理由で無効になる可能性があります。アプリケーションは、次のログインセッションでユーザーを再認証するか、必要に応じてデータをクリーンアップすることで、 適切に対応する必要があります。cron ジョブなどのオフライン ジョブでは、リクエストの失敗を繰り返すのではなく、更新トークンの有効期限が切れたアカウントを検出して記録する必要があります。Google は、API サーバーの安定性を維持するため、一定期間にわたって大量のエラーを生成するアプリケーションをスロットリングする場合があります。
複数のスコープの同意を管理する
アプリが複数の OAuth 2.0 スコープの承認をリクエストした場合、ユーザーがリクエストしたすべての OAuth スコープを許可しない可能性があります。アプリは、関連する機能を無効にすることで、スコープの拒否を処理する必要があります。ユーザーがスコープを必要とする特定の機能を使用する意思を明確に示した場合にのみ、ユーザーに再度プロンプトを表示できます。このような場合は、増分承認を使用して 適切な OAuth スコープをリクエストします。
アプリの基本機能に複数のスコープが必要な場合は、同意を求める前に、この要件をユーザーに説明してください。