OAuth (Open Authorization) est un framework d’autorisation standard ouvert qui permet à une application ou à un site web d’accéder aux ressources d’un autre service de manière sécurisée, sans partager d’informations d’identification d’utilisateurs.
Comprendre le workflow (flux de travail) d’OAuth est indispensable à sa mise en œuvre efficace dans vos applications et services. Bien qu’OAuth puisse paraître complexe à première vue, décomposer son processus structuré en étapes permet de le comprendre plus facilement. Chaque phase de ce dernier aide à renforcer la sécurité et fournit des autorisations contrôlées pour accéder à des ressources protégées.
Comment ça marche ?
1. Lancement : Le client demande une autorisation au propriétaire de la ressource par le biais d’un bouton de connexion ou d’un élément d’interface semblable.
2. Demande d’autorisation : Le client redirige le propriétaire de la ressource vers le serveur d’autorisation où les informations de connexion sont saisies.
3. Authentification : Le propriétaire de la ressource fournit les identifiants et s’authentifie auprès du serveur d’autorisation.
4. Octroi d’autorisation : Après avoir effectué une vérification du client, le serveur accorde une autorisation au client qui symbolise son droit à utiliser les ressources.
5. Demande de jeton d’accès : L’utilisateur envoie le code d’autorisation au serveur et demande un jeton d’accès pour établir une véritable autorisation.
6. Émission du jeton : Une fois l’autorisation accordée, le serveur la valide et émet un jeton d’accès.
7. Accès aux ressources : Grâce au jeton d’accès, le client peut désormais consulter et utiliser les ressources protégées en toute sécurité à partir du serveur.
8. Validation du jeton : Le serveur doit vérifier la validité d’un jeton avant d’accorder l’accès aux ressources demandées.
9. Processus d’actualisation : Lorsqu’un jeton d’accès expire, vous pouvez obtenir un jeton d’actualisation qui vous permet d’obtenir un nouveau jeton d’accès sans reprendre le processus à zéro.
10. Révocation : Les jetons d’accès et d’actualisation peuvent être révoqués pour supprimer les autorisations d’accès au besoin.
Après la sortie d’OAuth en 2007, les applications web ont connu une évolution rapide et le protocole s’est rapidement trouvé en reste. Le lancement d’OAuth 2.0 visait à améliorer le protocole et résoudre les problèmes dont l’ancienne version ne pouvait pas se charger. Il est essentiel de comprendre les différences entre les deux pour choisir la solution la mieux adaptée à votre situation.
Voici une comparaison des deux versions :
Fonctionnalité | OAuth 1.0 | OAuth 2.0 |
Complexité | Mise en œuvre complexe demandant des calculs cryptographiques et la génération de signatures | Mise en œuvre directe et conception de protocole simple |
Exigences en matière de signature | Demande des signatures cryptographiques pour chaque demande | S’appuie sur la sécurité de la couche de transport TLS ou HTTPS et se passe donc de signatures |
Expérience utilisateur | Flux complexe comprenant des étapes d’authentification supplémentaires | Flux d’autorisation simplifié avec moins d’exigences en matière d’interactions utilisateur |
Types de jetons | Utilise un seul type de jeton, flexibilité limitée | Utilise plusieurs types de jetons, flexibilité accrue |
Types de clients | Prise en charge limitée d’un éventail de types de clients | Prise en charge étendue pour les applications web, mobiles et IoT (Internet des Objets) présentant des besoins précis en matière de sécurité |
Flux d’autorisation | Flux d’autorisation unique | Flux d’autorisation multiples pour différents cas d’utilisation |
Enjeux de sécurité | Offre des méthodes de signature intégrées renforçant la sécurité | Exige la mise en œuvre de la TLS, mais offre davantage de flexibilité dans les options de sécurité |
Adoption et prise en charge | Prise en charge limitée par les applications modernes | Prise en charge étendue par les fournisseurs de services majeurs |
OAuth est essentiel à la prise en charge des fonctionnalités de SSO, en rendant le processus plus sûr et accessible, tout en fournissant une base sécurisée pour la gestion des identités. Bien qu’OAuth agisse principalement comme un protocole d’autorisation, son intégration à SSO permet aux utilisateurs d’interagir avec plusieurs applications en n’utilisant qu’un ensemble d’identifiants.
Voici comment OAuth s’applique au SSO :
Rôle d’OAuth dans le SSO : OAuth fournit le framework d’autorisation sur lequel le SSO s’appuie pour gérer les accès aux plateformes.
Intégration aux fournisseurs d’identité : Le protocole s’exécute en parallèle des IdP (fournisseurs d’identité) pour vérifier les informations des utilisateurs et gérer les authentifications sur différents services.
Protocoles de fédération : OAuth s’utilise souvent simultanément avec d’autres protocoles, comme SAML et OpenID Connect pour former des solutions de gestion des identités complètes.
Avantages en matière d’expérience utilisateur : Avec le SSO basé sur OAuth, les utilisateurs bénéficient d’un accès rapide à plusieurs services sans avoir à se reconnecter, pour une expérience plus conviviale.
Avantages en matière de sécurité : OAuth simplifie les contrôles d’accès et renforce la sécurité en centralisant les authentifications.
Applications d’entreprise : Le protocole OAuth permet aux entreprises de mettre en œuvre des solutions SSO qui satisfont des besoins précis en matière de sécurité.
Intégration web et mobile : Grâce à ses capacités d’adaptation, OAuth fournit des expériences de SSO uniformes sur divers appareils et plateformes.
Difficultés et points à prendre en compte : Mettre en œuvre le SSO basé sur OAuth s’accompagne de ses propres obstacles, notamment en matière d’intégration aux différents fournisseurs d’identité et de sécurisation du stockage des jetons.
Afin de garantir la bonne mise en œuvre d’OAuth, assurez-vous de suivre ces bonnes pratiques en portant une attention particulière à la sécurité. Exécuter OAuth correctement garantit la protection des données des utilisateurs et préserve la relation de confiance entre votre entreprise et vos clients.
Parmi les bonnes pratiques à suivre, on retrouve les suivantes :
Ne passez que par HTTPS pour l’ensemble de vos communications OAuth, y compris les URI (Uniform Resource Identifier) de redirection. Le protocole HTTPS chiffre le trafic pour le protéger contre toute modification et prévenir l’espionnage, notamment l’interception d’identifiants ou de jetons. Appliquez une politique TLS stricte pour renforcer cette couche de protection.
Évitez d’intégrer des jetons porteurs aux URL, aux cookies ou au stockage local auxquels le code côté client peut accéder. Stockez plutôt les jetons côté serveur avec des politiques d’expiration, des contrôles d’accès et un chiffrement approprié pour éviter tout abus en cas de violation.
Validez rigoureusement toutes les valeurs d’entrée côté serveur pour le protéger contre diverses menaces, comme les attaques par injection SQL (Structured Query Language) et XSS (Cross-Site Scripting). Les entrées non validées peuvent mener à des violations de données et des prises de contrôle de comptes.
Développez des jetons d’accès dotés d’une courte durée de vie et de mécanismes d’actualisation pour limiter l’exposition des données. Établissez des politiques de renouvellement et de révocation de jetons basées sur vos besoins en matière de sécurité et les préférences de vos utilisateurs.
Le flux d’authentification PKCE (clé de vérification pour l’échange de code) ajoute un niveau de protection aux flux OAuth en garantissant que seule votre application (plutôt que des hackers) peut échanger des codes d’autorisation contre des jetons. Activez PKCE par défaut pour vos clients publics.
Stockez les secrets de clients dans des formats de hachage ou des variables d’environnement, restreignez leur accès et assurez leur rotation régulière pour limiter les risques de fuites.
Évitez d ’exposer des informations sensibles dans les réponses aux erreurs. Renvoyez des messages génériques aux utilisateurs et effectuez le logging (journalisation) des informations d’erreur côté serveur pour empêcher les hackers d’obtenir des informations sur les vulnérabilités potentielles.
Réalisez des tests d’intrusion et des audits de code réguliers pour détecter tout problème de flux OAuth au plus tôt. Vérifiez s’il existe des vulnérabilités, notamment en matière de stockage non sécurisé, de validation insuffisante des valeurs d’entrée, de jetons faibles, d’abus SSL (Secure Sockets Layer), etc. Identifiez et comblez les lacunes.
En cas d’identification de nouvelles vulnérabilités, mettez à jour les bibliothèques et exécutions OAuth vers les versions dotées des correctifs les plus récents. Abonnez-vous à des flux de mise à jour de sécurité pour vos frameworks et langages de programmation afin de garantir la mise en œuvre appropriée et sécurisée d’OAuth en continu.
Informez les utilisateurs des données auxquelles votre application a accès et les raisons pour lesquelles elle y accède. Ne demandez que les informations nécessaires et proposez des options d’autorisation granulaires pour respecter la vie privée des utilisateurs et garder leur confiance.
OAuth est un élément essentiel à la sécurité web moderne, qui permet des accès sécurisés et délégués tout en garantissant la sécurité des identifiants d’utilisateurs. Devant l’évolution constante des cybermenaces, pensez à intégrer OAuth aux flux de votre entreprise pour protéger les données d’utilisateurs sensibles.
La plateforme Edge Cloud de pointe de Fastly renforce la sécurité OAuth en l’intégrant aux frameworks d’authentification déjà en place dans votre entreprise. Sa mise en œuvre on ne peut plus simple permet à Fastly d’offrir une couche de protection supplémentaire sans limiter ses performances.
Fastly propose notamment les fonctionnalités et avantages suivants :
Contrôle du trafic en temps réel : La plateforme edge de Fastly surveille l’utilisation des jetons OAuth et prévient les menaces, telles que la réutilisation ou le vol de jetons grâce à un contrôle précis des flux de trafic.
Intégration du WAF : Le WAF (pare-feu d’applications web) de nouvelle génération de Fastly protège les API (interfaces de programmation d’application) OAuth en bloquant le trafic suspect et les vulnérabilités connues à la périphérie.
Protection contre les attaques DDoS : Fastly absorbe le trafic malveillant avant qu’il n’atteigne votre serveur en protégeant les endpoints OAuth contre les attaques DDoS (déni de service distribué).
Performances du CDN : Fastly accélère les demandes d’authentification OAuth en mettant les données non sensibles en cache grâce à son CDN (réseau de distribution du contenu) mondial.
Terminaison TLS : Fastly prend en charge le chiffrement de bout en bout via TLS pour garantir la protection des jetons OAuth tout au long de la transmission.
Logique personnalisée à la périphérie : Grâce au VCL (Varnish Configuration Language) de Fastly, les entreprises peuvent créer et mettre en œuvre des politiques de jetons OAuth plus strictes, notamment avec des contrôles d’actualisation et d’expiration.
Rendez-vous sur le site web pour découvrir les manières dont le WAF de nouvelle génération de Fastly renforcera la sécurité de votre entreprise en ligne.