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