Introduction à l'API d'authentification d'administrateur

Le SDK Firebase Admin vous permet d'intégrer vos propres serveurs avec l'authentification Firebase. Vous pouvez utiliser le SDK Firebase Admin pour gérer vos utilisateurs ou pour gérer les jetons d'authentification. Il y a plusieurs raisons pour lesquelles vous voudriez faire cela :

Gestion des utilisateurs

Il n'est pas toujours pratique de devoir visiter la console Firebase pour gérer vos utilisateurs Firebase. L'API de gestion des utilisateurs administrateur fournit un accès programmatique à ces mêmes utilisateurs. Il vous permet même de faire des choses que la console Firebase ne peut pas faire, comme récupérer les données complètes d'un utilisateur et modifier le mot de passe, l'adresse e-mail ou le numéro de téléphone d'un utilisateur.

Authentification personnalisée

Vous pouvez intégrer un système utilisateur externe avec Firebase. Par exemple, vous disposez peut-être déjà d'une base de données d'utilisateurs préexistante ou vous souhaitez peut-être intégrer un fournisseur d'identité tiers que l'authentification Firebase ne prend pas en charge de manière native.

Pour ce faire, vous pouvez créer des jetons personnalisés avec des revendications arbitraires identifiant l'utilisateur. Ces jetons personnalisés peuvent ensuite être utilisés pour se connecter au service d'authentification Firebase sur une application client et assumer l'identité décrite par les revendications du jeton. Cette identité sera ensuite utilisée lors de l'accès à d'autres services Firebase, tels que Cloud Storage.

vérification d'identité

L'authentification Firebase est principalement utilisée pour identifier les utilisateurs de votre application afin de restreindre l'accès à d'autres services, comme Cloud Storage. Vous pouvez également utiliser le service pour identifier ces utilisateurs sur votre propre serveur. Cela vous permet d'exécuter en toute sécurité une logique côté serveur pour le compte des utilisateurs connectés avec l'authentification Firebase.

Pour ce faire, vous pouvez récupérer un jeton d'identification à partir d'une application client connectée avec l'authentification Firebase et inclure le jeton dans une requête adressée à votre serveur. Votre serveur vérifie ensuite le jeton d'identification et extrait les revendications qui identifient l'utilisateur (y compris son uid , le fournisseur d'identité avec lequel il s'est connecté, etc.). Ces informations d'identité peuvent ensuite être utilisées par votre serveur pour effectuer des actions au nom de l'utilisateur.

Le SDK Firebase Admin fournit des méthodes pour accomplir les tâches d'authentification ci-dessus en vous permettant de gérer vos utilisateurs, de générer des jetons personnalisés et de vérifier les jetons d'identification.

Réclamations utilisateur personnalisées

Dans certains cas, vous souhaiterez peut-être mettre en œuvre un contrôle d'accès plus précis pour les utilisateurs déjà connectés avec l'un des fournisseurs d'authentification Firebase pris en charge, tels que Email/Mot de passe, Google, Facebook, téléphone, etc. Une combinaison de revendications d'utilisateur personnalisées et de sécurité des applications les règles fournissent cette capacité. Par exemple, un utilisateur connecté avec le fournisseur de courrier électronique et de mot de passe d'authentification Firebase peut avoir un contrôle d'accès défini à l'aide de revendications personnalisées.

Gestion des utilisateurs

Le SDK Firebase Admin fournit une API pour gérer vos utilisateurs Firebase avec des privilèges élevés. L'API de gestion des utilisateurs administrateur vous donne la possibilité de récupérer, créer, mettre à jour et supprimer des utilisateurs par programmation sans nécessiter les informations d'identification existantes d'un utilisateur et sans vous soucier de la limitation de débit côté client.

Gérer les utilisateurs

Création de jetons personnalisés

L'utilisation principale de la création de jetons personnalisés est de permettre aux utilisateurs de s'authentifier auprès d'un mécanisme d'authentification externe ou hérité. Il peut s'agir de celui que vous contrôlez, comme votre serveur LDAP, ou d'un fournisseur OAuth tiers que Firebase ne prend pas en charge de manière native, comme Instagram ou LinkedIn.

Le SDK Firebase Admin dispose d'une méthode intégrée pour créer des jetons personnalisés. Vous pouvez également créer par programmation des jetons personnalisés dans n'importe quelle langue à l'aide de bibliothèques JWT tierces.

Votre serveur doit créer un jeton personnalisé avec un identifiant unique ( uid ) et transmettre ce jeton à une application client, qui l'utilisera pour se connecter à Firebase. Consultez Créer des jetons personnalisés pour obtenir des exemples de code et plus de détails sur le processus de création de jetons personnalisés.

Créer des jetons personnalisés

Vérification du jeton d'identification

Si votre application client Firebase communique avec votre serveur backend, vous devrez peut-être identifier l'utilisateur actuellement connecté sur votre serveur afin de pouvoir exécuter une logique côté serveur en son nom. Vous pouvez le faire en toute sécurité en utilisant des jetons d'identification, qui sont créés par Firebase lorsqu'un utilisateur se connecte à une application Firebase. Les jetons d'identification sont conformes à la spécification OpenID Connect et contiennent des données permettant d'identifier un utilisateur, ainsi que d'autres informations liées au profil et à l'authentification. Vous pouvez envoyer, vérifier et inspecter ces jetons depuis vos propres backends. Cela vous permet d'identifier en toute sécurité l'utilisateur actuellement connecté et de l'autoriser à accéder à vos propres ressources backend.

Le SDK Firebase Admin dispose d'une méthode intégrée pour vérifier les jetons d'identification. Vous pouvez également vérifier par programme les jetons d'identification dans n'importe quelle langue à l'aide de bibliothèques JWT tierces. Consultez Vérifier les jetons d’ID pour plus de détails et des exemples de code sur le processus de vérification des jetons d’ID.

Vérifier les jetons d'identification

Revendications utilisateur personnalisées

Le SDK Firebase Admin vous permet de définir des attributs personnalisés sur les comptes d'utilisateurs. Avec les revendications utilisateur personnalisées, vous pouvez accorder aux utilisateurs différents niveaux d'accès (rôles), qui sont ensuite appliqués dans les règles de sécurité d'une application.

Une fois les revendications personnalisées modifiées sur un utilisateur via le SDK Firebase Admin, elles sont propagées aux utilisateurs authentifiés côté client via leurs jetons d'identification. Le jeton d'ID est un mécanisme fiable pour fournir ces revendications personnalisées, et tous les accès authentifiés doivent valider le jeton d'ID avant de traiter la demande associée.

Contrôler l'accès avec des revendications personnalisées