Intégration API

Firebase Auth : synchroniser identités et profils métier

Jérémy Chomel Dawap
  • Publié le : 20 juin 2026
  • Mis à jour le : 5 septembre 2026
  • Temps de lecture : 16 minutes
  1. Séparer identité, profil et autorisation
  2. Relier le UID au compte métier
  3. Borner l’Admin SDK et les comptes de service
  4. Utiliser les custom claims sans y mettre le profil
  5. Vérifier tokens, sessions et révocation
  6. Choisir fonctions bloquantes et événements
  7. Qualifier Identity Platform et le multi-tenant
  8. Migrer les comptes et leurs hashes
  9. Jouer une recette contradictoire
  10. Donner au support une preuve et une action suivante
  11. Éviter les erreurs fréquentes qui fragilisent Firebase Auth
  12. Plan d’action pour un premier lot Firebase Auth maîtrisé
  13. Relier révocation, multi-tenant et autorisation API
  14. Conclusion : prouver la décision backend
Portrait de Jérémy Chomel

Le risque métier apparaît quand Firebase Authentication identifie correctement un utilisateur, mais que l’application ne sait plus si cette personne appartient encore au bon compte client, si son abonnement ouvre la fonction demandée ou si un rôle retiré doit être opposable immédiatement. Ces décisions vivent généralement dans le produit, le CRM, le billing ou un référentiel interne.

Le problème s’aggrave lorsque ces couches sont confondues. Un email devient la clé de tous les systèmes, le profil complet est copié dans des custom claims, le backend accepte un token sans vérifier son projet, ou le support désactive un user en pensant que toutes les sessions sont déjà inutilisables. Le login continue à fonctionner, mais personne ne sait expliquer précisément pourquoi l’action métier a été autorisée.

Contre-intuitivement, multiplier les claims ou raccourcir les jetons ne répare pas une autorité métier ambiguë. Si le retrait d’un droit critique ne peut pas être mesuré de Firebase jusqu’au backend, alors la population ne doit pas être étendue : la validité cryptographique ne prouve ni la fraîcheur du profil ni la fermeture effective des sessions.

La méthode sépare identité, profil, autorisation et session afin de décider où lire chaque vérité, quoi mettre en cache et quand bloquer. Si votre besoin est déjà de construire ou reprendre le connecteur, notre page intégrateur Firebase Auth API précise le pilote, les livrables et les limites de preuve de l’accompagnement Dawap.

Séparer identité, profil et autorisation

Donner une responsabilité à chaque donnée

Firebase Auth porte le user, son UID, ses providers, son état et des métadonnées d’authentification. La base produit porte souvent l’organisation, le contrat, les préférences, les consentements détaillés et les droits contextuels. Le backend combine l’identité vérifiée avec cet état métier pour autoriser une ressource.

Le contrat doit indiquer, champ par champ, quelle source crée, corrige et retire la valeur. Un rôle commercial issu du billing ne doit pas devenir vrai parce qu’un client le transmet. À l’inverse, un attribut purement métier n’a pas à gonfler tous les ID tokens alors qu’il peut être lu depuis la base serveur au moment utile.

Écrire la décision sous forme de question

« Cette requête possède-t-elle un token valide ? » n’est que la première étape. La vraie question peut être : « Ce UID appartient-il encore à cette organisation et son offre autorise-t-elle cette opération ? » Cette formulation fait apparaître le tenant, la ressource, la fraîcheur attendue et le système qui tranche.

Si la réponse varie selon l’organisation, l’offre ou la sensibilité de l’action, alors le contrat doit porter ces entrées jusqu’au point d’autorisation. Le verdict conserve la règle appliquée, sa version et la source relue ; il ne se résume pas à un booléen sans contexte que le support serait incapable d’expliquer.

Relier le UID au compte métier sans dépendre de l’email

Conserver une table de correspondance stable

L’email change, peut être réutilisé ou arriver depuis plusieurs providers. Le mapping conserve au minimum le UID Firebase, l’identifiant métier, le projet ou tenant concerné, la provenance et l’état de rapprochement. Une adresse reste un attribut vérifié, pas une clé universelle implicite.

Lors d’un account linking, la recette vérifie que le même compte produit est conservé et que ni consentement ni organisation ne sont perdus. Une collision ambiguë rejoint une file de résolution. La fusion automatique de deux identités actives est irréversible et peut déplacer des données vers la mauvaise personne.

