Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Authentication Providers

Autenticación JWT de Firebase (JWT personalizado)

Puede configurar el proveedor de autenticación JWT personalizado para autenticar a los usuarios que administra con Autenticación de Firebase.

Necesitarás lo siguiente para usar Firebase Authentication:

  • Un proyecto de Firebase con autenticación configurada. Para obtener más información, consulta la documentación de Firebase Authentication.

  • Una App Services App que aún no utilice autenticación JWT personalizada. Para aprender a crear una nueva aplicación de App Services, consulta Crear una aplicación.

  • If you're using the command line interface, you need App Services CLI to be installed and authenticated on your local system.

  • If you're using the Admin API, you need a MongoDB Atlas Admin API public/private key pair. The API key must have Project Owner permissions.

Puedes configurar la autenticación JWT personalizada desde la interfaz de usuario o modificando directamente los archivos de configuración subyacentes con la CLI o la API de administración. Elige tu método preferido a continuación.

En el menú de navegación de la izquierda, haga clic en AuthenticationLuego haga clic en la pestaña Authentication Providers y seleccione el proveedor Custom JWT.

Ahora puedes configurar el proveedor de autenticación JWT personalizado para que funcione con tu proyecto de Firebase.

  1. Haz clic en el conmutador para habilitar el proveedor.

  2. Establezca Verification Method en Use a JWK URI. Especifique la siguiente URL para JWK URI:

    https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com
  3. Define Metadata Fields para asignar datos de Firebase JWT a la cuenta de usuario de App Services correspondiente.

    Ninguno de los campos de metadatos es obligatorio. Sin embargo, pueden resultarte útiles para obtener información del usuario del JWT de Firebase en tu aplicación.

    A continuación, se muestra una asignación del JWT de Firebase a un usuario de App Services. Puede agregarlos a la tabla en la interfaz de usuario tal como están o modificar la asignación según sus preferencias, siguiendo la documentación de Campos de Metadatos.

    ruta
    Nombre de campo

    firebase.identities.email

    mensajes de correo electrónico

    firebase.sign_in_provider

    Proveedor de inicio de sesión

    user_id

    ID de usuario

    correo electrónico verificado

    emailVerified

    correo electrónico

    correo electrónico

  4. Configura Audience en tu ID del grupo de Firebase.

    Importante

    Debes establecer la Audiencia en el ID del proyecto de Firebase

    Debes Audience establecer para usar tu ID del grupo Firebase como proveedor personalizado de JWT, aunque esté marcado como opcional en la Interfaz de Usuario.

  5. Haz clic en Save e implementa tus cambios

Ejecute el siguiente comando, reemplazando el valor de --remote con el ID de la aplicación cliente de su aplicación. Esto descarga una copia local de los últimos archivos de configuración de su aplicación y navega al directorio de archivos de configuración, que usa el mismo nombre que su aplicación.

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

Add a new Custom JWT authentication provider to your App's /auth/providers.json file. Use the following configuration as a template, replacing the audience value with your Firebase Project ID. You can use the provided metadata_fields as they are or modify the mapping as you wish following the Metadata Fields documentation.

/auth/proveedores.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"
}
]
}
}

Guarda los cambios en /auth/providers.json. Luego, envía el archivo de configuración actualizado para implementar tu aplicación:

appservices push

Agregue un nuevo proveedor de autenticación JWT personalizado a su aplicación mediante el punto final Crear un proveedor de autenticación.

Utilice la siguiente configuración como plantilla. Asegúrese de:

  • Especifica el $PROJECT_ID y $APP_IDde tu aplicación

  • Incluya un token de acceso a la API de administración en el encabezado Authorization.

  • Replace the audience value in the request body with your Firebase Project ID.

You can use the provided metadata_fields as they are or modify the mapping as you wish following the Metadata Fields documentation.

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"
}
]
}'

Una vez que haya configurado el proveedor de autenticación JWT personalizado para usar la autenticación Firebase, puede iniciar sesión en su aplicación de App Services con un JWT de Firebase.

  1. Inicie la sesión del usuario en Firebase. Para saber cómo, consulte la documentación del SDK de Firebase correspondiente a su plataforma y lenguaje de programación.

  2. Obtén el JWT de Firebase del usuario. Para saber cómo, consulta "Recuperar tokens de ID en clientes" en la documentación de Firebase.

  3. Usa Firebase JWT para autenticarte con Atlas App Services. Puedes iniciar sesión mediante HTTP o con un SDK. Para saber cómo, consulta la documentación de tu SDK:

Volver

JWT personalizado

En esta página