Guides

Qu'est-ce que l'authentification ? Connexions, sessions et OAuth expliqués

L'authentification permet à une appli de confirmer qui est un utilisateur — en général en vérifiant quelque chose qu'il connaît (un mot de passe), quelque chose qu'il possède (un code envoyé sur son téléphone ou par e-mail) ou une identité fournie par un autre service de confiance (comme « Se connecter avec Google »). Une fois l'utilisateur authentifié, l'appli le reconnaît grâce à une session ou à un jeton, pour qu'il n'ait pas à se reconnecter à chaque page. Décider de ce que cet utilisateur connu a le droit de faire est une étape distincte, appelée autorisation.

Pourquoi c'est important quand on construit avec l'IA

Ajouter une connexion fait partie des demandes les plus fréquentes adressées à un créateur d'applis par IA, et l'une des plus faciles à mal faire. Une page de connexion est simple à générer. La partie difficile, c'est tout ce qui l'entoure :

  • Les mots de passe sont-ils stockés de façon sûre ?
  • Chaque page privée et chaque point de terminaison d'API vérifie-t-il vraiment qui fait la demande ?
  • Un client connecté peut-il voir les données d'un autre client en modifiant un numéro dans l'URL ?
  • Que se passe-t-il quand quelqu'un oublie son mot de passe ?

Une appli peut paraître parfaitement sûre tout en échouant sur chacun de ces points. Comprendre les rouages permet de poser les bonnes questions et de tester les bonnes choses.

Une analogie du quotidien

Pensez à l'enregistrement dans un hôtel.

À la réception, vous montrez une pièce d'identité. C'est l'authentification : prouver qui vous êtes. Le réceptionniste vous remet ensuite une carte magnétique. Cette carte est votre session : pendant tout votre séjour, vous n'avez plus à montrer de pièce d'identité ; vous passez la carte.

La carte ouvre votre chambre, la salle de sport et l'ascenseur de votre étage — mais pas les chambres des autres clients ni le bureau du personnel. C'est l'autorisation : à quoi votre identité a le droit d'accéder. Si vous perdez la carte, l'hôtel peut la désactiver à la réception (révoquer une session). Au départ, elle cesse de fonctionner (déconnexion, ou expiration).

« Se connecter avec Google », c'est comme un hôtel qui accepte une lettre d'un partenaire de confiance disant « voici qui est cette personne », au lieu de vérifier votre pièce d'identité lui-même.

Les principales méthodes de connexion

MéthodeFonctionnementAvantagesInconvénients
E-mail + mot de passeL'utilisateur choisit un mot de passe ; l'appli stocke un hachageFamilier, aucune dépendance externeIl faut stocker les hachages en toute sécurité et gérer les réinitialisations
Lien magique / code à usage uniqueL'appli envoie par e-mail un lien ou un code qui connecte l'utilisateurAucun mot de passe à voler ni à oublierDépend de la livraison des e-mails ; connexion plus lente
Connexion sociale (OAuth / OpenID Connect)L'utilisateur se connecte avec Google, Apple, GitHub, etc.Rapide pour l'utilisateur ; vous ne stockez aucun mot de passeConfiguration auprès de chaque fournisseur ; utilisateurs sans ces comptes
Service d'authentification hébergéUn service comme Clerk, Auth0 ou Supabase Auth gère l'inscription, la connexion et les réinitialisationsMoins de travail de sécurité pour vousCoût mensuel à grande échelle ; une dépendance de plus
Authentification multifacteur (MFA / 2FA)Une seconde vérification après la première, comme un code d'application d'authentificationBeaucoup plus difficile à piraterUn peu plus de friction

Comment les mots de passe doivent être stockés

Une appli sûre ne stocke jamais votre mot de passe réel. Elle stocke un hachage : le résultat d'une fonction à sens unique qui transforme le mot de passe en une chaîne de longueur fixe. Quand vous vous connectez, l'appli hache ce que vous avez tapé et compare le résultat au hachage stocké.

Deux détails rendent cela sûr :

  • Un sel — une valeur aléatoire ajoutée à chaque mot de passe avant le hachage, pour que deux personnes ayant le même mot de passe obtiennent des hachages différents et que les tables de correspondance précalculées soient inutiles.
  • Un algorithme lent conçu pour les mots de passe — comme Argon2, bcrypt ou scrypt. Les hachages généralistes comme MD5 ou SHA-256 sont bien trop rapides : un attaquant peut tester des milliards de suppositions.

