ウェブでの認証

ウェブアプリは、Google API を安全に呼び出すため、アクセス トークンを取得する必要があります。

Google Identity Services JavaScript ライブラリは、ユーザー ログインの認証と、Google API で使用するアクセス トークン取得のための認可の両方をサポートしています。このライブラリはブラウザでの使用のみを目的としています。

認証はユーザーが誰であるかを確立するものであり、一般にユーザーの登録またはログインと呼ばれます。認可は、データまたはリソースへのアクセスを許可または拒否するプロセスです。ユーザーの同意の取得と管理、スコープで共有するデータやリソースの量の制限、Google API で使用するアクセス トークンの取得を行います。

認証とデータ共有のトピックについては、各ガイドをご覧ください。

ユーザー承認の仕組みでは、ユーザー承認の個々の手順を詳細に説明し、ユーザー ダイアログの例も紹介しています。

認証や、ユーザーの登録とログインの実装方法については、Google でログインをご覧ください。

このライブラリは、Node.js などのサーバー側の JavaScript フレームワークでの使用は想定していません。代わりに、Google の Node.js クライアント ライブラリを使用してください。

変更内容

Google Identity Services ライブラリは、以前の JavaScript ライブラリと比べてユーザビリティが次のように改善されています。

  • ユーザーのログイン用の認証と、Google API を呼び出すためのアクセス トークンの取得に関する認証に、認証時のログイン用と同意用の 2 つの異なるユーザーフローが用意されました。ユーザーフローとアプリによる操作を明確に区別できます。
  • ユーザーの同意に基づくデータ共有の可視性と制御性が向上しました。
  • ブラウザベースのポップアップ ダイアログ: 煩わしさが軽減され、ユーザーがサイトから離れる必要がありません。
    • Google からアクセス トークンを取得する、または
    • 認証コードをバックエンド プラットフォームに送信します。

Google はデベロッパーにとって、複雑さを軽減し、セキュリティを向上させ、可能な限り迅速かつ簡単に統合できるようにすることに注力してきました。主な変更点は次のとおりです。

  • ログイン用のユーザー認証と、Google API を呼び出すためのアクセス トークンを取得するための認可は、JavaScript オブジェクトとメソッドの 2 つの異なるセットです。これにより、認証または認可を実装するために必要な複雑さと詳細情報の量が軽減されます。
  • 1 つの JavaScript ライブラリで次の両方がサポートされるようになりました。
    • OAuth 2.0 暗黙的フロー: ブラウザで使用するアクセス トークンを取得するために使用されます。
    • OAuth 2.0 認可コードフロー(オフライン アクセス)は、バックエンド プラットフォームへの認証コードを安全に配信します。バックエンド プラットフォームでは、認証コードをアクセス トークンおよび更新トークンと交換できます。以前は、これらのフローは複数のライブラリを使用し、OAuth 2.0 エンドポイントの直接呼び出しによってのみ利用可能でした。単一のライブラリを使用することで、統合にかかる時間と労力が削減されます。複数のライブラリと OAuth 2.0 のコンセプトを学習しなくても、単一の統合インターフェースに集中できます。
  • わかりやすく、読みやすくするために、ゲッター スタイル関数による間接指定を削除しました。
  • 認可レスポンスを処理するときに、リクエストの処理に Promise を使用するかどうかを選択します。この決定は自動で行われるわけではありません。
  • JavaScript の Google API クライアント ライブラリは、以下の変更に伴って更新されました。
    • gapi.auth2 モジュール、関連するオブジェクトとメソッドはバックグラウンドで自動的に読み込まれなくなり、より明示的な Google Identity Services ライブラリのオブジェクトとメソッドに置き換えられました。
    • ユーザーのセキュリティと意識を向上させるため、期限切れのアクセス トークンの自動更新が削除されました。アクセス トークンの有効期限が切れたら、アプリは Google API のエラー レスポンスを処理してリクエストを処理し、新しい有効なアクセス トークンを取得する必要があります。
    • 認証時と認可時を明確に分離するため、アクセス トークンを発行しながら、アプリと Google アカウントに同時にユーザーをログインさせる機能はサポートされなくなりました。以前は、アクセス トークンをリクエストすると、ユーザーは Google アカウントにもログインし、ユーザー認証用の JWT ID トークン認証情報を返していました。
  • ユーザーのセキュリティとプライバシーを強化するために、認可用に発行されるユーザーごとの認証情報は、アクセス トークンとその管理に必要な情報のみを含めることで、最小権限の原則に従います。