Traiter la création comme une projection

La création du profil métier part d’un événement ou d’un appel orchestré, mais elle relit l’état Firebase avant de muter. Une clé idempotente empêche de créer deux profils après un timeout. Le résultat conserve UID, identifiant métier, version de mapping et décision finale.

Le traitement reçoit en entrée le projet, le UID, la provenance et l’identifiant de corrélation ; il produit en sortie un profil relié ou un conflit qualifié. Un retry relit cette sortie avant toute nouvelle écriture. Cette responsabilité explicite évite qu’un appel rejoué transforme une panne réseau en doublon métier.

Borner l’Admin SDK et les comptes de service

Séparer les privilèges serveur des capacités client

L’Admin SDK peut gérer les users, créer des custom tokens, vérifier des ID tokens et modifier les custom claims. Ces opérations sont privilégiées. Elles doivent s’exécuter dans un environnement serveur, avec une identité de service protégée et des permissions IAM limitées au flux concerné.

Un worker d’import n’a pas besoin des mêmes droits que l’API qui vérifie les sessions. Séparer les comptes techniques réduit l’impact d’une fuite et permet de révoquer un usage sans arrêter tout le produit. Les logs conservent l’acteur technique et le motif, jamais la clé privée ni le token complet.

Tester aussi les refus

La recette confirme qu’un service peut exécuter sa tâche, puis qu’il ne peut pas supprimer un user, modifier un provider ou agir sur un autre projet sans autorisation. Une permission minimale n’est prouvée qu’avec ces cas négatifs.

Un cas concret utilise deux projets et deux identités de service : le worker autorisé importe sa cohorte, tandis que l’API de vérification reçoit un refus sur la mutation d’un compte. Si la seconde identité peut encore créer un custom token ou changer des claims, alors son rôle IAM doit être corrigé avant le pilote.

Utiliser les custom claims sans y mettre le profil métier

Réserver le token au contrôle d’accès

Firebase recommande les custom claims pour l’autorisation, pas pour stocker un profil détaillé. Leur payload est limité à 1 000 octets. Une organisation courante, un rôle compact ou un indicateur de niveau peuvent y tenir ; une liste de contrats, de permissions dynamiques ou de préférences n’y a pas sa place.

Chaque claim possède un owner, une signification et une règle de retrait. Les noms sont versionnés afin d’éviter qu’une application interprète différemment la même valeur. Le backend valide le token avant d’utiliser ses claims ; une valeur reçue séparément depuis le client ne fait jamais foi.

Accepter qu’une mise à jour ne soit pas instantanée

Après modification, les nouveaux claims arrivent lors d’une nouvelle connexion ou réauthentification, au renouvellement du token, ou après un refresh forcé. Cette fenêtre est acceptable pour certains affichages, pas forcément pour un droit financier ou un départ. Le contrat décide donc si le backend relit la source métier, force un nouveau token ou déclenche une révocation.

En pratique, le seuil dépend de l’impact : une préférence d’interface peut attendre le prochain renouvellement, alors qu’un droit d’administration exige une lecture serveur ou une révocation immédiate. La métrique utile mesure le temps entre la décision métier et le premier refus backend, pas seulement la date à laquelle le claim a été écrit.

Vérifier ID tokens, sessions et révocation au bon niveau

Ne pas confondre signature valide et accès encore autorisé

Le backend reçoit l’ID token par HTTPS puis vérifie notamment signature, issuer, audience, expiration et UID. La vérification standard avec l’Admin SDK ne contrôle pas automatiquement la révocation. Ce contrôle supplémentaire doit être demandé explicitement et peut nécessiter un aller-retour réseau.

La politique place ce coût là où le risque l’exige : changement de coordonnées bancaires, export sensible, administration ou action irréversible. Pour les ressources moins critiques, une durée courte, une règle Firebase ou une lecture métier peut offrir un meilleur compromis. Le choix est documenté, pas caché dans un helper commun.

Distinguer logout local et révocation

Effacer un token ou un cookie côté navigateur ferme l’interface locale, pas nécessairement toutes les sessions de l’utilisateur. Firebase permet de révoquer les refresh tokens et de vérifier cet état. Le scénario de départ teste plusieurs appareils et un token émis avant la révocation, puis mesure quand l’action backend est réellement refusée.

