1

J'utilise la pile de technologie suivante pour mon application webCloudFront Signés Cookies Conserver l'état de session pour les API Access Gateway

  • CloudFront comme un serveur proxy CDN
  • S3 orign à CloudFront pour servir AngularJS demande
  • origine APIGateway à CloudFront pour API REST
  • Cognito UserPools avec CognitoAuthorizer pour l'authentification à la passerelle API

Pour stocker la session utilisateur de l'application Web, je stocke généralement le fichier JWT émis depuis Cognito dans un cookie côté client, HTML5 LocalStorage ou SessionStorage.

Cependant, je suis curieux de savoir que les cookies signés CloudFront peuvent fournir un état de session pour les applications Web. J'espère utiliser les cookies signés pour stocker JWT et utiliser Edge Lambda pour mapper un cookie signé à l'en-tête d'autorisation pour authentifier la passerelle API. Je suis intéressé à savoir

  1. L'utilisation de cookies signés CloudFront pour stocker JWT fonctionnera-t-elle?
  2. Est-ce une bonne approche pour stocker l'état de la session dans les cookies signés pour les applications Web?
  3. Si oui, quelles sont les meilleures pratiques? Je ne suis pas sûr d'utiliser Edge Lambda est la bonne approche.
+0

* "Cependant, j'ai récemment découvert que les cookies signés CloudFront peuvent fournir un état de session pour les applications Web" * Cela ne semble pas correct. Les cookies signés sont simplement un autre moyen pour le navigateur de présenter les mêmes paires clé/valeur utilisées dans une URL signée CloudFront. Où avez-vous vu ou entendu cela? –

+0

J'ai compris à partir du lien suivant https://arinenote.wordpress.com/2015/10/21/creating-amazon-cloudfront-signing-cookies-in-node-js/ puisque si nous pouvons créer un cookie à partir d'une passerelle API point de terminaison, je pourrais être capable (non vérifié) de stocker un JWT dans le cookie. Est-ce que ça va marcher? – Ashan

Répondre

0

Les cookies signés CloudFront ne permettent pas de stocker des données personnalisées. Pour cette raison, le stockage du pool d'utilisateurs AWS Cognito id_token à l'intérieur du cookie signé n'est pas possible. Par conséquent, l'approche contestée n'est pas possible de procéder.

approche alternative

Au lieu de cela, l'API connexion itinéraire passerelle peut définir à la fois le SignedCookie et un cookie distinct pour stocker le jeton JWT où le cookie est validé au bord préconfigurés Lambda et ajouté à l'en-tête d'autorisation , avant de transmettre la demande à API Gateway.