Firebase Authentication

ほとんどのアプリでは、ユーザー ID を識別する必要があります。アプリでユーザー ID を識別することにより、ユーザーデータをクラウドに安全に保存したり、ユーザーのすべてのデバイスで、カスタマイズされた同じ体験を提供したりできるようになります。

Firebase Authentication には、バックエンド サービス、使いやすい SDK、アプリでのユーザー認証に使用できる UI ライブラリが用意されています。Firebase Authentication では、パスワード、電話番号、一般的なフェデレーション ID プロバイダ(Google、Facebook、Twitter)などを使用した認証を行うことができます。

Firebase Authentication は他の Firebase サービスと緊密に統合されており、OAuth 2.0 や OpenID Connect などの業界標準を使用しているため、カスタム バックエンドと簡単に統合できます。

Identity Platform を使用する Firebase Authentication にアップグレードすると、多要素認証、ブロッキング関数、ユーザー アクティビティと監査ロギング、SAML と一般的な OpenID Connect のサポート、マルチテナンシー、エンタープライズ レベルのサポートなどの追加機能を利用できます。

開始方法を確認する

主な機能

完全なドロップイン認証ソリューションとして FirebaseUI を使用するか、Firebase Authentication SDK を使って 1 つまたは複数のログイン方法を手動でアプリに統合することにより、ユーザーを Firebase アプリにログインさせることができます。

FirebaseUI Auth
ドロップイン認証ソリューション

完全なログイン システムをアプリに追加する推奨される方法。

FirebaseUI に備わっているドロップイン認証ソリューションは、メールアドレスとパスワード、電話番号を使用したり、Google ログインや Facebook ログインなどの一般的なフェデレーション ID プロバイダを使用したりしてユーザーをログインさせるための UI フローを処理します。

FirebaseUI Auth コンポーネントには、モバイル デバイスやウェブサイトで、アプリのログインや登録のコンバージョンを最大限に高めるために使用できる、ベスト プラクティスが導入されています。また、アカウント復旧やアカウントのリンクといった、セキュリティの侵害や処理でのミスが起こりやすいエッジケースにも対応しています。

FirebaseUI は、アプリの他の部分の表示スタイルに合うように簡単にカスタマイズできます。また、オープンソースであるため、目的のユーザー エクスペリエンスを自由に実現できます。

iOS Android ウェブ

Firebase SDK Authentication
メールとパスワードに基づく認証

メールアドレスとパスワードを使用してユーザーを認証します。Firebase Authentication SDK には、メールアドレスとパスワードを使用してログインするユーザーを作成して管理するための方法が用意されています。 Firebase Authentication では、パスワードの再設定メールを送信することもできます。

iOS Android ウェブ C++ Unity

フェデレーション ID プロバイダとの統合

フェデレーション ID プロバイダと統合することで、ユーザーを認証します。Firebase Authentication SDK には、ユーザーが Google、Facebook、Twitter、GitHub アカウントを使用してログインできるようにする方法が用意されています。

Google iOS Android ウェブ C++ Unity
Apple アカウントでログイン iOS Android ウェブ C++ Unity
Facebook iOS Android ウェブ C++ Unity
Twitter iOS Android ウェブ C++ Unity
GitHub iOS Android ウェブ C++ Unity
電話番号認証

スマートフォンに SMS メッセージを送信してユーザーを認証します。

iOS Android ウェブ C++ Unity

カスタム認証システムとの統合

アプリの既存のログイン システムを Firebase Authentication SDK に接続して、Firebase Realtime Database などの Firebase サービスにアクセスできるようにします。

iOS Android ウェブ C++ Unity

匿名認証

一時的な匿名アカウントを作成することで、ユーザーにログインを要求することなく認証できる機能を使用します。ユーザーが後から登録することにした場合は、匿名アカウントを通常のアカウントにアップグレードして、ユーザーが前回終了したところから操作を続行できるようにすることができます。

iOS Android ウェブ C++ Unity

Identity Platform を使用する Firebase Authentication

Identity Platform を使用する Firebase Authentication はオプションのアップグレードで、Firebase Authentication にいくつかの新機能が追加されます。

このアップグレードでは、移行は不要です。既存のクライアント SDK と Admin SDK のコードはこれまでどおり動作し、強化されたロギングやエンタープライズグレードのサポート、SLA などの機能にすぐにアクセスできるようになります。コードを追加すると、多要素認証、ブロッキング関数、SAML プロバイダや OpenID Connect プロバイダ向けサポートを追加できます。

Identity Platform を使用する Firebase Authentication の料金体系は、基本プロダクトと異なります。アップグレードすると、無料(Spark)プランのプロジェクトでは、1 日のアクティブ ユーザーの上限が 3,000 人になり、従量課金制(Braze)プランのプロジェクトでは、1 か月のアクティブ ユーザー 50,000 人の無料枠を超える使用量には課金が発生します。アップグレードする前に、料金への影響を理解しておいてください。

新機能、料金、制限については以下をご覧ください。

機能

多要素認証

SMS による多要素認証は、第 2 のセキュリティ層をアプリに追加することでユーザーのデータを保護します。

MFA を AppleAndroidウェブの各アプリに追加する方法をご覧ください。

ブロッキング関数

ブロッキング関数を使用すると、ユーザーの登録やアプリへのログインの結果を変更するカスタムコードを実行できます。

ブロッキング関数を使用して Firebase Authentication を拡張する方法をご覧ください。

SAML プロバイダと OpenID Connect プロバイダ

