Firebase Admin SDK te permite integrar tus propios servidores con Firebase Authentication. Puedes usar Firebase Admin SDK 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 la consola de Firebase para administrar tus 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, 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. Esta identidad se usará cuando se acceda a otros servicios de Firebase, como Cloud Storage.
Verificación de identidad
Firebase Authentication se usa principalmente para identificar a los usuarios de tu app con el fin de 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 una lógica del servidor de forma segura en nombre de usuarios que accedieron 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.
Firebase Admin SDK proporciona métodos para lograr las tareas de autenticación anteriores permitiéndote administrar tus 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
Firebase Admin SDK 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 usuariosCreació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.
Firebase Admin SDK tiene un método integrado 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.
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.
Firebase Admin SDK 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.
Reclamaciones de usuarios personalizadas
Firebase Admin SDK 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 de Firebase Admin SDK, se propagan a los usuarios autenticados en el lado del 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