Firebase JWT 認証(カスタム JWT)
JSON web tokenカスタム 認証プロバイダ は、 Firebase 認証で管理するユーザーを認証するように構成できます。
始める前に
Firebase 認証を使用するには、次のものが必要です。
認証が構成された Firebase プロジェクト。 詳細については、「 Firebase 認証 」を参照してください。 ドキュメント。
App Services AppJSON web tokenカスタム 認証をまだ使用していない 。新しい App Services App を作成する方法については、「 アプリの作成 」を参照してください。
コマンドライン インターフェイスを使用している場合は、ローカル システムにApp Services CLIをインストールして認証する必要があります。
Admin API を使用している場合は、 MongoDB Atlas Admin API公開キーと秘密キーのペアが必要です。 API キーにはプロジェクト オーナーの権限が必要です。
カスタムJSON web token認証プロバイダを構成する
カスタムJSON web token認証は、UI を使用するか、 CLIまたは Admin APIを使用して基礎の構成ファイルを直接変更することで構成できます。 以下から希望する方法を選択します。
左側のナビゲーション メニューで、[ Authenticationをクリックします。 次に、 Authentication Providersタブをクリックし、 Custom JWTプロバイダーを選択します。
これで、カスタムJSON web token認証プロバイダーを Firebase プロジェクトで動作するように構成できます。
[] トグルをクリックしてプロバイダーを有効にします。
Verification MethodをUse a JWK URIに設定します。 JWK URIの次の URL を指定します。
https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com Firebase JSON web tokenのデータを対応する App Services ユーザー アカウントにマッピングするには、Metadata Fields を定義します。
どのメタデータ フィールドも必須ではありません。 ただし、 Firebase JSON web tokenからアプリにユーザー情報を取得するには、これらが役立つ場合があります。
以下は、 Firebase JSON web tokenから App Services ユーザーへのマッピングです。 これらは、「メタデータ フィールド 」のドキュメントに従って、必要に応じて UI のテーブルに追加することも、変更することもできます。
パスフィールド名Firebase. identity.email
メール
Firebase.sign_in_provider
SignInProvider
user_id
userId
Email_verified
EmailVerified
メールアドレス
メールアドレス
AudienceFirebase プロジェクト ID に設定します。
重要
Firebase プロジェクト ID にオーディエンスを設定する必要があります
AudienceFirebase プロジェクト をカスタムID JSON web tokenプロバイダーとして使用するには、UI で任意と表示されていても、 を設定する 必要 があります。
Saveをクリックして変更を配置します
次のコマンドを実行して、 --remote
の値を アプリのクライアントアプリ ID に置き換えます。 これにより、アプリの最新構成ファイルのローカルコピーがダウンロードされ、アプリと同じ名前を使用する構成ファイル ディレクトリに移動されます。
appservices pull --remote "myapp-abcde" cd myapp
新しいカスタムJSON web token認証プロバイダをアプリの /auth/providers.json
ファイルに追加します。 次の構成をテンプレートとして使用し、 audience
の値を Firebase プロジェクト ID に置き換えます。 提供されたmetadata_fields
をそのまま使用することも、メタデータ フィールド のドキュメントに従って必要に応じてマッピングを変更することもできます。
{ "custom-token": { "name": "custom-token", "type": "custom-token", "disabled": false, "config": { "audience": ["<Your Firebase Project ID>"], "jwkURI": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com", "useJWKURI": true }, "secret_config": { "signingKeys": [] }, "metadata_fields": [ { "required": false, "name": "firebase.identities.email", "field_name": "emails" }, { "required": false, "name": "firebase.sign_in_provider", "field_name": "signInProvider" }, { "required": false, "name": "user_id", "field_name": "userId" }, { "required": false, "name": "email_verified", "field_name": "emailVerified" }, { "required": false, "name": "email", "field_name": "email" } ] } }
変更を/auth/providers.json
に保存します。 次に、更新された構成ファイルをプッシュしてアプリを配置します。
appservices push
認証プロバイダの 作成 エンドポイントを使用して、新しいカスタムJSON web token 認証プロバイダをアプリに追加します。
次の構成をテンプレートとして使用します。 以下を確認してください。
アプリの
$PROJECT_ID
と$APP_ID
を指定するAuthorization
ヘッダーに管理 API アクセス トークンを含めます。リクエスト本文内の
audience
値を Firebase プロジェクト ID に置き換えます。
提供されたmetadata_fields
をそのまま使用することも、メタデータ フィールド のドキュメントに従って必要に応じてマッピングを変更することもできます。
curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \ -X "POST" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "custom-token", "type": "custom-token", "disabled": false, "config": { "audience": ["<Your Firebase Project ID>"], "jwkURI": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com", "useJWKURI": true }, "secret_config": { "signingKeys": [] }, "metadata_fields": [ { "required": false, "name": "firebase.identities.email", "field_name": "emails" }, { "required": false, "name": "firebase.sign_in_provider", "field_name": "signInProvider" }, { "required": false, "name": "user_id", "field_name": "userId" }, { "required": false, "name": "email_verified", "field_name": "emailVerified" }, { "required": false, "name": "email", "field_name": "email" } ] }'
Firebase JSON web tokenでログイン
JSON web tokenFirebase 認証を使用するようにカスタム 認証プロバイダーを設定したら、App Services App Firebase を使用してJSON web token にログインできます。
ユーザーを Firebase にログインさせます。 方法については、関連する Firebase SDK ドキュメント を参照してください プラットフォームとプログラミング言語向け。
ユーザーの Firebase JSON web tokenを取得します。 方法については、「 クライアントで ID トークンを取得 する 」を参照してください。 Firebase のドキュメントを参照してください。
Firebase JSON web tokenを使用してAtlas App Servicesで認証します。 HTTP 経由でセッションを開始することも、SDK を使用してログインすることもできます。 その方法については、「 SDK のDocs 」を参照してください。