Middleware d'authentification dans Hyperlane
La sécurité est une priorité pour toute application web. Vous devez contrôler qui accède à vos ressources. Dans Hyperlane, cela se fait à l'aide d'un middleware. Le middleware agit comme un gardien. Il intercepte les requêtes avant qu'elles n'atteignent votre code.
Fonctionnement du middleware Hyperlane
Le middleware utilise le trait ServerHook. Il se compose de deux parties principales :
• new() : configure la connexion.
• handle() : s'exécute pour chaque requête. C'est ici que vous vérifiez la sécurité.
La méthode handle renvoie un statut :
• Status::Continue : la requête est sûre. Laissez-la passer.
• Status::Reject : la requête n'est pas sûre. Bloquez-la ici.
Modèles d'authentification courants
Vérification des en-têtes Vous pouvez vérifier la présence d'un en-tête
Authorization. Si l'en-tête est manquant, renvoyez un statut 401 Unauthorized. Rejetez la requête immédiatement.Jetons Bearer La plupart des API utilisent des jetons Bearer. Votre middleware doit : • Vérifier si l'en-tête commence par « Bearer ». • Extraire le jeton. • Stocker le jeton dans le contexte pour une utilisation ultérieure.
Filtrage par attributs Hyperlane vous permet de filtrer les requêtes à l'aide de macros simples. Vous pouvez restreindre l'accès par : • Méthodes HTTP (comme GET ou POST). • Noms d'hôte. • Chemins spécifiques. • En-têtes Referer.
Bonnes pratiques pour des API sécurisées
• Échouez rapidement. Rejetez les mauvaises requêtes dès le début pour économiser les ressources du serveur. • Utilisez les attributs du contexte. Stockez les jetons validés dans le contexte afin que les autres parties de votre application puissent les lire sans avoir à les réanalyser. • Gérez correctement le CORS. Définissez vos en-têtes CORS avant d'effectuer l'authentification. Cela garantit que les navigateurs peuvent lire les messages d'erreur. • Superposez vos middlewares. Utilisez des numéros de priorité pour décider de l'ordre d'exécution. Exécutez d'abord le CORS, puis l'authentification. • Gérez les flux. Si une requête ne parvient pas à être envoyée, fermez le flux pour éviter les erreurs.
En utilisant ces outils, vous construisez des systèmes sécurisés et organisés.
Source : https://dev.to/tengxgfyrz67s/authentication-middleware-151c Code du projet : https://github.com/hyperlane-dev/hyperlane