Introducción a la API de Auth de Admin

El SDK de Firebase Admin te permite integrar tus propios servidores con Firebase Authentication. Puedes usar el SDK de Firebase Admin para administrar tus usuarios o los tokens de autenticación. Hay varios motivos por los que te recomendamos hacerlo:

Administración de usuarios

No siempre resulta conveniente tener que visitar Firebase console para administrar los usuarios de Firebase. La API de administración de usuarios del administrador ofrece un acceso programático a esos mismos usuarios. Incluso te permite realizar acciones que no se pueden hacer en Firebase console, como recuperar todos los datos de un usuario y modificar su contraseña, dirección de correo electrónico o número de teléfono.

Autenticación personalizada

Se puede integrar un sistema de usuario externo con Firebase. Por ejemplo, si tienes una base de datos de usuarios o quieres integrar el sistema en un proveedor de identidad de terceros que no es compatible de manera nativa con Firebase Authentication.

Para hacerlo, se pueden crear tokens personalizados con reclamaciones arbitrarias que identifican al usuario. Estos tokens personalizados se pueden usar para acceder al servicio de Firebase Authentication en una aplicación cliente y adoptar la identidad descrita en las reclamaciones del token. Se usará esta identidad cuando se acceda a otros servicios de Firebase, como Cloud Storage.

Verificación de identidad

Por lo general, Firebase Authentication se usa para identificar a los usuarios de tu app y así restringir el acceso a otros servicios, como Cloud Storage. Sin embargo, también se puede usar el servicio para identificar a esos usuarios en tu propio servidor. Esto te permite realizar tareas lógicas en el servidor de manera segura en nombre de usuarios que hayan accedido con Firebase Authentication.

Para hacerlo, puedes obtener un token de ID de una aplicación cliente que haya accedido con Firebase Authentication y, luego, incluir el token en una solicitud para el servidor. El servidor verifica el token de ID y extrae las reclamaciones que identifican al usuario (como el uid, el proveedor de identidad con el que accedieron, etc.). Posteriormente, el servidor puede usar esta información de identidad para realizar acciones en nombre del usuario.

El SDK de Firebase Admin proporciona métodos para lograr las tareas de autenticación anteriores, ya que te permite administrar los usuarios, generar tokens personalizados y verificar tokens de ID.

Reclamaciones de usuarios personalizadas

En algunos casos, es posible que desees implementar un control de acceso más detallado para los usuarios que ya accedieron con uno de los proveedores de autenticación de Firebase admitidos, como correo electrónico o contraseña, Google, Facebook, teléfono, entre otros. Esto se puede lograr mediante la combinación de reclamaciones de usuarios personalizadas y reglas de seguridad para aplicaciones. Por ejemplo, el control de acceso de un usuario que accedió con el proveedor de correo electrónico y contraseña de Firebase Authentication se puede definir con reclamaciones personalizadas.

Administración de usuarios

El SDK de Firebase Admin proporciona una API para administrar tus usuarios de Firebase con privilegios elevados. La API de administración de usuarios del administrador permite recuperar, crear, actualizar y borrar usuarios de manera programática sin que sea necesario conocer sus credenciales ni preocuparse por los límites de tasa del cliente.

Administra usuarios

Creación de tokens personalizados

El motivo principal para crear tokens personalizados es permitir que los usuarios se autentiquen con un mecanismo externo o heredado. Por ejemplo, podría ser uno que te pertenezca (como un servidor LDAP) o un proveedor OAuth de terceros que no sea compatible de manera nativa con Firebase, como Instagram o LinkedIn.

El SDK de Firebase Admin tiene un método incorporado para crear tokens personalizados. También puedes crear de manera programática tokens personalizados en cualquier idioma, a través de bibliotecas JWT de terceros.

Tu servidor debe crear un token personalizado con un identificador único (uid) y transferir ese token a una app cliente, la cual lo utilizará para acceder a Firebase. Consulta Crea tokens personalizados para ver ejemplos de código y más detalles acerca del proceso de creación de tokens personalizados.

Crea tokens personalizados

Verificación de token de ID

Si tu app cliente de Firebase se comunica con tu servidor de backend, podría ser necesario que identifiques el usuario con sesión activa en el servidor para que realices tareas lógicas en su nombre. Si quieres hacerlo de manera segura, puedes usar tokens de ID, que se crean a través de Firebase cuando un usuario accede a una app de Firebase. Los tokens de ID siguen las especificaciones de OpenID Connect y contienen datos que identifican a un usuario, además de otra información relacionada con el perfil y la autenticación. Puedes enviar, verificar y revisar estos tokens en tus propios backends. Esto te permite identificar de manera segura el usuario activo y autorizarlo para que acceda a los recursos de tu backend.

El SDK de Firebase Admin tiene un método integrado para verificar tokens de ID. También puedes verificar tokens de ID de manera programática en cualquier lenguaje con bibliotecas JWT de terceros. Consulta Cómo verificar tokens de ID para conocer más detalles y ejemplos de código relacionados con el proceso de verificación de tokens de ID.

Verifica tokens de ID

Reclamaciones de usuarios personalizadas

El SDK de Firebase Admin te permite configurar atributos personalizados en las cuentas de usuario. Con las reclamaciones de usuarios personalizadas, puedes otorgar a los usuarios niveles diferentes de acceso (funciones), que luego se aplican en las reglas de seguridad de una aplicación.

Después de que las reclamaciones personalizadas de un usuario se modifican a través del SDK de Firebase Admin, se propagan a los usuarios autenticados en el cliente mediante sus tokens de ID. El token de ID es un mecanismo de confianza que permite enviar estas reclamaciones personalizadas, y todo el acceso autenticado debe validar el token de ID antes de procesar la solicitud asociada.

Controla el acceso con reclamaciones personalizadas