L’authentification basée sur des jetons est une stratégie d’authentification conçue pour renforcer la sécurité du réseau. Les utilisateurs saisissent leurs identifiants, ces identifiants sont vérifiés et un jeton chiffré unique est généré, leur permettant d’accéder à des ressources en ligne sans avoir à fournir leur nom d’utilisateur et leur mot de passe pour s’authentifier à chaque demande.
Par nature plus sûrs que les mots de passe, les jetons sont des codes chiffrés générés par une machine qui sont utilisés pour confirmer que les utilisateurs sont bien ceux qu’ils prétendent être et déterminer à quelles ressources ils peuvent accéder. Les jetons sont des entités autonomes qui ont toutes les informations nécessaires pour authentifier l’identité d’un utilisateur et la validité de la demande. Le côté serveur n’ayant pas besoin de maintenir l’état d’un utilisateur, l’authentification basée sur des jetons est souvent considérée comme une authentification sans état (stateless).
Chaque jeton est unique pour chaque session utilisateur et protégé par un algorithme, qui garantit que les serveurs puissent identifier des jetons ayant été falsifiés. Les jetons peuvent aussi fournir aux administrateurs un contrôle très précis des accès aux ressources, et des rôles et permissions que les utilisateurs ont dans chaque application. Les jetons peuvent même être révoqués, ce qui désactive l’accès aux applications.
Mais sans doute le plus important, l’authentification basée sur des jetons améliore l’expérience utilisateur. Les utilisateurs saisissent leurs identifiants pour commencer une session. Les procédures d’authentification et d’autorisation sont réalisées en arrière-plan, et les utilisateurs ne savent même pas qu’elles ont lieu. Lorsqu’un jeton expire ou qu’un utilisateur se déconnecte, la session se termine et les jetons sont éliminés.
Les types de jetons souvent utilisés pendant les procédures d’authentification et d’autorisation incluent :
Jetons hardware
Jetons à usage unique (OTP)
JSON Web Tokens (JWT)
Jetons d’API
Les utilisateurs s’authentifient en prouvant qu’ils possèdent des équipements tangibles, comme des cartes à puce, des porte-clés électroniques ou des clés USB. Ces jetons ajoutent une couche de sécurité à la procédure d’authentification et peuvent être :
Sans contact : ce type de jeton ne nécessite pas de saisir un code d’accès ou de se connecter à un équipement. Il utilise une connexion sans fil pour accéder au système, qui accorde ou refuse un accès en fonction des identifiants associés à la connexion.
Déconnectés : ce type de jeton ne doit pas être physiquement inséré dans le système qui est accédé. Il fonctionne en paramétrant l’équipement pour générer des codes accès à usage unique, utilisés dans le cadre d’une procédure d’authentification multifacteur (MFA). Typiquement, un jeton déconnecté est un terminal portable tel qu’un smartphone.
Connectés : ce type de jeton doit être physiquement connecté à un système pour permettre l’accès, comme un jeton USB ou un porte-clé électronique. Le jeton est scanné par un lecteur, qui reçoit tous les identifiants d’authentification utiles.
Les utilisateurs s’authentifient en fournissant des mots de passe à usage unique (OTP) qu’ils reçoivent par e-mail ou par SMS. Ces codes sont typiquement valides pendant 30 à 60 secondes. Pendant la session, le jeton est temporairement stocké jusqu’à ce que la session expire.
Les jetons OTP peuvent être :
Synchrones, lorsque le jeton contient une clé privée pour créer un OTP quand la session commence.
Asynchrone, lorsque le serveur transmet une demande et que le jeton génère la bonne réponse.
Les utilisateurs s’authentifient en fournissant leur nom d’utilisateur et leur mot de passe. Ces informations sont vérifiées et un JWT (JSON web token) est généré, lequel contient les informations sur le jeton, l’algorithme de chiffrement utilisé, les informations sur les identifiants de l’utilisateur et l’authenticité des messages transmis.
Les JWT contiennent :
Un en-tête, qui inclut le type de jeton ainsi que l’algorithme de chiffrement qu’il utilise.
Un contenu, qui fournit les identifiants d’authentification et d’autres informations sur l’utilisateur ou le compte.
Une signature, qui inclut une clé de chiffrement pouvant être utilisée pour valider l’authenticité des informations dans le contenu.
Ces jetons sont utilisés comme des identificateurs uniques pour des applications demandant à accéder à un service. Le service génère un jeton d’API à utiliser par l’application, qui peut être comparé à celui stocké pour s’authentifier et obtenir l’accès.
Les procédures d’authentification basées sur des jetons varient mais elles fonctionnent en général de la façon suivante.
Un utilisateur demande à accéder à un serveur, un site, une application ou une ressource protégés et est invité à s’authentifier.
Le serveur vérifie les identifiants de l’utilisateur pour savoir s’il est bien celui qu’il prétend être.
Après cette vérification, le serveur délivre à l’utilisateur un jeton de sécurité qui lui donne accès à ses ressources autorisées.
Le jeton est stocké dans le navigateur de l’utilisateur pendant la durée de la session et il est référencé à chaque fois que l’utilisateur essaie d’accéder à une partie différente du serveur. L’accès de l’utilisateur à ces ressources est spécifié dans le jeton.
Le jeton expire lorsque la durée de la session est écoulée, l’utilisateur se déconnecte ou la connexion au serveur est coupée.
Les structures et les standards d’authentification et d’autorisation les plus connus, OAuth, OpenID Connect (OIDC) et SAML, utilisent des méthodes d’authentification basées sur des jetons.
La différence principale entre ces différents standards est le fait que OAuth, désormais connu sous le nom de OAuth 2.0, est un modèle d’autorisation utilisé pour protéger des ressources spécifiques, comme des applications ou des ensembles de fichiers, tandis que SAML et OIDC sont des standards d’authentification utilisés pour créer des expériences de connexion sécurisées.
Le SAML est un standard de fédération ouvert activant le single sign-on (SSO). Les jetons SAML sont des représentations XML de requêtes faites par une identité au sujet d’une autre entité. Le jeton SAML est signé avec un certificat associé au service du jeton de sécurité et contient une clé de vérification chiffrée pour le service cible. Le jeton est présenté et les utilisateurs ont enfin accès à l’application. Consultez la page SAML pour avoir plus de précisions.
Largement utilisé dans les entreprises, SAML a été créé pour supporter le SSO pour des applications et services basés sur un navigateur. Il ne supporte pas le SSO pour des applications mobiles ou des applications qui accèdent aux ressources via l’API.
OAuth est un modèle standard ouvert pour une autorisation API et non un protocole d’authentification. Il ne définit pas un format de jeton spécifique ni un ensemble commun de champs pour le jeton d’accès, et il ne s’intéresse pas à la façon dont une ressource protégée valide un jeton d’accès.
Au lieu de cela, OAuth définit comment une API client peut obtenir des jetons de sécurité qui contiennent un ensemble de permissions pour les ressources disponibles via cette API. Consultez la page OAuth pour avoir plus de précisions.
OIDC utilise des JWT et des jetons d’accès pour compléter des procédures d’authentification et d’autorisation. Les JWT contiennent des informations sur les utilisateurs, comme leurs noms d’utilisateur, le moment où ils ont entrepris de se connecter à l’application ou au service, et la durée pendant laquelle il sont autorisés à accéder aux ressources en ligne.
Les jetons d’accès sont utilisés pour accéder à des ressources protégées, qui visent à être lues et validées par l’API. Ces jetons peuvent être des JWT, mais peuvent être dans un format différent. Leur but est d’informer l’API que le porteur de ce jeton a été autorisé à accéder à l’API et réaliser des actions spécifiques, comme précisé dans le champ qui a été accordé. Consultez la page OIDC pour avoir plus de précisions.
Pour en savoir plus sur ces standards, consultez la page Standards d’authentification et d’autorisation.
Ressources Annexes
Lancez-vous dès Aujourd'hui
Contactez-Nous
Découvrez comment Ping peut vous aider à protéger vos employés et améliorer l'expérience de vos clients dans un monde digital en constante évolution.
Démonstration Gratuite