Docs Menu
Docs Home
/ /
Proveedores de autenticación

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á lo siguiente para utilizar la autenticación de Firebase:

  • 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.

  • Si está utilizando la interfaz de línea de comandos, necesita que App Services CLI esté instalado y autenticado en su sistema local.

  • Si usa la API de administración, necesita un par de claves pública/privada de la API de administración de MongoDB Atlas. La clave API debe tener permisos de propietario del proyecto.

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 Firebase.

  1. Haga clic en el interruptor 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 de acceso
    Nombre de campo

    firebase.identities.email

    correos electrónicos

    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. Establezca Audience en su ID de proyecto 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. Haga clic en Save e implemente sus 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

Añade un nuevo proveedor de autenticación JWT personalizado al archivo de tu /auth/providers.json aplicación. Usa la siguiente configuración como plantilla, reemplazando el audience valor con el ID de tu proyecto de Firebase. Puedes usar los proporcionados metadata_fields tal como están o modificar la asignación según lo desees siguiendo la documentación de los campos de metadatos.

/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.

  • Reemplace el valor audience en el cuerpo de la solicitud con su ID de proyecto de Firebase.

Puede utilizar los proporcionados metadata_fields tal como están o modificar la asignación como desee siguiendo la documentación de Campos de metadatos.

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