ウェブアプリは、GoogleAPIを安全に呼び出すためにアクセストークンを取得する必要があります。
Google Identity Services JavaScriptライブラリは、ユーザーサインインの認証と、GoogleAPIで使用するアクセストークンを取得するための承認の両方をサポートしています。ライブラリは、ブラウザでの使用のみを目的としています。
認証は、誰かが誰であるかを確立し、一般にユーザーサインアップまたはサインインと呼ばれます。承認は、データまたはリソースへのアクセスを許可または拒否するプロセスです。これには、ユーザーの同意の取得と管理、スコープと共有されるデータまたはリソースの量の制限、GoogleAPIで使用するためのアクセストークンの取得が含まれます。
これらのガイドは、承認とデータ共有のトピックをカバーしています。
ユーザー認証の仕組みでは、ユーザー認証の個々の手順について詳しく説明し、ユーザーダイアログの例を示します。
認証のヘルプと、ユーザーのサインアップとサインインを実装する方法をお探しの場合は、「 Googleでサインイン」を参照してください。
このライブラリは、Node.jsなどのサーバー側のJavaScriptフレームワークでの使用を目的としたものではなく、代わりにGoogleのNode.jsクライアントライブラリを使用します。
何が変わったのか
ユーザーの場合、Google Identity Servicesライブラリは、以前のJavaScriptライブラリに比べて多くの使いやすさを向上させます。
- ユーザーログインの認証と、Google APIを呼び出すためのアクセストークンを取得するための承認により、2つの別個のユーザーフローが追加されました。 1つはサインイン用で、もう1つは認証時の同意用です。ユーザーフローを個別に設定して、アプリで実行できることから自分が誰であるかを明確に区別します。
- ユーザーの同意中のデータ共有の可視性ときめ細かい制御が改善されました。
- 摩擦を減らすためのブラウザベースのポップアップダイアログ。ユーザーがサイトを離れる必要はありません。
- Googleからアクセストークンを取得する、または
- バックエンドプラットフォームに認証コードを送信します。
開発者にとって、私たちの焦点は、複雑さを軽減し、セキュリティを向上させ、統合を可能な限り迅速かつ簡単にすることです。これらの変更の一部は次のとおりです。
- サインインのユーザー認証と、Google APIを呼び出すためのアクセストークンを取得するために使用される承認は、JavaScriptオブジェクトとメソッドの2つの別個のセットです。これにより、認証または承認の実装に必要な複雑さと詳細の量が削減されます。
- 単一のJavaScriptライブラリが次の両方をサポートするようになりました。
- ブラウザ内で使用するためのアクセストークンを取得するために使用されるOAuth2.0暗黙フロー
- OAuth 2.0認証コードフロー(オフラインアクセスとも呼ばれます)は、認証コードをバックエンドプラットフォームに安全に配信し、アクセストークンと更新トークンと交換できるようにします。以前は、これらのフローは、複数のライブラリを使用し、OAuth2.0エンドポイントを直接呼び出すことによってのみ利用可能でした。単一のライブラリを使用すると、統合の時間と労力が削減されます。複数のライブラリとOAuth 2.0の概念を含めて学習する代わりに、単一の統合されたインターフェイスに集中できます。
- ゲッタースタイルの関数による間接参照は、単純さと読みやすさのために削除されました。
- 承認応答を処理するときは、その決定を行う代わりに、 Promiseを使用して要求を満たすかどうかを選択します。
- JavaScript用のGoogleAPIクライアントライブラリが更新され、次の変更が加えられました。
-
gapi.auth2
モジュールと関連するオブジェクトとメソッドは、舞台裏で自動的に読み込まれなくなり、より明示的なGoogle IdentityServicesライブラリのオブジェクトとメソッドに置き換えられました。 - 期限切れのアクセストークンの自動更新は、ユーザーのセキュリティと認識を向上させるために削除されました。アクセストークンの有効期限が切れた後、アプリはGoogle APIエラー応答を処理し、新しい有効なアクセストークンをリクエストして取得する必要があります。
- 認証と承認の瞬間を明確に分離するために、ユーザーをアプリとGoogleアカウントに同時にサインインすると同時に、アクセストークンを発行することはサポートされなくなりました。以前は、アクセストークンをリクエストすると、ユーザーもGoogleアカウントにサインインし、ユーザー認証用のJWTIDトークンのクレデンシャルを返していました。
-
- ユーザーのセキュリティとプライバシーを強化するために、承認のために発行されるユーザーごとのクレデンシャルは、アクセストークンとそれを管理するために必要な情報のみを含めることにより、最小特権の原則に従います。