Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Firebase JWT 認証(カスタム JWT)

項目一覧

  • 始める前に
  • カスタムJSON web token認証プロバイダを構成する
  • Firebase JSON web tokenでログイン

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認証は、UI を使用するか、 CLIまたは Admin APIを使用して基礎の構成ファイルを直接変更することで構成できます。 以下から希望する方法を選択します。

左側のナビゲーション メニューで、[ Authenticationをクリックします。 次に、 Authentication Providersタブをクリックし、 Custom JWTプロバイダーを選択します。

これで、カスタムJSON web token認証プロバイダーを Firebase プロジェクトで動作するように構成できます。

  1. [] トグルをクリックしてプロバイダーを有効にします。

  2. Verification MethodUse a JWK URIに設定します。 JWK URIの次の URL を指定します。

    https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com
  3. 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

    メールアドレス

    メールアドレス

  4. AudienceFirebase プロジェクト ID に設定します。

    重要

    Firebase プロジェクト ID にオーディエンスを設定する必要があります

    AudienceFirebase プロジェクト をカスタムID JSON web tokenプロバイダーとして使用するには、UI で任意と表示されていても、 を設定する 必要 があります。

  5. Saveをクリックして変更を配置します

次のコマンドを実行して、 --remoteの値を アプリのクライアントアプリ ID に置き換えます。 これにより、アプリの最新構成ファイルのローカルコピーがダウンロードされ、アプリと同じ名前を使用する構成ファイル ディレクトリに移動されます。

appservices pull --remote "myapp-abcde"
cd myapp

新しいカスタムJSON web token認証プロバイダをアプリの /auth/providers.json ファイルに追加します。 次の構成をテンプレートとして使用し、 audienceの値を Firebase プロジェクト ID に置き換えます。 提供されたmetadata_fieldsをそのまま使用することも、メタデータ フィールド のドキュメントに従って必要に応じてマッピングを変更することもできます。

/auth/providers.json
{
"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"
}
]
}'

JSON web tokenFirebase 認証を使用するようにカスタム 認証プロバイダーを設定したら、App Services App Firebase を使用してJSON web token にログインできます。

  1. ユーザーを Firebase にログインさせます。 方法については、関連する Firebase SDK ドキュメント を参照してください プラットフォームとプログラミング言語向け。

  2. ユーザーの Firebase JSON web tokenを取得します。 方法については、「 クライアントで ID トークンを取得 する 」を参照してください。 Firebase のドキュメントを参照してください。

  3. Firebase JSON web tokenを使用してAtlas App Servicesで認証します。 HTTP 経由でセッションを開始することも、SDK を使用してログインすることもできます。 その方法については、「 SDK のDocs 」を参照してください。

戻る

カスタム JWT