Pour une application web traditionnelle, un cookie de session serveur peut remplacer la persistance client. Il faut alors vérifier le token récent avant l’échange, protéger l’endpoint contre le CSRF, appliquer les attributs de cookie et décider si la révocation est contrôlée à chaque requête sensible.

Choisir fonctions bloquantes et événements sans dépendance cachée

Bloquer une connexion uniquement pour une règle critique

Firebase Authentication with Identity Platform permet des fonctions avant création ou avant connexion. Elles peuvent refuser le parcours ou enrichir certaines données, mais elles doivent répondre dans le délai documenté de sept secondes. Une dépendance CRM lente placée ici peut donc empêcher tous les utilisateurs concernés de se connecter.

Avant d’ajouter une fonction bloquante, l’équipe choisit fail-open ou fail-closed, budget de latence, cache autorisé, message client, métriques et procédure de retrait du trigger. Le contrôle doit être assez important pour justifier que Firebase Auth dépende de sa disponibilité.

Connaître les trous des événements asynchrones

Les triggers Auth de création et suppression appartiennent aux fonctions de première génération. La documentation précise aussi qu’une suppression de plusieurs users via l’Admin SDK ne déclenche pas les événements individuels de suppression. Un nettoyage métier critique ne peut donc pas reposer uniquement sur l’hypothèse d’un onDelete.

Le workflow de suppression inventorie les UID, exécute l’opération, conserve le résultat par user et rapproche ensuite Auth avec la base métier. L’événement reste utile comme signal ; l’orchestrateur garde la responsabilité de prouver chaque fermeture.

Qualifier Identity Platform avant de promettre le multi-tenant

Vérifier l’offre et la frontière produit

Le multi-tenant, les fonctions bloquantes, la MFA et certains providers d’entreprise sont associés à Firebase Authentication with Identity Platform. Chaque tenant peut posséder ses users et providers. L’intégration utilise un client tenant-aware et porte le tenantId dans les mappings, les jobs, les erreurs et les écrans support.

Créer un tenant technique par client n’est pas automatiquement la bonne décision. Il faut comparer isolation attendue, nombre de clients, providers, branding, règles, opérations support et coût de migration. L’analyse de l’isolation multi-tenant SaaS aide à distinguer frontière d’identité et frontière complète de données.

Migrer les comptes et leurs hashes sans reset global

Inventorier avant d’importer

La migration recense UID existants, emails vérifiés, providers, facteurs, comptes désactivés, créations en doublon et algorithmes de hash. L’Admin SDK accepte plusieurs formats de hash documentés, avec leurs paramètres. Une valeur inconnue ne doit pas être approximée : elle rejoint un parcours de récupération explicite.

Le pilote importe une cohorte représentative et suit premier login, échec de mot de passe, account linking, token, profil métier et support. Les comptes sources restent lisibles pendant la fenêtre de coexistence. Le rollback précise ce qui peut revenir en arrière et ce qui, comme un changement de mot de passe, doit suivre un autre chemin.

Respecter quotas et protections anti-abus

Les créations, suppressions, recherches, SMS, imports et échanges de tokens possèdent des limites qui dépendent de l’opération et parfois de l’offre. Elles peuvent évoluer. Le plan relit les quotas officiels juste avant la bascule, borne la concurrence et prévoit backoff, fenêtre, pause et reprise au curseur.

Le worker journalise le curseur, le nombre accepté, les rejets et la prochaine échéance autorisée sans enregistrer de secret. Une réponse de quota ne repart pas en boucle serrée : la file applique le délai, réduit la concurrence et alerte l’owner si la cohorte ne peut plus finir dans la fenêtre de migration.

Jouer une recette qui contredit le scénario nominal

Tester la fraîcheur d’un droit

Le scénario retire un rôle alors qu’un ancien ID token reste présent sur deux appareils. Il tente la ressource publique, une fonction payante et une opération d’administration. Le verdict montre quelle couche refuse, après quel délai, avec quelle trace et quel message utilisateur.

Le contre-test garde volontairement un appareil hors ligne, réutilise son ancien jeton puis le reconnecte après la décision métier. Le seuil est validé seulement si l’action sensible est refusée dans le délai promis, même lorsque l’interface affiche encore temporairement un état provenant de son cache local.

Tester les identités difficiles

La recette change un email, lie un second provider, reçoit deux créations proches et présente un compte métier déjà associé. Elle doit conserver une seule identité légitime ou isoler le conflit sans fusion arbitraire. Chaque résultat est vérifiable depuis le support avec UID, provider, compte et décision.

