Introducción a la API de autenticación de administrador

El SDK de Firebase Admin le permite integrar sus propios servidores con Firebase Authentication. Puede utilizar el SDK de administración de Firebase para administrar sus usuarios o administrar tokens de autenticación. Hay varias razones por las que querrías hacer esto:

Gestión de usuarios

No siempre es conveniente tener que visitar Firebase console para administrar sus usuarios de Firebase. La API de administración de usuarios administradores proporciona acceso programático a esos mismos usuarios. Incluso le permite hacer cosas que la consola Firebase no puede, como recuperar los datos completos de un usuario y cambiar su contraseña, dirección de correo electrónico o número de teléfono.

Autenticación personalizada

Puede integrar un sistema de usuario externo con Firebase. Por ejemplo, es posible que ya tenga una base de datos de usuarios preexistente o que desee integrarse con un proveedor de identidad externo que Firebase Authentication no admite de forma nativa.

Para hacer esto, puede crear tokens personalizados con reclamos arbitrarios que identifiquen al usuario. Luego, estos tokens personalizados se pueden usar para iniciar sesión en el servicio Firebase Authentication en una aplicación cliente y asumir la identidad descrita en las afirmaciones del token. Esta identidad se utilizará al acceder a otros servicios de Firebase, como Cloud Storage.

Verificación de identidad

Firebase Authentication se utiliza principalmente para identificar a los usuarios de su aplicación con el fin de restringir el acceso a otros servicios, como Cloud Storage. También puede utilizar el servicio para identificar a estos usuarios en su propio servidor. Esto le permite realizar de forma segura la lógica del lado del servidor en nombre de los usuarios que iniciaron sesión con Firebase Authentication.

Para hacer esto, puede recuperar un token de identificación de una aplicación cliente que haya iniciado sesión con Firebase Authentication e incluir el token en una solicitud a su servidor. Luego, su servidor verifica el token de identificación y extrae los reclamos que identifican al usuario (incluido su uid , el proveedor de identidad con el que inició sesión, etc.). Su servidor puede utilizar esta información de identidad para llevar a cabo acciones en nombre del usuario.

El SDK de Firebase Admin proporciona métodos para realizar las tareas de autenticación anteriores al permitirle administrar sus usuarios, generar tokens personalizados y verificar tokens de identificación.

Reclamaciones de usuario personalizadas

En algunos casos, es posible que desee implementar un control de acceso detallado para los usuarios que ya iniciaron sesión con uno de los proveedores de autenticación de Firebase admitidos, como correo electrónico/contraseña, Google, Facebook, teléfono, etc. Una combinación de reclamos de usuario personalizados y seguridad de la aplicación. Las reglas proporcionan esta capacidad. Por ejemplo, un usuario que inició sesión con el proveedor de contraseña y correo electrónico de autenticación de Firebase puede tener un control de acceso definido mediante notificaciones personalizadas.

Gestión de usuarios

El SDK de Firebase Admin proporciona una API para administrar sus usuarios de Firebase con privilegios elevados. La API de administración de usuarios administrativos le brinda la capacidad de recuperar, crear, actualizar y eliminar usuarios mediante programación sin requerir las credenciales existentes del usuario y sin preocuparse por la limitación de velocidad del lado del cliente.

Administrar usuarios

Creación de tokens personalizados

El uso principal de la creación de tokens personalizados es permitir a los usuarios autenticarse mediante un mecanismo de autenticación externo o heredado. Podría ser uno que usted controle, como su servidor LDAP, o un proveedor externo de OAuth que Firebase no admite de forma nativa, como Instagram o LinkedIn.

El SDK de Firebase Admin tiene un método integrado para crear tokens personalizados. También puede crear tokens personalizados mediante programación en cualquier idioma utilizando bibliotecas JWT de terceros.

Su servidor debe crear un token personalizado con un identificador único ( uid ) y pasar ese token a una aplicación cliente, que lo usará para iniciar sesión en Firebase. Consulte Crear tokens personalizados para ver ejemplos de código y más detalles sobre el proceso de creación de tokens personalizados.

Crear tokens personalizados

Verificación del token de identificación

Si su aplicación cliente de Firebase se comunica con su servidor backend, es posible que deba identificar al usuario que actualmente inició sesión en su servidor para poder realizar la lógica del lado del servidor en su nombre. Puede hacerlo de forma segura mediante el uso de tokens de identificación, que Firebase crea cuando un usuario inicia sesión en una aplicación de Firebase. Los tokens de identificación se ajustan a la especificación OpenID Connect y contienen datos para identificar a un usuario, así como otra información relacionada con el perfil y la autenticación. Puede enviar, verificar e inspeccionar estos tokens desde sus propios servidores. Esto le permite identificar de forma segura al usuario que ha iniciado sesión actualmente y autorizarlo a acceder a sus propios recursos de backend.

El SDK de Firebase Admin tiene un método integrado para verificar los tokens de identificación. También puede verificar mediante programación tokens de identificación en cualquier idioma utilizando bibliotecas JWT de terceros. Consulte Verificar tokens de ID para obtener más detalles y ejemplos de códigos sobre el proceso de verificación de tokens de ID.

Verificar tokens de identificación

Reclamaciones de usuario personalizadas

El SDK de Firebase Admin te permite configurar atributos personalizados en cuentas de usuario. Con reclamos de usuario personalizados, puede brindarles a los usuarios diferentes niveles de acceso (roles), que luego se aplican en las reglas de seguridad de una aplicación.

Después de que se modifican las reclamaciones personalizadas en un usuario a través del SDK de administrador de Firebase, se propagan a los usuarios autenticados en el lado del cliente a través de sus tokens de identificación. El token de identificación es un mecanismo confiable para entregar estas reclamaciones personalizadas, y todo acceso autenticado debe validar el token de identificación antes de procesar la solicitud asociada.

Controle el acceso con reclamos personalizados