Le hachage n'est pas le chiffrement. Une donnée chiffrée peut être déchiffrée avec une clé ; un hachage de mot de passe est conçu pour ne pas être réversible du tout.

Sessions ou jetons

Après la connexion, l'appli doit vous reconnaître à chaque requête. Il existe deux approches courantes.

Session (cookie)Jeton (ex. JWT)
Ce que le navigateur conserveUn identifiant de session aléatoire dans un cookieUn jeton signé contenant des informations sur l'utilisateur et une date d'expiration
Où vit l'état de connexionSur le serveur, dans une base de données ou un magasinDans le jeton lui-même
Déconnecter quelqu'un partoutFacile : supprimer la session sur le serveurPlus difficile : le jeton reste valide jusqu'à expiration, sauf si vous tenez une liste de blocage
Usage typiqueApplis web traditionnellesAPI, applis mobiles, services qui communiquent entre eux

Pour les cookies, trois réglages comptent : HttpOnly (le JavaScript de la page ne peut pas lire le cookie), Secure (envoyé uniquement en HTTPS) et SameSite (limite l'envoi lors de requêtes provenant d'autres sites). Stocker des jetons dans le localStorage du navigateur est courant, mais cela les expose à tout script qui s'exécute sur la page.

OAuth et « Se connecter avec Google »

OAuth 2.0 est une norme d'autorisation déléguée : elle permet à une appli d'obtenir un accès limité à votre compte sur un autre service — par exemple lire votre Google Agenda — sans jamais voir votre mot de passe Google. Vous êtes redirigé vers Google, vous approuvez des permissions précises (appelées scopes), et Google donne à l'appli un jeton pour ces seules permissions.

À l'origine, OAuth a été conçu pour accorder un accès, et non pour dire qui vous êtes. OpenID Connect (OIDC) est une couche ajoutée à OAuth 2.0 qui apporte l'identité, et c'est ce qu'utilisent « Se connecter avec Google » ou « Se connecter avec Apple ». Pour le configurer, vous enregistrez votre appli auprès du fournisseur et obtenez un identifiant client et un secret client ; le secret reste sur votre serveur.

Un exemple concret : connexion pour un portail client

Imaginons que vous construisez un portail où les clients d'une agence de design voient leurs projets et leurs factures.

  • Authentification : les clients se connectent avec leur e-mail et un lien magique, il n'y a donc aucun mot de passe à gérer. Le personnel de l'agence se connecte avec des comptes Google Workspace.
  • Rôles : chaque utilisateur a un rôle — client ou staff.
  • Règles d'autorisation :
ActionClientPersonnel
Voir les projets de sa propre entrepriseOuiOui
Voir les projets d'autres entreprisesNonOui
Téléverser un fichier dans un projetProjets propres uniquementOui
Marquer une facture comme payéeNonOui
  • Où c'est appliqué : côté serveur, pour chaque requête. Le serveur recherche l'utilisateur connecté, puis ne renvoie que les projets où project.company_id correspond à l'entreprise de l'utilisateur. Masquer le bouton « Marquer payée » ne suffit pas — le point de terminaison lui-même doit refuser.

Termes courants expliqués

