認証情報を保護する

このガイドでは、アプリケーションとユーザーの認証情報を保護する方法について説明します。

OAuth アプリの確認を完了する

Google Ads API の OAuth 2.0 スコープは制限付きのスコープに分類されるため、アプリケーションを本番環境に移行する前に、OAuth アプリケーション検証プロセスを完了する必要があります。詳しくは、Google Identity のドキュメントヘルプセンターの記事をご覧ください。

アプリケーションの認証情報を保護する

アプリケーションの OAuth 2.0 クライアント ID とクライアント シークレットは保護する必要があります。これらの認証情報は、ユーザーと Google がアプリケーションを識別する際に役立つため、慎重に処理する必要があります。これらのアプリの認証情報はパスワードのように扱う必要があります。公開フォーラムに投稿する、認証情報を含む構成ファイルをメールの添付ファイルに送信する、認証情報をハードコードする、コード リポジトリに commit するなど、安全でないメカニズムを使用して共有しないでください。可能であれば、Google Cloud Secret ManagerAWS Secret Manager などのシークレット マネージャーを使用することをおすすめします。

OAuth 2.0 クライアント シークレットが不正使用された場合は、シークレットをリセットできます。開発者トークンはリセットすることもできます。

開発者トークンを保護する

開発者トークンを使用すると、アカウントへの API 呼び出しを行うことができますが、呼び出しに使用できるアカウントに制限はありません。その結果、侵害された開発者トークンを使用して、自分のアプリケーションに帰属する呼び出しが第三者によって行われる可能性があります。このシナリオを回避するには、次の予防策を講じます。

  • 開発者トークンはパスワードと同じように扱ってください。公開フォーラムに投稿したり、デベロッパー トークンを含む構成ファイルをメールの添付ファイルとして送信したりするなど、安全でないメカニズムを使用して共有しないでください。可能であれば、Google Cloud Secret ManagerAWS Secret Manager などの Secret Manager を使用することをおすすめします。

  • 開発者トークンが不正使用された場合は、トークンをリセットする必要があります。

    • Google Ads API のお申し込み時に使用した Google 広告 MCC アカウントにログインします。
    • [ツールと設定] > [API センター] に移動します。
    • [開発者トークン] の横にあるプルダウン矢印をクリックします。
    • [トークンをリセット] リンクをクリックします。古い開発者トークンはすぐに機能しなくなります。
    • 新しい開発者トークンを使用するように、アプリケーションの本番環境用の構成を更新します。

サービス アカウントを保護する

サービス アカウントが Google Ads API で正しく動作するには、ドメイン全体の権限を借用する必要があります。また、ドメイン全体の権限を借用できるのは Google Workspace のユーザーのみです。このような理由から、Google Ads API を呼び出す際はサービス アカウントを使用しないことをおすすめします。ただし、サービス アカウントを使用する場合は、次のように保護する必要があります。

ユーザー トークンを保護する

アプリで複数のユーザーを承認する場合は、ユーザーの更新トークンとアクセス トークンを保護するために追加の手順を行う必要があります。トークンは保存時に安全に保存し、書式なしテキストで送信しないでください。プラットフォームに適した安全なストレージ システムを使用します。

更新トークンの取り消しと期限切れを処理する

アプリが認証の一環として OAuth 2.0 更新トークンをリクエストする場合は、その無効化または有効期限も処理する必要があります。更新トークンはさまざまな理由で無効化される可能性があるため、アプリケーションは次回のログイン セッション中にユーザーを再承認するか、必要に応じてデータをクリーンアップすることで、適切な対応を行う必要があります。cron ジョブなどのオフライン ジョブでは、失敗したリクエストを継続するのではなく、更新トークンが期限切れになったアカウントを検出して記録する必要があります。Google は、API サーバーの安定性を維持するため、長期間にわたって高レベルのエラーを生成するアプリケーションの調整を行う場合があります。

複数のスコープの同意を管理する

アプリが複数の OAuth 2.0 スコープの承認をリクエストした場合、ユーザーはリクエストしたすべての OAuth スコープをユーザーが付与しない可能性があります。アプリは、関連する機能を無効にして、スコープ拒否に対処する必要があります。スコープを必要とする特定の機能を使用する意図をユーザーが明確に示した後にのみ、ユーザーに再度メッセージを表示できます。このような場合は、増分認証を使用して、適切な OAuth スコープをリクエストします。

アプリの基本機能に複数のスコープが必要な場合は、同意を求める前にその要件をユーザーに説明してください。