Le cas le plus risqué associe le nouvel email d’une personne à une adresse autrefois utilisée par un compte fermé. Le test doit bloquer la fusion automatique, préserver les deux historiques et demander une preuve supplémentaire. L’email vérifié reste un attribut utile, mais le UID et l’identifiant métier gouvernent la correspondance.

Tester les dépendances et les opérations en lot

Une fonction bloquante dépasse son budget, un appel Admin expire après mutation et une suppression en lot ne produit pas l’événement attendu. L’équipe reprend depuis l’état réel, sans recréer le user ni réouvrir un droit. Ces contre-tests valent davantage qu’une démonstration de login nominal.

Chaque panne possède un résultat attendu : refuser la connexion lorsque la règle est critique, mettre la mutation ambiguë en quarantaine, ou lancer la réconciliation après le batch. Si le support ne distingue pas ces trois chemins dans les traces, alors la bascule est à différer même si tous les scénarios nominaux passent.

Donner au support une preuve et une action suivante

Chercher depuis le dossier métier

Le support part du compte client, de l’utilisateur ou de l’action refusée. Il retrouve UID, providers, dernière connexion, version de claims, token ou session concerné, statut métier et opérations Admin. Les données sensibles sont masquées ; la corrélation suffit pour suivre le parcours.

Les alertes portent sur des écarts actionnables : users sans profil, profils sans user, claims en retard, révocations hors délai, collisions et imports incomplets. Chacune nomme un owner, une échéance et un runbook. Un compteur d’erreurs global sans population ni reprise ne protège pas l’accès.

Réconcilier sans réécrire à l’aveugle

La balance compare Auth et la base métier par pages et curseurs conservés. Elle classe les écarts avant mutation : attendu, source en retard, conflit, suppression légitime ou anomalie. Le repair relit les deux côtés, applique une règle versionnée et conserve l’état avant/après.

Le runbook interdit la correction directe en base ou dans la console pour masquer un écart. L’opérateur choisit une action bornée, renseigne le motif et déclenche le même chemin idempotent que le flux normal. Un écart qui revient après réparation signale une autorité mal définie plutôt qu’un incident isolé.

Éviter les erreurs fréquentes qui fragilisent Firebase Auth

La première erreur consiste à rapprocher les comptes par email seul. Un changement d’adresse, un provider supplémentaire ou une réutilisation suffit à attribuer le profil d’une personne à une autre. À corriger en priorité : conserver le couple projet–UID comme identité Firebase et exiger un verdict explicite lorsque le lien métier est ambigu.

La deuxième erreur transforme les custom claims en fiche client distribuée. Le payload grossit, vieillit dans les jetons et mélange données d’affichage avec permissions opposables. Il faut garder des claims compacts et versionnés, puis lire le CRM, le billing ou la base produit lorsque la décision dépend d’un état métier frais.

La troisième erreur assimile déconnexion visuelle et révocation. Fermer le navigateur ne coupe ni un refresh token présent sur un autre appareil ni un cookie serveur encore accepté. Si une opération sensible reste possible après le délai contractuel, alors le go-live doit être bloqué et le chemin de vérification renforcé.

La quatrième erreur délègue la fermeture d’un compte à un événement supposé infaillible. Les suppressions en lot et les timeouts après mutation imposent une réconciliation indépendante. Le bon arbitrage est de traiter l’événement comme un signal rapide, tandis que la balance périodique prouve l’état final.

Plan d’action pour un premier lot Firebase Auth maîtrisé

Cadrer

Choisissez une application, un provider, une population et une ressource dont le risque est compris. Documentez UID, compte métier, owner du rôle, contenu des claims, mode de session, contrôle de révocation, offre Firebase et identités de service.

Le contrat nomme les entrées, les sorties, les responsabilités, les dépendances et les seuils de fraîcheur. Il précise aussi le comportement de repli : lecture métier, refus temporaire ou file de reprise. Cette fiche est validée par le produit, la sécurité et le support avant la première mutation Admin.

Construire et observer

Implémentez mapping idempotent, vérification backend, mutations Admin, propagation et traces. Ajoutez métriques, quarantaine et rapprochement avant d’importer une grande population. Le support doit pouvoir expliquer un succès et un refus sans lire un token brut.

