Firebase Authentication
Firebase Authentication には、バックエンド サービス、使いやすい SDK、アプリでのユーザー認証に使用できる UI ライブラリが用意されています。これによって、パスワード、電話番号、一般的なフェデレーション ID プロバイダ(Google、Facebook、Twitter)などを使用した認証を行うことができます。
Firebase Authentication は他の Firebase サービスと緊密に統合されており、OAuth 2.0 や OpenID Connect などの業界標準を使用しているため、カスタム バックエンドと簡単に統合できます。
Firebase Authentication with Identity Platform にアップグレードすると、多要素認証、ブロッキング関数、ユーザー アクティビティと監査ロギング、SAML と一般的な OpenID Connect のサポート、マルチテナンシー、エンタープライズ レベルのサポートなどの追加機能を利用できます。
主な機能
完全なドロップイン認証ソリューションとして FirebaseUI を使用するか、Firebase Authentication SDK を使用して 1 つまたは複数のログイン方法を手動でアプリに統合することにより、ユーザーを Firebase アプリにログインさせることができます。
FirebaseUI Auth | |
---|---|
ドロップイン認証ソリューション |
完全なログイン システムをアプリに追加する推奨される方法。 FirebaseUI に備わっているドロップイン認証ソリューションは、メールアドレスとパスワード、電話番号を使用したり、Google ログインや Facebook ログインなどの一般的なフェデレーション ID プロバイダを使用したりしてユーザーをログインさせるための UI フローを処理します。 FirebaseUI Auth コンポーネントには、モバイル デバイスやウェブサイトでの認証のベスト プラクティスが実装されており、これによってアプリのログインと登録のコンバージョンを最大化できます。また、アカウント復旧やアカウントのリンクといった、セキュリティの侵害や処理でのミスが起こりやすいエッジケースにも対応しています。 FirebaseUI は、アプリの他の部分の表示スタイルに合うように簡単にカスタマイズできます。また、オープンソースであるため、目的のユーザー エクスペリエンスを自由に実現できます。 |
Firebase SDK 認証 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
メールとパスワードに基づく認証 | メールアドレスとパスワードを使用してユーザーを認証します。Firebase Authentication SDK には、メールアドレスとパスワードを使用してログインするユーザーを作成して管理するための方法が用意されています。Firebase Authentication では、パスワードの再設定メールを送信することもできます。 |
||||||||||
フェデレーション ID プロバイダとの統合 | フェデレーション ID プロバイダと統合することで、ユーザーを認証します。Firebase Authentication SDK には、ユーザーが Google、Facebook、Twitter、GitHub アカウントを使用してログインできるようにする方法が用意されています。
|
||||||||||
電話番号認証 | スマートフォンに SMS メッセージを送信してユーザーを認証します。 |
||||||||||
カスタム認証システムとの統合 |
アプリの既存のログイン システムを Firebase Authentication SDK に接続して、Firebase Realtime Database などの Firebase サービスにアクセスできるようにします。 |
||||||||||
匿名認証 | 一時的な匿名アカウントを作成することで、ユーザーにログインを要求することなく認証できる機能を使用します。ユーザーが後から登録することにした場合は、匿名アカウントを通常のアカウントにアップグレードして、ユーザーが前回終了したところから操作を続行できるようにすることができます。 |
Firebase Authentication with Identity Platform
Firebase Authentication with Identity Platform はオプションのアップグレードで、Firebase Authentication にいくつかの新機能が追加されます。
このアップグレードでは、移行は不要です。既存のクライアント SDK と Admin SDK のコードはこれまでどおり動作し、強化されたロギングやエンタープライズグレードのサポート、SLA などの機能にすぐにアクセスできるようになります。コードを追加すると、多要素認証、ブロッキング関数、SAML プロバイダや OpenID Connect プロバイダ向けサポートを追加できます。
Firebase Authentication with Identity Platform の料金体系は、基本プロダクトと異なります。アップグレードすると、無料(Spark)プランのプロジェクトでは、1 日のアクティブ ユーザーの上限が 3,000 人になり、従量課金制(Braze)プランのプロジェクトでは、1 か月のアクティブ ユーザー 50,000 人の無料枠を超える使用量には課金が発生します。アップグレードする前に、料金への影響を理解しておいてください。
新機能、料金、制限については以下をご覧ください。
機能
多要素認証 |
SMS による多要素認証は、第 2 のセキュリティ層をアプリに追加することでユーザーのデータを保護します。 |
ブロッキング関数 |
ブロッキング関数を使用すると、ユーザーの登録やアプリへのログインの結果を変更するカスタムコードを実行できます。 |
SAML プロバイダと OpenID Connect プロバイダ |
Firebase ではネイティブにサポートされていない、SAML(ウェブのみ)と OpenID Connect プロバイダを使用したログインがサポートされます。 SAML ログインをウェブアプリに追加する方法と OpenID Connect ログインを Apple、Android、ウェブの各アプリに追加する方法をご覧ください。 |
ユーザー アクティビティと監査ロギング |
管理者権限とエンドユーザー アクティビティをモニタリング、ロギングします。 プロジェクトをアップグレードすると、Cloud Logging で管理アクティビティ監査ログが自動的に有効になります。Firebase コンソールの [Authentication 設定] ページでユーザー アクティビティ ロギングを有効にすることもできます。 ログを表示して分析する方法については、Cloud Logging のドキュメントをご覧ください。 |
App Check による不正使用の防止 |
App Check は、未承認のクライアントが認可エンドポイントにアクセスするのを防ぐことで、プロジェクトの不正使用から守ります。 App Check を有効にする方法については、App Check のドキュメントをご覧ください。 |
マルチテナンシー |
テナントを使用すると、単一のプロジェクト内にユーザーと構成からなる複数の個別のサイロを作成できます。 Cloud Identity Platform ドキュメントのマルチテナンシーのスタートガイドをご覧ください。 |
エンタープライズ サポートと SLA |
アップグレードされたプロジェクトは、Identity Platform サービスレベル契約(SLA)に従って認証サービスの稼働率を保証し、エンタープライズグレードのサポートを利用できます。 |
匿名ユーザーの自動クリーンアップ |
30 日以上経過した匿名アカウントを自動で削除するオプションを使用できます。匿名アカウントも、請求と使用量の割り当てにはカウントされなくなります。 |
使用制限
アップグレードすると、Firebase Authentication with Identity Platform に 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 |
プロジェクトをアップグレード
プロジェクトを Firebase Authentication with Identity Platform にアップグレードするには、Firebase コンソールの [認証設定] ページを開きます。
仕組み
アプリへのユーザーのログインを行うには、まずユーザーから認証情報を取得します。認証情報には、ユーザーのメールアドレスとパスワードや、フェデレーション ID プロバイダの OAuth トークンなどがあります。次に、取得した認証情報を Firebase Authentication SDK に渡します。Google のバックエンド サービスによって認証情報が検証され、クライアントにレスポンスが返されます。
ログインが成功すると、ユーザーの基本的なプロフィール情報にアクセスできます。また、Google Cloud やその他の 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 ウェブ Flutter Unity C++ Admin
初めてのご利用ですか?