TermeSignification
Authentification (AuthN)Confirmer qui est quelqu'un.
Autorisation (AuthZ)Décider ce qu'il a le droit de faire.
SessionLe fait que l'appli se souvient que vous êtes connecté, entre les requêtes.
CookieUn petit élément de données que le navigateur renvoie au site à chaque requête.
JWTJSON Web Token : un jeton signé et compact contenant des informations comme l'identifiant de l'utilisateur et l'expiration.
Rôle / permissionÉtiquettes comme admin ou membre qui déterminent l'accès.
MFA / 2FAExiger une seconde preuve, comme un code d'application d'authentification.
SSOAuthentification unique : une seule connexion (souvent un compte d'entreprise) pour plusieurs applis.
401 ou 403« Qui êtes-vous ? » (non authentifié) ou « Vous n'avez pas le droit » (non autorisé).

Erreurs courantes et idées reçues

  • Vérifier les permissions uniquement dans la page. Si le navigateur masque un bouton mais que l'API ne vérifie rien, n'importe qui peut appeler l'API directement.
  • Faire confiance aux identifiants présents dans l'URL. /invoices/1042 doit vérifier que la facture 1042 appartient à l'utilisateur connecté.
  • Inventer sa propre cryptographie. Utilisez des bibliothèques connues ou des fournisseurs reconnus ; ne laissez pas l'IA inventer un schéma de hachage.
  • Réinitialisation de mot de passe faible. Les liens de réinitialisation doivent être à usage unique, expirer rapidement et ne pas révéler si un e-mail correspond à un compte.
  • Confondre votre connexion avec celle de votre outil de création. Les utilisateurs de votre appli sont distincts de votre compte chez l'outil avec lequel vous la construisez.
  • Aucune limitation des tentatives de connexion. Sans elle, un attaquant peut tester des mots de passe sans fin.

Quoi demander à votre créateur d'applis par IA

  • « Ajoute l'inscription et la connexion avec [une bibliothèque ou un fournisseur bien connu]. N'écris pas de hachage de mot de passe maison. »
  • « Stocke les mots de passe hachés avec bcrypt ou Argon2. »
  • « Utilise des cookies HttpOnly et Secure pour la session. »
  • « Ajoute des rôles : admin et membre. Liste chaque point de terminaison et les rôles autorisés à l'appeler. »
  • « Impose côté serveur que les utilisateurs ne puissent lire et modifier que leurs propres enregistrements. Montre-moi ensuite comment tu l'as vérifié. »
  • « Ajoute la réinitialisation de mot de passe avec des liens à usage unique qui expirent au bout d'une heure. »
  • « Limite le nombre de tentatives de connexion. »

Testez ensuite vous-même : créez deux comptes et essayez d'accéder aux données de l'un en étant connecté avec l'autre. Notre guide pour ajouter une connexion et notre liste de contrôle de sécurité vont plus loin.

L'authentification dans Mythex

Mythex ne fournit pas de produit d'authentification intégré pour les utilisateurs de votre appli ; vous choisissez une approche — e-mail et mot de passe stockés dans la base de données de votre projet, ou le SDK d'un fournisseur hébergé — et vous demandez à l'agent de l'ajouter. Les clés des fournisseurs vont dans les secrets du projet, pas dans le chat. Ceci est distinct de la façon dont vous vous connectez à Mythex lui-même. La recette de la documentation sur l'ajout d'une connexion à votre appli propose un prompt de départ que vous pouvez adapter, et qu'est-ce qu'une API explique où vivent ces vérifications côté serveur.

Questions

Quelle est la différence entre authentification et autorisation ?

L'authentification vérifie qui vous êtes, par exemple en contrôlant votre mot de passe. L'autorisation décide ce que vous avez le droit de faire une fois identifié, par exemple si vous pouvez voir la page d'administration ou modifier la réservation de quelqu'un d'autre. Une appli a besoin des deux.

Qu'est-ce qu'OAuth ?

OAuth 2.0 est une norme qui permet à une appli d'obtenir un accès limité à votre compte sur un autre service, sans jamais voir votre mot de passe. « Se connecter avec Google » utilise OpenID Connect, une couche d'identité construite par-dessus OAuth 2.0, pour que l'appli sache qui vous êtes grâce à Google.

Mon appli doit-elle stocker des mots de passe ?

Jamais sous forme lisible. Si vous utilisez une connexion par e-mail et mot de passe, les mots de passe doivent être stockés sous forme de hachages salés, calculés avec un algorithme lent conçu pour les mots de passe, comme Argon2 ou bcrypt. Beaucoup d'applis évitent le problème en utilisant un service d'authentification hébergé, une connexion sociale ou des liens magiques par e-mail.

Sessions ou jetons : lequel mon appli doit-elle utiliser ?

Les deux fonctionnent. Une session garde l'état de connexion sur le serveur et donne au navigateur un identifiant aléatoire dans un cookie, ce qui est facile à révoquer. Un jeton comme un JWT porte lui-même des informations signées, ce qui convient aux API et aux clients mobiles, mais qu'il est plus difficile d'annuler avant son expiration. Pour une appli web classique, les sessions basées sur les cookies sont un bon choix par défaut.

Mythex · Pricing · Créez tout avec l'IA · Modèles de sites et d'applications · Mythex comparé · Glossaire de la création d'applications avec l'IA · Outils gratuits pour créer des applications avec l'IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)