ユーザーの認証

Google Cloud アプリケーションでユーザーを認証する際には、次のユーザー認証方法が用意されています。

認証サービス 概要
Identity Platform(推奨) パスワード、電話番号、広く使用されているフェデレーション ID プロバイダ(Google、Facebook、Twitter など)、SAML や OpenID Connect プロトコルをサポートするプロバイダを使用して認証を行います。多要素認証、OIDC と SAML SSO のサポート、マルチテナンシー、99.95% の SLA などのエンタープライズ向け機能を提供します。

新しいプロジェクトを開始するときに推奨される方法です。これにより、Identity Platform の機能と、Firebase Authentication の以前の機能を使用できます。
Firebase Authentication Google、Facebook、Twitter などのさまざまな認証オプションを使用してユーザーを認証します。Firebase Authentication は、維持するコードを最小限に抑えつつ、最大数のユーザーをサポートします。

最小限のステップでソリューションをデプロイするためのおすすめの方法。
ウェブ用 Google Identity Services Gmail と Google Workspace から Google ユーザー アカウントを使用してユーザーを認証します。

既存のログイン システムの中では、Google 専用アカウントまたは Google アカウントをサポートするうえで推奨される方法です。
OAuth 2.0 と OpenID Connect Google を含む任意のプロバイダのフェデレーション ID を提供します。

ユーザー認証プロトコルをご自分で構築する場合は、この方法をおすすめします。
Identity-Aware Proxy(IAP) App Engine アプリケーションの上に Identity and Access Management(IAM)検証レイヤを追加して認証を行います。IAP を使用すると、リクエストがアプリケーション リソースに到達する前に、App Engine サービスへのアクセスを制御できます。このため、IAP は、同じ Google Cloud プロジェクト内のアクティビティからの保護には適していません。

Google アカウントと IAM を使用してユーザー アクセスを制御する場合に推奨される方法です。
Users API Google アカウントと Google Workspace アカウントを使用しているユーザーを認証します。App Engine のユーザー サービスには、以前のバンドル サービスからのみアクセスできます。

Identity Platform

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

このソリューションは、信頼性の高いエンタープライズ グレードの機能と SLA に基づく柔軟な認証オプションを必要とするほとんどのユーザーに最適です。

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

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

Firebase Authentication

Firebase Authentication は、ユーザーの登録とログインを管理するカスタマイズ可能なドロップイン ID と認証サービスを提供します。Identity Platform と同様に、Firebase Authentication は複数の認証方法(SAML、OIDC、メールアドレスとパスワード、ソーシャル、モバイル、カスタム認証)をサポートしており、任意の ID ソリューションを対象とする柔軟な統合オプションが用意されています。

Firebase Authentication は Identity Platform と異なり、特定のエンタープライズ向け機能がありません。詳細については、Identity Platform と Firebase Authentication の違いをご覧ください。

このソリューションは、最も軽量な方法で App Engine アプリのユーザー認証を設定する方法に最適です。多くのユーザーにとって、Firebase Authentication は、認証を実装またはテストする最も迅速な方法です。

Firebase Authentication についての詳細は、以下をご覧ください。

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

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

ウェブ用 Google Identity Services

ウェブ用 Google Identity Services は、OAuth 2.0 と OpenID Connect プロトコル上で構築された Google 用ログイン クライアント ライブラリです。ウェブサイトまたはアプリに表示される [Google でログイン] ボタンを使用すると、すばやく簡単にログインできるようになります。

このソリューションは、Google アカウントに基づいてユーザーを認証する場合、またはドメインに Google 管理コンソールを使用している場合に最適です。

OAuth 2.0 と OpenID Connect

OpenID Connect は OAuth 2.0 プロトコルの上にある ID レイヤです。Google の OAuth 2.0 の実装は、OpenID Connect 仕様に準拠しており、OpenID Certified となっています。他のプロバイダも利用できます。

このソリューションは、認証実装を完全にカスタマイズして制御する必要がある場合に最適です。

詳細については、OpenID Connect をご覧ください。

Identity-Aware Proxy(IAP)

アプリ内で認証を実装する他の認証オプションとは異なり、IAP では、リソースの前に IAM 認証と認可レイヤを追加することでアプリケーションを保護します。このレイヤは、アプリに到達する前にインバウンド外部リクエストを検証します。アプリへのアクセスが承認されていないユーザーには、App Engine アプリへのアクセス権限はありません。

IAP は、アプリ全体に対して有効にでき、アプリの特定のサービスまたはバージョンに対して有効にすることもできます。IAP で保護されたサービスまたはアプリケーションにアクセスできるのは、適切な IAM ロールを持つプリンシパルのみです。ユーザーが IAP で保護されたリソースにアクセスしようとすると、IAP が認証と認可のチェックを行います。IAP でアプリケーション リソースを保護する方法については、IAP の概要をご覧ください。

IAP は、同じプロジェクト内の別のサービスにアクセスする App Engine サービスなど、プロジェクト内のアクティビティから保護することはありません。

このソリューションは、Google ユーザー アカウントと IAM を使用してユーザー アクセスを承認する場合に最適です。

App Engine リソースに対して IAP を構成する方法については、IAP クイックスタートをご覧ください。

Users API

Users API を使用すると、App Engine アプリで次のタスクを実行できます。

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

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

このソリューションは、既存のアプリを第 1 世代のランタイムから第 2 世代のランタイムにアップグレードし、引き続き Users API を使用する場合に有効です。後で Cloud Run または別の Google Cloud アプリ ホスティング プラットフォームに移行する柔軟性が必要な場合は、最新のユーザー認証ソリューションに移行することをおすすめします。

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

他の認証サービス

Auth0。さまざまな ID プロバイダおよびシングル サインオン機能を使った認証を提供します。