Firebase の電話番号の確認

Firebase Phone Number VerificationFirebase PNV)は、ユーザーの電話番号を迅速かつ安全に確認する方法です。SMS ベースの確認では、ユーザーがテキスト メッセージからコードを受け取って入力する必要がありますが、Firebase PNV では 1 回タップするだけで、接続された携帯通信会社からデバイスの SIM の電話番号を直接取得できます。これにより、ユーザーの負担が軽減され、SMS メッセージの配信に依存しないことで信頼性が向上し、SMS の使用時に一般的に悪用される不正行為を排除できます。

主な機能

携帯通信会社を信頼できる情報源として使用する Firebase PNV を使用することで、Google は SIM の確認済みの電話番号を携帯通信会社から直接取得し、アプリを現在実行しているデバイスの番号を通知します。SMS OTP が通知できるのは、ユーザーがこの電話番号にアクセスできるかどうかのみです。
スタンドアロンで使用するか、ID プロバイダと組み合わせて使用する Firebase PNV は、簡単に統合できる信頼性のある電話番号の確認方法として単独で使用することも、Firebase Authentication や独自の認証システムと組み合わせてログイン方法として使用することもできます。
利用可能な携帯通信会社を自動的に使用する Firebase PNV SDK を使用して互換性を検出し、デバイスで Firebase PNV がまだサポートされていない場合は、SMS などの別の方法にフォールバックできます。Firebase PNV は、世界中の携帯通信会社で順次利用可能になります。新しい携帯通信会社が利用可能になると、アプリを変更することなく自動的に使用できます。参加している携帯通信会社のリストについては、携帯通信会社のサポートをご覧ください。
SMS フィッシング攻撃を排除する Firebase PNV は電話番号を確認するための SMS メッセージを送信しないため、ユーザーはアプリからワンタイム パスコードを含むメッセージが送信されることを想定しません。このため、アカウントの乗っ取り攻撃に利用される可能性があります。

仕組み

電話番号の確認リクエストを行った場合、Firebase PNV は次の手順を実行します。

  1. ユーザーのデバイスと携帯通信会社がサポートされていることを確認します。

  2. アプリで電話番号を共有することについてユーザーの同意を得ます。

  3. SIM に割り当てられた携帯通信会社と連携して、確認済みの電話番号を取得します。

  4. 通常、ユーザーが同意してから 1~3 秒後に、確認済みの電話番号を含む署名付きトークンがアプリに返されます。

このトークンの署名を確認した後、アプリはユーザーの確認済みの電話番号を取得します。このトークンは、電話番号ベースのログインフローの一部として使用することもできます(Firebase Authentication や独自の認証バックエンドを使用するなど)。

実装パス

Firebase プロジェクトを設定する Firebase コンソールでオンボーディングの手順を完了して、Firebase プロジェクトの課金と Firebase Phone Number Verification API を有効にします。
SDK をインストールして初期化する 使用しているアプリのプラットフォーム用 Firebase PNV SDK をインストールします。この SDK では、OAuth ブランドの確認が正常に完了している必要があります。
説明画面を設計する (推奨)正式なユーザー同意 UI をトリガーする前に、番号を取得する SIM を選択する必要があること、およびこれが SMS OTP よりも高速で安全である仕組みを説明します。これにより、混乱を減らし、新しい電話番号の確認フローについてユーザーをトレーニングできます。
デバイスと携帯通信会社の互換性を確認する (推奨)アプリの起動時に、Firebase PNV SDK を使用して、デバイスとその携帯通信会社が Firebase PNV と互換性があることを確認します。互換性がある場合は、説明画面を表示し、同意を求めるプロンプトを表示します。互換性がない場合は、SMS など、以前の電話番号の確認方法を使用します。
確認済みの電話番号をリクエストする Firebase PNV SDK を使用して、携帯通信会社からデバイスの確認済みの電話番号をリクエストします。これにより、ユーザーの同意がトリガーされます。説明画面は、ユーザーが同意を完了する準備を整えるのに役立ちます。
レスポンス トークンを確認する Firebase PNV サービスからのレスポンスで、署名付きトークンを取得します。取得したトークンは、アプリのバックエンドに送信できます。バックエンドで、トークンの署名を確認します。署名が有効な場合、トークンにはデバイスの確認済みの電話番号が含まれます。

次のステップ

  • Firebase PNV は、確認ごとに費用が発生する有料サービスです。詳細については、料金のページをご覧ください。
  • Android アプリで Firebase PNV を使用する方法については、Android で使ってみるをご覧ください。