Présentation de l'API Admin Auth

Firebase Admin SDK vous permet d'intégrer vos propres serveurs à Firebase Authentication. Vous pouvez utiliser Firebase Admin SDK pour gérer vos utilisateurs ou vos jetons d'authentification. Plusieurs raisons peuvent vous pousser à effectuer cette opération :

Gestion des utilisateurs

Il n'est pas toujours pratique de devoir accéder à la console Firebase pour gérer vos utilisateurs Authentication. L'API de gestion des utilisateurs administrateurs permet d'accéder à ces mêmes utilisateurs de manière programmatique. Elle vous permet même d'effectuer des actions que la console Firebase ne permet pas, comme récupérer les données complètes d'un utilisateur et modifier son mot de passe, son adresse e-mail ou son numéro de téléphone.

Authentification personnalisée

Vous pouvez intégrer un système d'utilisateurs externes à Authentication. Par exemple, vous disposez peut-être déjà d'une base de données utilisateur ou vous souhaitez peut-être l'intégrer à un fournisseur d'identité tiers que Firebase Authentication 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 Firebase Authentication sur une application cliente et assumer l'identité décrite par les revendications du jeton. Cette identité sera ensuite utilisée pour accéder à d'autres services Authentication, tels que Cloud Storage.

Validation de l'identité

Firebase Authentication est principalement utilisé 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'effectuer de manière sécurisée une logique côté serveur pour le compte des utilisateurs qui se sont connectés avec Firebase Authentication.

Pour ce faire, vous pouvez récupérer un jeton d'identité à partir d'une application cliente connectée avec Firebase Authentication et inclure le jeton dans une requête adressée à votre serveur. Votre serveur valide ensuite le jeton d'identité 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.

Firebase Admin SDK 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 valider des jetons d'identité.

Revendications utilisateur personnalisées

Dans certains cas, vous pouvez implémenter un contrôle d'accès précis pour les utilisateurs déjà connectés avec l'un des fournisseurs d'authentification Authentication compatibles, tels que l'adresse e-mail/le mot de passe, Google, Facebook, le téléphone, etc. Une combinaison de revendications utilisateur personnalisées et de règles de sécurité des applications offre cette fonctionnalité. Par exemple, un utilisateur connecté avec le fournisseur Firebase Authentication Adresse e-mail et mot de passe peut avoir un contrôle des accès défini à l'aide de revendications personnalisées.

Gestion des utilisateurs

Firebase Admin SDK fournit une API permettant de gérer vos utilisateurs Authentication disposant de droits élevés. L'API de gestion des utilisateurs administrateurs vous permet de récupérer, créer, mettre à jour et supprimer des utilisateurs de manière programmatique, sans avoir besoin de leurs identifiants existants et sans vous soucier de la limitation du débit côté client.

Gérer les utilisateurs

Créer des jetons personnalisés

La raison principale de la création de jetons personnalisés est d'autoriser les utilisateurs à s'authentifier auprès d'un mécanisme d'authentification externe ou ancien. Il peut s'agir d'un fournisseur que vous contrôlez, comme votre serveur LDAP, ou d'un fournisseur OAuth tiers que Authentication ne prend pas en charge de manière native, comme Instagram ou LinkedIn.

Firebase Admin SDK 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 quel langage à l'aide de bibliothèques JWT tierces.

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

Créer des jetons personnalisés

Valider des jetons d'ID

Si votre application cliente Authentication communique avec votre serveur backend, vous devrez peut-être identifier l'utilisateur actuellement connecté sur votre serveur afin de pouvoir effectuer une logique côté serveur en son nom. Pour ce faire de manière sécurisée, vous pouvez utiliser des jetons d'identité, qui sont créés par Authentication lorsqu'un utilisateur se connecte à une application Authentication. Les jetons d'identité 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, valider et inspecter ces jetons à partir de vos propres backends. Vous pouvez ainsi identifier en toute sécurité l'utilisateur actuellement connecté et l'autoriser à accéder à vos propres ressources backend.

Firebase Admin SDK dispose d'une méthode intégrée pour valider les jetons d'identité. Vous pouvez également valider par programmation les jetons d'ID dans n'importe quel langage à l'aide de bibliothèques JWT tierces. Pour en savoir plus et obtenir des exemples de code sur la procédure de validation des jetons d'identité, consultez Valider les jetons d'identité.

Valider les jetons d'identité

Revendications utilisateur personnalisées

Firebase Admin SDK vous permet de définir des attributs personnalisés sur les comptes utilisateur. Avec les revendications utilisateurs 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 pour un utilisateur via Firebase Admin SDK, elles sont propagées aux utilisateurs authentifiés côté client via leurs jetons d'ID. Le jeton d'ID est un mécanisme de confiance pour diffuser ces revendications personnalisées. Tous les accès authentifiés doivent valider le jeton d'ID avant de traiter la requête associée.

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