Logto x Cloudflare Workers : Comment sécuriser vos workers contre l'accès public ?
Dans cet article, nous avons introduit comment sécuriser vos API Cloudflare Workers avec Logto. Nous avons utilisé Hono comme framework d'application web pour simplifier le développement.
Cloudflare Workers (nous utiliserons Workers pour simplifier la lecture) fournit un environnement d'exécution sans serveur qui permet de créer de nouvelles applications ou d'améliorer des applications existantes sans avoir à configurer ou entretenir d'infrastructure.
Avec Workers, vous pouvez créer vos applications serverless et les déployer instantanément à travers le monde pour une performance, une fiabilité et une évolutivité exceptionnelles. Workers offre non seulement des performances exceptionnelles, mais propose également un plan gratuit très généreux ainsi que des plans payants abordables. Que vous soyez un développeur individuel ou une équipe de grande envergure, Workers vous permet de développer et de livrer rapidement des produits tout en minimisant la charge opérationnelle.
Les Workers sont accessibles publiquement par défaut, nécessitant des mesures de protection pour prévenir les attaques et les abus. Logto fournit un service d'identité complet, convivial et évolutif qui peut protéger les Workers ainsi que tous les autres services web.
Cet article explore le processus de sécurisation de vos Workers en utilisant Logto.
Créer un exemple de Workers
Commençons par créer un projet d'exemple Workers avec Hono sur une machine locale.
Nous utilisons la CLI Wrangler pour déployer l'exemple sur Cloudflare, afin que nous puissions accéder au chemin.
Protéger les API Workers
Afin de comparer une API accessible publiquement et une API protégée, nous ajoutons une API GET /auth/greet
qui nécessite des autorisations spécifiques pour y accéder.
Nous ne pouvons pas accéder à l'API correspondante sans les permissions appropriées.
Afin de gérer correctement l'accès aux API Workers, nous introduisons Logto.
Configurer Logto
Créez un compte si vous n'en avez pas encore.
Nous utilisons Machine-to-machine (M2M) comme exemple pour accéder aux API Workers protégées car c'est simple. Si vous voulez accorder l'accès aux utilisateurs de votre application web, la configuration est assez similaire, mais vous devez utiliser le rôle “Utilisateur” au lieu du rôle “Machine-to-machine”.
- Entrez dans la Console d'Administration Logto et allez dans l'onglet “Ressource API”, créez une ressource API nommée “Workers sample API” avec l'indicateur de ressource
https://sample.workers.dev/
. Créez également une permissiongreet:visitor
pour cette ressource API.
- Créez un “Rôle admin Workers”, qui est un rôle “Machine-to-machine”, et assignez-lui le scope
greet:visitor
.
- Créez une application M2M et assignez-lui le “Rôle admin Workers”.
mettre à jour le validateur d'authentification Workers
Étant donné que Logto utilise le jeton d'accès JWT en arrière-plan, nous devons implémenter la logique de validation du JWT dans Workers.
Puisque le jeton d'accès JWT est émis par Logto, nous devons :
- Obtenir la clé publique correspondante pour vérifier la signature.
- Vérifier que le consommateur du jeton d'accès JWT est bien les API Workers.
Ces constantes peuvent être configurées dans le fichier wrangler.toml
[1] et seront déployées comme variables d'environnement des Workers. Vous pouvez également gérer les variables d'environnement manuellement sur le tableau de bord Cloudflare.
Après avoir déployé le projet Workers sur Cloudflare, nous pouvons tester si les API sont protégées avec succès.
- Obtenir un jeton d'accès
- Requête à l'API Workers
GET /auth/greet
Conclusion
Avec le guide étape par étape dans cet article, vous devriez être en mesure d'utiliser Logto pour protéger vos API Workers.
Dans cet article, nous avons utilisé la CLI Wrangler pour le développement local et le déploiement de projets Workers. Cloudflare propose également des API Workers puissantes et polyvalentes pour faciliter le déploiement et la gestion.
Prenons l'exemple du développement d'une application SaaS. L'API Cloudflare vous permet de déployer facilement des Workers dédiés pour chaque locataire, tandis que Logto garantit que les jetons d'accès restent exclusifs à leurs locataires respectifs. Ce contrôle granulaire empêche tout accès non autorisé entre les locataires, renforçant ainsi la sécurité et la confidentialité des données pour les utilisateurs de votre application SaaS.
L'architecture flexible et robuste de Logto répond aux divers besoins d'authentification et d'autorisation de nombreuses applications. Que vous construisiez une plateforme SaaS complexe ou une simple application web, Logto offre la flexibilité et l'évolutivité nécessaires pour répondre à vos besoins spécifiques.