ウェブアプリは、Google API を安全に呼び出すためにアクセス トークンを取得する必要があります。
Google Identity Services JavaScript ライブラリは、ユーザー ログインの認証と、Google API で使用するアクセス トークンを取得するための認可の両方をサポートしています。このライブラリはブラウザでの使用のみを想定しています。
認証は、ユーザーが誰であるかを特定するもので、通常はユーザー登録またはログインと呼ばれます。認可は、データまたはリソースへのアクセスを許可または拒否するプロセスです。これには、ユーザーの同意の取得と管理、スコープで共有されるデータまたはリソースの量の制限、Google API で使用するアクセス トークンの取得が含まれます。
これらのガイドでは、承認とデータ共有に関するトピックについて説明します。
ユーザー認証の仕組みでは、ユーザー認証の個々の手順を詳しく説明し、ユーザー ダイアログの例も示しています。
認証と、ユーザーの登録とログインの実装方法については、「Google でログイン」をご覧ください。
このライブラリは、Node.js などのサーバーサイド JavaScript フレームワークでの使用を想定していません。代わりに、Google の Node.js クライアント ライブラリを使用してください。
変更内容
ユーザーにとって、Google Identity Services ライブラリは、以前の JavaScript ライブラリに比べて次のような多くのユーザビリティの改善を提供します。
- ユーザーのログインの認証と、Google API を呼び出すためのアクセス トークンを取得する認可に、2 つの別個のユーザーフローが用意されました。1 つはログイン用、もう 1 つは認可時の同意用です。ユーザーフローを分けることで、ユーザーの身元とアプリが実行できることを明確に区別できます。
- ユーザーの同意時に、データ共有の可視性ときめ細かい制御が向上しました。
- 摩擦を減らすブラウザベースのダイアログ。ユーザーがサイトを離れる必要がないため、以下のことが可能です。
- Google からアクセス トークンを取得する。
- 認証コードをバックエンド プラットフォームに送信します。
デベロッパー向けには、複雑さを軽減し、セキュリティを強化し、統合を簡素化することに重点を置いてきました。たとえば、以下のような変更が挙げられます。
- ログインに使用されるユーザー認証と、Google API を呼び出すためのアクセス トークンを取得するために使用される認可は、2 つの別個の JavaScript オブジェクトとメソッドのセットです。これにより、認証または認可の実装に必要な複雑さと詳細の量が軽減されます。
- 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 トークン認証情報が返されていました。
- ユーザーのセキュリティとプライバシーを強化するため、認証用に発行されるユーザーごとの認証情報は、アクセス トークンと管理に必要な情報のみを含む最小権限の原則に従います。