Admin Auth API の概要

Firebase Admin SDK を使用すると、独自のサーバーを Firebase Authentication に統合できます。Admin SDK を使用して、ユーザーや認証トークンを管理できます。この方法で管理する理由は、主に 3 つあります。

ユーザー管理

常に Firebase コンソールにアクセスして Firebase ユーザーを管理するのが便利とは限りません。これらのユーザーには Admin User Management API からでもプログラムによってアクセスできます。さらに、この API を使用すると、ユーザーの全データの取得や、ユーザーのパスワード、メールアドレス、電話番号の変更など、Firebase コンソールでは実行できない操作を行えます。

カスタム認証

Firebase には、外部ユーザー システムを統合できます。たとえば、既存のユーザー データベースが存在する場合や、Firebase Authentication でネイティブにサポートされないサードパーティの ID プロバイダに統合したい場合が考えられます。

このために、ユーザーを特定する任意のクレームでカスタム トークンを作成できます。これらのカスタム トークンは、クライアントの Firebase Authentication サービスへのログイン、およびトークンのクレームに記述される ID の設定に使用されます。この ID は、Firebase Realtime Database や Cloud Storage など、他の Firebase サービスのアクセス時に使用します。

ID の確認

Firebase Authentication は主に、Firebase Realtime Database や Cloud Storage など、他の Firebase サービスへのアクセスを制限する目的でアプリのユーザーを特定するために使用されます。ただし、こうしたサービスを使用して、独自のサーバーでユーザーを特定することもできます。これによって、Firebase Authentication にログインしたユーザーのために、サーバー側ロジックを安全に実行できます。

このために、Firebase Authentication でサインインしたクライアント アプリケーションから ID トークンを取得し、サーバーに対するリクエストにこのトークンを含めることができます。次に、サーバーでは ID トークンを確認し、(uid、ログインした ID プロバイダなどを含めて)ユーザーを特定するクレームを抽出します。次にサーバーは、ユーザーのためにアクションを実行する目的でこの ID 情報を使用できます。

Firebase Admin SDK に用意されているメソッドを使用してユーザーを管理し、カスタム トークンを生成し、ID トークンを確認することによって、上記の認証タスクを実行できるようになります。

ユーザー管理

Firebase Admin SDK には、管理者権限で Firebase ユーザーを管理するための API が用意されています。この Admin User Management API では、ユーザーの既存の認証情報がなくても、プログラムによってユーザーの取得、作成、更新、削除ができます。また、クライアント側レート制限を懸念する必要もありません。

ユーザーを管理する

カスタム トークンの作成

作成したカスタム トークンの主な用途として、外部または従来の認証メカニズムに対してユーザーの認証を可能にすることがあります。これに該当するのは、LDAP サーバーなどユーザー自身が制御する認証メカニズムや、Firebase でネイティブにサポートされないサードパーティ OAuth プロバイダ(Instagram や LinkedIn など)です。

Firebase Admin SDK には、カスタム トークンを作成するための組み込みメソッドが用意されています。また、サードパーティの JWT ライブラリを使用して、任意の言語でカスタム トークンをプログラムによって作成できます。

サーバーは一意の ID(uid)でカスタム トークンを作成し、そのトークンをクライアント アプリに渡す必要があります。このトークンは、クライアント アプリで Firebase へのログイン時に使用されます。カスタム トークン作成プロセスの詳細およびコードのサンプルについては、カスタム トークンの作成を参照してください。

カスタム トークンの作成

ID トークンの確認

Firebase クライアント アプリがバックエンド サーバーと通信する場合、ユーザーのためにサーバー側ロジックを実行できるように、サーバーで現在ログインしているユーザーを特定することが必要になる場合があります。この処理は、ユーザーが Firebase アプリにログインしたときに Firebase によって作成される ID トークンを使用することにより安全に行うことができます。ID トークンは、OpenID Connect 仕様に準拠し、またユーザーを特定するためのデータとその他のプロフィールおよび認証に関連する情報を含みます。Firebase サービス(Firebase Realtime Database や Cloud Storage など)では、ID トークンを使ってユーザー アクセスが認証されます。また、独自のバックエンドから、これらのトークンを送信、確認、検査できます。これによって、現在ログインしているユーザーを安全に特定して、独自のバックエンド リソースへのアクセスを許可できます。

Admin SDK には、ID トークンを検証するための組み込みメソッドが用意されています。また、サードパーティ JWT ライブラリを使用することで、任意の言語で ID トークンをプログラムによって確認できます。ID トークンの確認プロセスに関する詳細およびコードのサンプルについては、ID トークンの確認を参照してください。

ID トークンを検証する

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。