L’instrumentation relie la corrélation métier aux appels Firebase, au retry et à la décision backend. La file conserve le statut et la prochaine tentative ; le rollback stoppe l’extension sans effacer les preuves ; le runbook indique quoi relire avant de rejouer. Deux parcours complets, nominal et dégradé, doivent être démontrés à l’équipe d’astreinte.

Décider l’extension

Le go exige que claim ancien, token révoqué, provider lié, timeout et doublon soient traités. L’équipe doit exécuter le rollback et reprendre un lot interrompu. Le volume n’augmente qu’après fermeture des écarts critiques.

  • À faire d’abord : nommer les sources du UID, du profil, de l’organisation et du droit.
  • À tester ensuite : propagation, révocation, collision, opération en lot et dépendance lente.
  • À différer : une migration sans hash connu, cohorte pilote ni support disponible.
  • À refuser : un profil complet dans les claims ou une confiance directe dans une valeur envoyée par le client.

Relier révocation, multi-tenant et autorisation API

La synchronisation du profil ne suffit pas à fermer les accès. Le dossier sur la révocation des tokens et la fermeture réelle d’une session précise les délais, caches et contre-tests à relier au départ d’un utilisateur.

Lorsque plusieurs clients, providers ou politiques coexistent, le choix du tenant Firebase doit être confronté à l’isolation des identités, droits et données d’un SaaS multi-tenant. Cette lecture évite de confondre une frontière IAM avec l’isolation complète attendue par le produit.

Conclusion : prouver la décision backend

Une intégration Firebase Auth fiable ne s’arrête pas au login. Elle relie le UID au compte métier, maintient les providers sans doublon, garde les custom claims compacts et contrôle la fraîcheur des droits au niveau adapté.

Le backend vérifie chaque token dans le bon projet et distingue validité cryptographique, session locale et révocation. Les opérations Admin sont bornées par des identités de service, les événements ne remplacent pas la réconciliation et la migration avance par cohortes observables.

Pour transformer ce contrat en connecteur, tests et runbook, notre accompagnement d’intégrateur Firebase Authentication API cadre le mapping, la sécurité, la recette contradictoire et la reprise. Le pilote reste borné tant que la décision backend et le retrait d’un droit ne sont pas démontrables.

Portrait de Jérémy Chomel

Transformez ce besoin en flux API fiable.

Dawap clarifie les systèmes concernés, les risques, le premier lot livrable et les conditions d’exploitation avant de construire le flux.

Vous préférez échanger ? Planifier un rendez-vous

Articles recommandés

Révocation de tokens : fermer réellement une session compromise Intégration API Révocation de tokens : fermer réellement une session compromise Lire l'article
  • 6 juin 2026
  • Lecture ~13 min

Révoquer un token ne ferme réellement une session que si caches, refresh tokens et services consommateurs apprennent rapidement la décision. Le diagnostic relie les signaux utiles pour organiser propagation, vérification et reprise, afin de couper un accès compromis sans attendre l’expiration naturelle ni déconnecter inutilement tous les utilisateurs.

Multi-tenant SaaS : isoler identités, droits et données Intégration API Multi-tenant SaaS : isoler identités, droits et données Lire l'article
  • 11 juin 2026
  • Lecture ~12 min

Un SaaS multi-tenant doit isoler identités, droits et données à chaque lecture comme à chaque action, pas seulement dans l’interface. L’approche proposée commence par choisir la frontière, propager le tenant et tester les fuites, afin qu’une erreur de filtre ne permette jamais à un client d’accéder au périmètre d’un autre.

API authentification et sécurité : guide 2026 Intégration API IAM, OAuth2 et secrets : protéger les flux critiques Lire l'article
  • 14 mars 2025
  • Lecture ~25 min

Quand un accès échoue, le bon diagnostic ne se limite pas au jeton. Il faut lire le scope, l’audience, la clé, le certificat, le contexte d’appel et la trace d’audit pour distinguer un refus normal d’une dérive d’IAM. Ce repère aide à sécuriser le run sans rendre les causes invisibles. Il réduit les tickets sans cause.

Audit trail API, support et conformité Intégration API Audit trail API : tracer qui a fait quoi Lire l'article
  • 2 juin 2025
  • Lecture ~48 min

Audit trail API garde la preuve utile quand le support, la conformité et le run doivent reconstituer une action sans fouiller tout le système. La trace doit montrer qui a fait quoi, quand, sur quel endpoint et avec quel contexte, puis rester exploitable après incident. Il reste utile quand un incident tombe après coup.