Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Admin AuthAPIの概要

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase Admin SDKを使用すると、独自のサーバーをFirebaseAuthenticationと統合できます。 Firebase Admin SDKを使用して、ユーザーを管理したり、認証トークンを管理したりできます。これを実行したい理由はいくつかあります。

ユーザー管理

Firebaseユーザーを管理するためにFirebaseコンソールにアクセスする必要があるとは限りません。 adminユーザー管理APIは、それらの同じユーザーにプログラムによるアクセスを提供します。また、ユーザーの完全なデータを取得したり、ユーザーのパスワード、メールアドレス、電話番号を変更したりするなど、Firebaseコンソールではできないことを実行することもできます。

カスタム認証

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

これを行うには、ユーザーを識別する任意のクレームを使用してカスタムトークンを作成できます。これらのカスタムトークンを使用して、クライアントアプリケーションでFirebase認証サービスにサインインし、トークンのクレームで記述されたIDを引き継ぐことができます。このIDは、クラウドストレージなどの他のFirebaseサービスにアクセスするときに使用されます。

本人確認

Firebase認証は主に、クラウドストレージなどの他のサービスへのアクセスを制限するためにアプリのユーザーを識別するために使用されます。このサービスを使用して、自分のサーバーでこれらのユーザーを識別することもできます。これにより、FirebaseAuthenticationでサインインしたユーザーに代わってサーバー側のロジックを安全に実行できます。

これを行うには、Firebase認証でログインしたクライアントアプリケーションからIDトークンを取得し、サーバーへのリクエストにトークンを含めることができます。次に、サーバーはIDトークンを検証し、ユーザーを識別するクレームを抽出します( uid 、ログインに使用したIDプロバイダーなどを含む)。このID情報は、サーバーがユーザーに代わってアクションを実行するために使用できます。

Firebase Admin SDKは、ユーザーの管理、カスタムトークンの生成、IDトークンの確認を可能にすることで、上記の認証タスクを実行するためのメソッドを提供します。

カスタムユーザークレーム

場合によっては、Eメール/パスワード、Google、Facebook、電話など、サポートされているFirebase認証プロバイダーのいずれかで既にサインインしているユーザーにきめ細かいアクセス制御を実装することをお勧めします。カスタムユーザークレームとアプリケーションセキュリティの組み合わせルールはこの機能を提供します。たとえば、Firebase Authentication Email and Passwordプロバイダーでサインインしたユーザーは、カスタムクレームを使用してアクセス制御を定義できます。

ユーザー管理

Firebase Admin SDKは、昇格された権限を持つFirebaseユーザーを管理するためのAPIを提供します。管理者ユーザー管理APIを使用すると、ユーザーの既存の資格情報を必要とせず、クライアント側のレート制限を気にすることなく、プログラムでユーザーを取得、作成、更新、および削除することができます。

ユーザーを管理する

カスタムトークンの作成

カスタムトークンを作成する主な用途は、ユーザーが外部またはレガシー認証メカニズムに対して認証できるようにすることです。これは、LDAPサーバーなどのユーザーが制御するものか、InstagramやLinkedInなどのFirebaseがネイティブでサポートしていないサードパーティのOAuthプロバイダーである可能性があります。

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

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

カスタムトークンを作成する

IDトークンの検証

Firebaseクライアントアプリがバックエンドサーバーと通信する場合、サーバー側のロジックを実行できるように、サーバーで現在ログインしているユーザーを特定する必要がある場合があります。これは、ユーザーがFirebaseアプリにログインしたときにFirebaseによって作成されるIDトークンを使用して安全に行うことができます。 IDトークンはOpenIDConnect仕様に準拠しており、ユーザーを識別するためのデータ、およびその他のプロファイルと認証関連の情報が含まれています。独自のバックエンドからこれらのトークンを送信、検証、および検査できます。これにより、現在サインインしているユーザーを安全に識別し、それらを独自のバックエンドリソースに承認することができます。

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

IDトークンを確認する

カスタムユーザーの主張

Firebase Admin SDKを使用すると、ユーザーアカウントにカスタム属性を設定できます。カスタムユーザークレームを使用すると、ユーザーにさまざまなレベルのアクセス(ロール)を与えることができます。これらのアクセスは、アプリケーションのセキュリティルールで適用されます。

カスタムクレームは、Firebase Admin SDKを介してユーザーで変更された後、IDトークンを介してクライアント側の認証済みユーザーに伝達されます。 IDトークンは、これらのカスタムクレームを配信するための信頼できるメカニズムであり、認証されたすべてのアクセスは、関連する要求を処理する前にIDトークンを検証する必要があります。

カスタムクレームでアクセスを制御する