https://d226lax1qjow5r.cloudfront.net/blog/blogposts/number-verification-in-python-with-aws-lambda-and-vonage/Blog_Microservice_Lambda_1200x600.png

Vérification des nombres en Python avec AWS Lambda et Vonage

Publié le May 5, 2021

Temps de lecture : 9 minutes

Dans cet article, vous allez déployer une application Verify de Vonage 2FA client en tant que microservice sur AWS Lambdaécrit en Python. Vous le ferez en utilisant cette application Python disponible sur Github qui utilise Flasket Serverless.

L'authentification multifactorielle, également connue sous le nom d'authentification à deux facteurs (2FA), est mise en œuvre dans la plupart des services web. Elle offre un niveau de sécurité supplémentaire pour s'assurer que la personne qui accède à un service est bien la bonne. L'étape supplémentaire de l'authentification consiste à envoyer un code aléatoire par SMS à un appareil mobile enregistré par l'utilisateur. Une fois que l'utilisateur a fourni le code envoyé, il est authentifié.

Comme pour tout ce qui a trait à la sécurité, le 2FA n'est pas totalement infaillible. Cependant, elle ajoute une bonne couche de sécurité pour aider à protéger les Account.

Conditions préalables

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Instructions d'installation

Clonez le fichier nexmo-community/nexmo-verify-lambda-python depuis GitHub, et naviguez dans le répertoire nouvellement créé pour continuer.

Environnement

Renommer .env.default en .env et ajouter des valeurs à NEXMO_API_KEY et NEXMO_API_SECRET fournies par votre compte Vonage APIs.

Utilisation

Pour commencer, créez un fichier virtualenv à la racine du projet pour contenir le projet au fur et à mesure que vous avancez. Activez-le ensuite comme suit :

virtualenv venv --python=python3 source venv/bin/activate

Ensuite, initialisez npm et suivez les instructions pour le configurer. Dans la plupart des cas, vous devriez sélectionner les valeurs par défaut, à moins que vous ne souhaitiez les modifier. Utilisez également npm pour installer certaines dépendances nécessaires au développement afin de permettre à Serverless et Lambda de fonctionner avec l'application Flask. Utilisez les commandes suivantes pour réaliser cette étape.

npm init npm install --save-dev serverless-wsgi serverless-python-requirements

Vous devez maintenant utiliser pip pour installer les dépendances Python requises à partir du fichier requirements.txt inclus dans le code cloné.

pip install -r requirements.txt

Locaux de course à pied

Une fois l'application virtualenv configuré, vous pouvez exécuter l'application localement et tester les choses avant de la déployer sur AWS Lambda. Vous pouvez la servir avec la commande suivante :

sls wsgi serve

Par défaut, l'exécution locale sur votre système sert l'application à l'adresse http://localhost:5000. En appuyant sur Ctrl+c ferme l'application une fois que vous avez terminé.

Déployer vers Lambda

Une fois toutes les étapes ci-dessus terminées avec succès, vous pouvez utiliser la technologie Serverless pour déployer l'application sur AWS Lambda.

sls deploy

Après le déploiement, vous recevez l'URL nécessaire pour accéder à l'application via la passerelle API. Notez l'URL pour l'étape suivante.

IMPORTANT : L'application d'exemple, telle quelle, n'effectue aucune authentification ou vérification. Toute personne ayant accès à l'URL fournie après le déploiement peut y accéder. Cela pourrait entraîner des frais inattendus sur votre compte Vonage. Par conséquent, veuillez sécuriser l'application si vous avez l'intention de la laisser active.

Critères d'évaluation disponibles

Ce client dispose de 4 points d'extrémité URL :

  • /

    • Il n'effectue aucune action, mais constitue un moyen rapide de tester l'efficacité de l'application.

  • /request/<to_number>/<brand>

    • En incluant deux arguments, le client demande un code 2FA envoyé à l'autorité de certification. <to_number>Ce code doit inclure l'identifiant national (par exemple 1 pour les États-Unis), ainsi qu'une chaîne de caractères pour une meilleure identité visuelle dans le message SMS. <brand> pour une meilleure identité visuelle dans le message SMS.

  • /check/<request_id>/<code>

    • Vous pouvez ensuite vérifier un code 2FA en passant les paramètres <request_id> et le <code> au point de terminaison /check au point de terminaison.

  • /cancel/<request_id>

    • Parfois, en cas de perte d'un code 2FA, il est nécessaire d'annuler une demande. En incluant le <request_id> au point de terminaison /cancel vous évitez l'attente de 5 minutes pour demander un nouveau code.

Exemples :

Accédez à l'URL fournie par le processus de Serverless déploiement. Vous trouverez ci-dessous quelques exemples de demandes types :

https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/

Le point de terminaison / renvoie un message d'information générique.

https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/request/15554443333/Vonage

Le point d'arrivée /request renvoie le request_idet le téléphone to_number devrait recevoir un texte avec un code.

https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/check/9807adsf0sae89fu0se87r0sf/654321

Le point de terminaison /check renvoie un message de vérification réussie avec un event_id.

L'étape /request vous accorde 5 minutes pour donner suite à une /check demande. Si vous n'êtes pas en mesure de le faire, vous pouvez envoyer un message à l'adresse suivante /cancel avec l'URL suivante.

https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/cancel/9807adsf0sae89fu0se87r0sf

Désactivation de Virtualenv

Pour quitter l'option virtualenvvous pouvez la désactiver si vous le souhaitez.

deactivate

Prochaines étapes

Si vous avez des questions ou rencontrez des problèmes, vous pouvez contacter @VonageDev sur Twitter ou vous renseigner dans la Communauté Vonage de Vonage. Bonne chance.

Partager:

https://a.storyblok.com/f/270183/384x384/b3c7ffaf85/adamculp.png
Adam CulpAnciens de Vonage

Adam est un développeur et un consultant qui aime l'ultra-course, les blogs, et qui aide les autres à apprivoiser la technologie pour accomplir des choses étonnantes avec un désir insatiable de mentorat et d'aide.