ウェブでの認証

ウェブアプリは、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 トークン認証情報が返されていました。
  • ユーザーのセキュリティとプライバシーを強化するため、認証用に発行されるユーザーごとの認証情報は、アクセス トークンと管理に必要な情報のみを含む最小権限の原則に従います。