Choisir une méthode d'authentification

Cloud Endpoints accepte plusieurs méthodes d'authentification, adaptées à une multitude d'applications et de cas d'utilisation. Endpoints Frameworks utilise la méthode d'authentification que vous avez spécifiée dans votre annotation pour valider les requêtes entrantes avant de les transmettre au backend de l'API. Ce document offre un aperçu de chaque méthode d'authentification disponible et fournit des exemples de cas d'utilisation.

Clés API

Une clé API est une simple chaîne chiffrée qui identifie un projet Google Cloud à des fins de gestion des quotas, de facturation et de surveillance. Les développeurs génèrent une clé API dans un projet de la console Google Cloud et l'intègrent à chaque appel de l'API en tant que paramètre de requête.

Si vous spécifiez une exigence de clé API dans votre annotation, Endpoints Frameworks utilise la clé API pour rechercher le projet Google Cloud auquel elle est associée. Endpoints Frameworks n'accepte que les requêtes comportant une clé API générée dans votre projet Google Cloud ou dans l'un des autres projets Google Cloud au sein desquels votre API a été activée. Pour en savoir plus, consultez la page Restreindre l'accès à une API à l'aide de clés API.

Contrairement aux identifiants basés sur des jetons à court terme ou sur des requêtes signées, qui sont envoyés dans l'en-tête de la requête, les clients envoient une clé API en tant que paramètre de requête. Même si les paramètres de requête sont chiffrés en HTTPS, les clés API ne sont pas sécurisées. Par exemple, certains serveurs peuvent stocker l'URL entière de chaque requête en texte clair dans leurs journaux. Pour des raisons de sécurité, n'utilisez pas les clés API seules lorsque les appels d'API contiennent des données utilisateur. Vous pouvez utiliser des clés d'API en plus de l'une des méthodes d'authentification suivantes.

Pour découvrir les bonnes pratiques relatives à la sécurisation et à l'ajout de restrictions aux clés API, consultez la section Utiliser des clés API. Bien qu'elles soient destinées aux clients utilisant les API Google, ces bonnes pratiques s'appliquent à toute API que vous pouvez créer avec Endpoints Frameworks.

Cas d'utilisation

Si vous souhaitez utiliser des fonctionnalités Endpoints, telles que les quotas, chaque requête doit transmettre une clé API permettant à Endpoints d'identifier le projet Google Cloud auquel l'application cliente est associée.

Pour plus d'informations sur les clés API, consultez la page Quand et pourquoi utiliser les clés API.

Firebase Authentication

Firebase Authentication fournit des services de backend, des SDK et des bibliothèques pour authentifier les utilisateurs auprès d'une application mobile ou Web. Cette fonctionnalité permet d'authentifier les utilisateurs à l'aide de divers identifiants, tels que les ID Google, Facebook, Twitter ou GitHub.

Une fois que l'utilisateur a réussi à se connecter, la bibliothèque cliente Firebase signe un jeton Web JSON (JWT) associé à une clé privée. Endpoints Frameworks vérifie que le jeton JWT a été signé par Firebase et que la revendication "iss" (émetteur) de ce jeton JWT, qui identifie votre application Firebase, correspond au paramètre issuer spécifié dans l'annotation.

Cas d'utilisation

Dans la mesure où Firebase Authentication s'intègre étroitement aux autres services Firebase, il convient parfaitement aux applications mobiles ou Web qui utilisent Firebase. Reportez-vous à la section Assurer l'authentification avec Firebase Authentication.

Auth0

Auth0 authentifie et autorise les applications et les API indépendamment du fournisseur d'identité, de la plate-forme, de la pile et de l'appareil.

Auth0 prend en charge un grand nombre de fournisseurs et respecte la spécification Security Assertion Markup Language (SAML). Il fournit des services de backend, des SDK et des bibliothèques d'interface utilisateur pour l'authentification des utilisateurs dans les applications Web et mobiles. Auth0 s'intègre à plusieurs fournisseurs d'identité tiers et permet également une gestion personnalisée des comptes utilisateur.

La bibliothèque cliente fournie par Auth0 génère et signe un jeton JWT une fois l'utilisateur connecté. Endpoints Frameworks vérifie que le jeton JWT a été signé par Auth0 et que la revendication "iss" (émetteur) de ce jeton JWT, qui identifie votre application Auth0, correspond au paramètre issuer spécifié dans l'annotation.

Cas d'utilisation

Auth0 convient parfaitement aux applications Web et mobiles grand public ou d'entreprise. Pour en savoir plus, consultez la section Assurer l'authentification avec Auth0.

Authentification par jeton d'ID Google

L'authentification à l'aide d'un jeton d'identifiant Google permet aux utilisateurs de s'authentifier en se connectant à un compte Google. Une fois authentifié, l'utilisateur a accès à tous les services Google. Vous pouvez utiliser des jetons d'identifiant Google pour appeler des API Google, ainsi que des API implémentées à l'aide d'Endpoints Frameworks. Endpoints Frameworks valide le jeton d'ID Google à l'aide de la clé publique et garantit que la revendication "iss" (émetteur) du jeton JWT correspond à https://accounts.google.com ou accounts.google.com.

Cas d'utilisation

L'authentification à l'aide d'un jeton d'ID Google est recommandée lorsque tous les utilisateurs possèdent un compte Google. Par exemple, vous pouvez opter pour l'authentification par jeton d'ID Google si l'API est associée à une application Google Workspace (par exemple, dans le cas d'une application associée à Google Drive). L'authentification à l'aide d'un jeton d'identifiant Google permet aux utilisateurs de s'authentifier en se connectant à un compte Google. Une fois authentifié, l'utilisateur a accès à tous les services Google.

Pour en savoir plus, consultez la section Assurer l'authentification avec des jetons d'ID Google.

Jetons JWT et comptes de service

Les jetons Web JSON, ou JWT, sont couramment utilisés pour partager des revendications ou des assertions entre des applications connectées. Un jeton JWT représentant un compte de service peut être signé, au choix, par :

  • le compte de service ;

  • le service d'autorisation de Google (un JWT signé par le service d'autorisation de Google étant appelé jeton d'ID Google).

L'authentification d'une requête à l'aide d'un jeton JWT signé par un compte de service peut être plus facile à mettre en œuvre. Cependant, si vous disposez d'un grand nombre de comptes de service ou si vous souhaitez accepter les identifiants de comptes de service dont vous n'êtes pas propriétaire, il est recommandé d'utiliser un jeton d'ID Google. Il vous suffit alors d'autoriser https://accounts.google.com ou accounts.google.com en tant qu'émetteur pour tous les comptes de service.

Cas d'utilisation

Les jetons JWT et les comptes de service sont parfaitement adaptés aux microservices. Pour en savoir plus, consultez la section S'authentifier avec un compte de service.