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