ユーザーの認証

Google Cloud アプリケーションでユーザーを認証するには、次の方法があります。

認証サービス 目的
Firebase Authentication Google、Facebook、Twitter など、複数のユーザー認証オプションを提供します。維持するコードを最小限に抑えつつ、最大数のユーザーをサポートします。
Google ログイン Google ログインは、Gmail や Google Workspace アカウントのログインを提供し、ワンタイム パスワード(OTP)もサポートします。既存のログイン システムの中では、Google 専用アカウントまたは Google アカウントをサポートするうえで最も簡単な方法です。
OAuth 2.0 と OpenID Connect OpenID Connect を使用すると、大部分のカスタマイズで最初から認証トークンを処理し、使用できます。
Google Cloud Identity Platform Identity Platform は、Identity and Access Management 機能を自社アプリケーションに組み込むための顧客 ID とアクセス管理(CIAM)プラットフォームです。このオプションは、独自の ID プロバイダを使用するユーザーに最適です。
Users API Users API は、Google アカウントと Google Workspace アカウントの認証に使用される以前のバンドル サービスの 1 つです。この組み込み API は App Engine でのみ使用できます。
Identity-Aware Proxy(IAP) IAP を使用すると、リクエストがアプリケーション リソースに到達する前に、App Engine サービスへのアクセスを制御できます。IAP を使用すると、アプリケーションの一元的な認可レイヤを確立し、署名済みヘッダーまたは App Engine Users API と連携してアプリを保護できます。この表にある他の認証サービスとは異なり、IAP は、アプリに到達する前に認証を実行します。このページの他のオプションでは、アプリに認証を実装します。

Firebase Authentication

Firebase Authentication は、ユーザーが使用したいすべてのアカウントでのログインをサポートする堅牢で安全性の高いオールインワン認証システムを提供します。Google、Facebook、Twitter などのソーシャル ログイン連携に加えて、パスワード認証にも対応しているため、デスクトップやモバイルでのアプリの成長に応じて、認証システムを簡単にスケーリングできます。

Firebase Authentication は、Google App Engine アプリに対し最も簡単にユーザー認証を設定する方法です。Firebase Authentication についての詳細は、以下をご覧ください。

  • Firebase ウェブ チュートリアルは、ウェブサイトで Firebase を使用する方法(ID プロバイダとしての Google へのユーザーのログインなど)にフォーカスします。

  • Firebase のクイックスタート アプリは、連携ログインとユーザー名 / パスワードを使ったログインの例を使用して、プラットフォームで Firebase を統合する方法を示します。サンプルでは、JavaScript SDK を使用した Firebase Authentication に加え、iOSAndroid での認証方法を示しています。

Google ログイン

ウェブサイトやアプリに Google ログインボタンを表示する場合や、ドメインに Google 管理コンソールを使用し、そのログイン情報に基づいてユーザーを認証する場合には、Google ログインを使用できます。これは、OAuth 2.0 と OpenID Connect プロトコル対応の Google ログイン クライアント ライブラリです。

Google ログインはウェブアプリiOSAndroid で利用できます。

OAuth 2.0 と OpenID Connect

Google ログインは Google による OAuth 2.0 実装がベースであり、OpenID Connect 仕様に準拠し、OpenID Certified を受けています。

OpenID Connect は OAuth 2.0 プロトコルの上にある ID レイヤで、アプリでこれを使用してユーザー プロフィール情報を取得できます。

Identity Platform

Identity Platform は、ユーザーの登録とログインを管理するカスタマイズ可能なドロップイン ID と認証サービスを提供します。Identity Platform は、さまざまな認証方法(SAML、OIDC、メールアドレスとパスワード、ソーシャル、電話、カスタム認証)に幅広く対応し、あらゆる ID ソリューションと統合できる柔軟性を備えています。Identity Platform は、Google Cloud のグローバル スケール、パフォーマンス、ネットワーク、セキュリティを基盤に構築されており、ほぼすべてのアプリやサービスの要求に応えるよう、エンタープライズ グレードのサポートと SLA を提供します。

Identity Platform は独自のユーザー ID システムを提供します。ドメインですでに Google Workspace を使用していて、そのログインに基づいてユーザーを認証する場合は、Google ログインを使用する必要があります。

Identity Platform と App Engine の統合については、App Engine でのユーザーのログインに関する入門ガイドをご覧ください。

Users API

Users API で、アプリケーションは次のタスクを実行できます。

  • 現在のユーザーのログイン状況を検出します。
  • 適切なログインページにユーザーをリダイレクトします。
  • ユーザーが新しい Google アカウントをまだ作成していない場合、ユーザーにそれを作成するよう要求します。

ユーザーがアプリケーションにログイン済みのときは、アプリケーションがユーザーのメールアドレスにアクセスできます。アプリケーションは現在のユーザーが管理者かどうかを判断することもできるので、アプリケーションの管理者専用ページを簡単に実装できます。

詳細については、Users API の概要をご覧ください。

Identity-Aware Proxy(IAP)

IAP では、着信する外部リクエストに対し、リソースの前に認証と認可のレイヤを追加してアプリケーションを保護します。IAP は、同じプロジェクト内の別の App Engine サービスなど、プロジェクト内のアクティビティから保護することはありません。アプリへのアクセスが承認されていないユーザーには、App Engine アプリへのアクセス権限はありません。

IAP で保護されたサービスまたはアプリケーションにアクセスできるのは、適切な Identity and Access Management(IAM)ロールを持つプリンシパルのみです。ユーザーが IAP で保護されたリソースにアクセスしようとすると、IAP が認証と認可のチェックを行います。IAP でアプリケーション リソースを保護する方法については、IAP の概要をご覧ください。

IAP は、アプリ全体に対して有効にすることも、アプリの特定のサービスまたはバージョンに対して有効にすることもできます。App Engine リソース用に IAP を構成する方法については、IAP のクイックスタートをご覧ください。