Firebase ではネイティブにサポートされていない、SAML(ウェブのみ)と OpenID Connect プロバイダを使用したログインがサポートされます。

SAML ログインをウェブアプリに追加する方法と OpenID Connect ログインを AppleAndroidウェブの各アプリに追加する方法をご覧ください。

ユーザー アクティビティと監査ロギング

管理者権限とエンドユーザー アクティビティをモニタリング、ロギングします。

プロジェクトをアップグレードすると、Cloud Logging で管理アクティビティ監査ログが自動的に有効になります。Firebase コンソールの [Authentication 設定] ページでユーザー アクティビティ ロギングを有効にすることもできます。

ログを表示して分析する方法については、Cloud Logging のドキュメントをご覧ください。

App Check による不正行為の防止

App Check は、未承認のクライアントが認可エンドポイントにアクセスしないようにすることで、プロジェクトの不正使用を防止します。

App Check を有効にする方法については、App Check のドキュメントをご覧ください。

マルチテナンシー

テナントを使用すると、単一のプロジェクト内にユーザーと構成からなる複数の個別のサイロを作成できます。

Cloud Identity Platform ドキュメントのマルチテナンシーのスタートガイドをご覧ください。

エンタープライズ サポートと SLA

アップグレードされたプロジェクトは、Identity Platform サービスレベル契約(SLA)に従って認証サービスの稼働率を保証し、エンタープライズグレードのサポートを利用できます。

匿名ユーザーの自動クリーンアップ

30 日以上経過した匿名アカウントを自動で削除するオプションを使用できます。匿名アカウントも、請求と使用量の割り当てにはカウントされなくなります。

使用量の上限

アップグレード時、Identity Platform を使用する Firebase Authentication に、Firebase Authentication の使用に対する新しい上限が導入されます。

無料(Spark)

無料(Spark)プランのプロジェクトの場合、ほとんどのログイン プロバイダについて、1 日のアクティブ ユーザー(DAU)の上限が 3,000 人になります。1 日のアクティブな使用量は、24 時間にログインしたユニーク ユーザーの数に基づいて計算されます。

プロバイダ 新しい上限 古い上限
メール、ソーシャル、匿名、カスタム 3,000 DAU 無制限
SAML、OpenID Connect 2 DAU 該当なし

従量課金制(Blaze)

Blaze プランのプロジェクトの料金には 1 か月のアクティブ ユーザー(MAU)に基づき、50,000 人の無料枠が含まれています。アクティブ ユーザーとは、請求対象期間内に自身のアカウントを使用したすべてのユーザーです。

プロバイダ 無料枠 無料枠を超える MAU あたりの費用($)
メール、ソーシャル、匿名、カスタム 0~49,999 MAU MAU あたり 0.0025~0.0055
SAML、OpenID Connect 0~49 MAU MAU あたり 0.015

プロジェクトのアップグレード

プロジェクトを Identity Platform を使用する Firebase Authentication にアップグレードするには、Firebase コンソールの [Authentication 設定] ページを開きます。

仕組み

プラットフォームに適した手順を示すリンク

アプリへのユーザーのログインを行うには、まずユーザーから認証情報を取得します。認証情報には、ユーザーのメールアドレスとパスワードや、フェデレーション ID プロバイダの OAuth トークンなどがあります。次に、取得した認証情報を Firebase Authentication SDK に渡します。Google のバックエンド サービスによって認証情報が検証され、クライアントにレスポンスが返されます。

ログインが成功すると、ユーザーの基本的なプロフィール情報にアクセスしたり、他の Firebase サービスに保存されているデータへのユーザーのアクセスを制御したりできます。提供された認証トークンを使用して、独自のバックエンド サービスでユーザーの ID を検証することもできます。

実装のプロセス

FirebaseUI Auth の使用
ログイン方法を設定する Firebase コンソールで、メールアドレスとパスワードまたは電話番号によるログインや、サポートする任意のフェデレーション ID プロバイダを有効にし、ID プロバイダ側で必要な構成(OAuth リダイレクト URL の設定など)を完了します。
ログイン UI をカスタマイズする FirebaseUI オプションを設定してログイン UI をカスタマイズしたり、GitHub でコードをフォークしてログイン エクスペリエンスをさらにカスタマイズしたりすることができます。
FirebaseUI を使用してログインフローを行う FirebaseUI ライブラリをインポートし、サポートするログイン方法を指定して、FirebaseUI ログインフローを開始します。
Firebase Authentication SDK の使用
ログイン方法を設定する Firebase コンソールで、メールアドレスとパスワードまたは電話番号によるログインや、サポートする任意のフェデレーション ID プロバイダを有効にし、ID プロバイダ側で必要な構成(OAuth リダイレクト URL の設定など)を完了します。
ログイン方法の UI フローを実装する メールアドレスとパスワードによるログインの場合は、ユーザーにメールアドレスとパスワードの入力を求めるフローを実装します。電話番号によるログインの場合は、ユーザーに電話番号と、SMS メッセージで受信したコードの入力を求めるフローを作成します。フェデレーション ログインの場合は、各プロバイダで必要なフローを実装します。
ユーザーの認証情報を Firebase Authentication SDK に渡す ユーザーのメールアドレスとパスワードまたはフェデレーション ID プロバイダから取得した OAuth トークンを Firebase Authentication SDK に渡します。

次のステップ

Firebase プロジェクトのユーザーの詳細と、サポートするログイン プロバイダの統合ガイドを確認します。

iOS Android ウェブ C++ Unity Admin

初めてのご利用ですか?

開始方法を確認する