Présentation de l'API Admin Auth

Identity Platform est basé sur une infrastructure améliorée qui permet l'authentification des utilisateurs à vos applications et services. Vous pouvez utiliser le SDK Firebase Admin pour intégrer vos propres serveurs à Identity Platform et gérer vos utilisateurs ou vos jetons d'authentification. Vous pouvez souhaiter le faire pour plusieurs raisons :

Gestion des utilisateurs

Il n'est pas toujours pratique de devoir consulter la Google Cloud Console (Cloud Console) pour gérer les utilisateurs d'Identity Platform. L'API Admin de gestion des utilisateurs fournit un accès par programmation à ces mêmes utilisateurs. Elle permet même d'effectuer des actions que Cloud Console ne peut pas effectuer, par exemple 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 d'utilisateur externe à Identity Platform. Par exemple, vous disposez peut-être déjà d'une base de données utilisateur préexistante ou souhaitez intégrer un fournisseur d'identité tiers non compatible avec Identity Platform 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 Identity Platform sur une application cliente et assumer l'identité décrite dans les revendications de jeton. Cette identité sera ensuite utilisée lors de l'accès à d'autres services Identity Platform, tels que Cloud Storage.

Validation de l'identité

Identity Platform sert principalement à identifier les utilisateurs de votre application afin de restreindre l'accès à d'autres services tels que Cloud Storage. Vous pouvez également utiliser le service pour identifier ces utilisateurs sur votre propre serveur. Cela vous permet d'exécuter une logique côté serveur de manière sécurisée pour le compte des utilisateurs qui se sont connectés avec Identity Platform.

Pour ce faire, vous pouvez récupérer un jeton d'ID à partir d'une application cliente connectée avec Identity Platform et l'inclure dans une requête adressée à votre serveur. Votre serveur valide ensuite le jeton d'ID et extrait les revendications qui identifient les utilisateurs (y compris leur uid, le fournisseur d'identité auquel ils se sont connectés, 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 permettant d'effectuer 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 les jetons d'identification.

Revendications utilisateur personnalisées

Dans certains cas, vous souhaiterez peut-être mettre en œuvre un contrôle d'accès précis pour les utilisateurs qui se sont déjà connectés avec l'un des fournisseurs d'authentification Identity Platform compatibles (par exemple, adresse e-mail/mot de passe, Google, Facebook, téléphone, etc.). Une combinaison de revendications utilisateur personnalisées et de règles de sécurité des applications offre cette possibilité. Par exemple, un utilisateur connecté avec le fournisseur de mot de passe et l'adresse e-mail Identity Platform peut disposer d'un contrôle d'accès défini avec des revendications personnalisées.

Gestion des utilisateurs

Le SDK Admin Firebase fournit une API pour gérer vos utilisateurs Identity Platform avec des privilèges élevés. L'API de gestion des utilisateurs vous permet de récupérer, créer, mettre à jour et supprimer des utilisateurs par programmation, sans avoir besoin de leurs identifiants 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 mécanisme que vous contrôlez, tel que votre serveur LDAP, ou d'un fournisseur OAuth tiers qu'Identity Platform n'accepte pas de manière native, comme Instagram ou LinkedIn.

Le SDK Admin Firebase intègre une méthode 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 à Identity Platform. Consultez la section 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.

Valider des jetons d'ID

Si votre application cliente Identity Platform 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 pour le compte de cet utilisateur. Vous pouvez effectuer cette opération en toute sécurité à l'aide de jetons d'identification, qui sont créés par Identity Platform lorsqu'un utilisateur se connecte à une application Identity Platform. 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 de profil et d'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.

Le SDK Admin Firebase intègre une méthode permettant de vérifier les jetons d'ID. Vous pouvez également valider par programmation les jetons d'ID dans n'importe quel langage à l'aide de bibliothèques JWT tierces. Consultez Valider les jetons d'ID pour plus de détails et des exemples de code concernant le processus de validation des jetons d'ID.

Revendications utilisateur personnalisées

Le SDK Firebase Admin vous permet de définir des attributs personnalisés pour 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 que les revendications personnalisées ont été modifiées sur un utilisateur via le SDK Firebase Admin, elles sont transmises 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