
Teilen Sie:
Adam ist ein Entwickler und Berater, der gerne Ultraläufe absolviert, bloggt und anderen dabei hilft, Technologien zu zähmen, um erstaunliche Dinge zu erreichen, und der ein unstillbares Verlangen hat, Mentoren zu sein und zu helfen.
Zahlenüberprüfung in Python mit AWS Lambda und Vonage
Lesedauer: 9 Minuten
In diesem Beitrag werden Sie eine Vonage Verify 2FA client als Microservice für AWS Lambdabereit, geschrieben in Python. Sie tun dies mit dieser Python-Anwendung, die auf Github verfügbar ist die Folgendes verwendet Flaskund Serverless.
Die Multi-Faktor-Authentifizierung, auch bekannt als Zwei-Faktor-Authentifizierung (2FA), ist in den meisten Webdiensten implementiert. Sie bietet eine zusätzliche Sicherheitsebene, um sicherzustellen, dass die Person, die auf einen Dienst zugreift, die richtige Person ist. Bei diesem zusätzlichen Authentifizierungsschritt wird ein Zufallscode per SMS an ein vom Benutzer registriertes Mobilgerät gesendet. Sobald der Benutzer den gesendeten Code eingibt, wird er authentifiziert.
Wie bei allen Dingen, die mit Sicherheit zu tun haben, ist 2FA nicht völlig sicher. Sie bietet jedoch eine gute Sicherheitsebene, um Konten zu schützen.
Voraussetzungen
Vonage API-Konto
Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
Anweisungen zur Einrichtung
Klonen Sie die nexmo-community/nexmo-verify-lambda-python von GitHub, und navigieren Sie in das neu erstellte Verzeichnis, um fortzufahren.
Umwelt
umbenennen .env.default in .env und fügen Sie Werte hinzu zu NEXMO_API_KEY und NEXMO_API_SECRET die von Ihrem Vonage APIs Account bereitgestellt werden.
Verwendung
Um zu beginnen, erstellen Sie eine virtualenv im Stammverzeichnis des Projekts, das das Projekt enthält, während Sie fortfahren. Aktivieren Sie es dann wie folgt:
Als nächstes initialisieren Sie npm und folgen Sie den Anweisungen, um das System einzurichten. In den meisten Fällen sollten Sie die Standardeinstellungen wählen, es sei denn, Sie möchten sie ändern. Installieren Sie außerdem mit npm einige für die Entwicklung erforderliche Abhängigkeiten, damit Serverless und Lambda mit der Flask-App arbeiten können. Verwenden Sie die folgenden Befehle, um diesen Schritt auszuführen.
Nun sollten Sie mit pip die erforderlichen Python-Abhängigkeiten aus der Datei requirements.txt die im geklonten Code enthalten sind.
Lokales Laufen
Mit der virtualenv eingerichtet, können Sie die App lokal ausführen und testen, bevor Sie sie in AWS Lambda bereitstellen. Sie können sie mit dem folgenden Befehl bereitstellen:
Standardmäßig wird die Anwendung bei der lokalen Ausführung auf Ihrem System unter http://localhost:5000. Klicken Sie auf Ctrl+c wird die Anwendung geschlossen, nachdem Sie sie beendet haben.
Auf Lambda bereitstellen
Wenn alle oben genannten Schritte erfolgreich abgeschlossen sind, können Sie die Serverlos verwenden, um die App in AWS Lambda.
Nach der Bereitstellung erhalten Sie die URL, die für den Zugriff auf die Anwendung über das API-Gateway erforderlich ist. Notieren Sie sich die URL für den nächsten Schritt.
WICHTIG! Die Beispielanwendung führt in ihrer jetzigen Form keine Authentifizierung oder Überprüfung durch. Jeder, der nach der Bereitstellung Zugriff auf die bereitgestellte URL hat, kann darauf zugreifen. Dies könnte zu unerwarteten Abbuchungen von Ihrem Vonage Account führen. Sichern Sie daher die Anwendung, wenn Sie sie aktiv lassen möchten.
Verfügbare Endpunkte
Es gibt 4 URL-Endpunkte, die mit diesem Client verfügbar sind:
/Führt keine Aktionen aus, bietet aber eine schnelle Möglichkeit zum Testen
/request/<to_number>/<brand>Durch die Angabe von 2 Argumenten fordert der Client einen 2FA-Code an, der an die
<to_number>gesendet wird, der die nationale Kennung (z. B. 1 für die USA) zusammen mit einer<brand>Zeichenfolge für eine bessere visuelle Identität in der SMS-Nachricht.
/check/<request_id>/<code>Sie können dann einen 2FA-Code prüfen, indem Sie den
<request_id>und die<code>an den/checkEndpunkt übergeben.
/cancel/<request_id>Wenn ein 2FA-Code verloren geht, ist es manchmal notwendig, eine Anfrage zu stornieren. Durch Einfügen des
<request_id>an den/cancelEndpunkts umgehen Sie die 5-minütige Wartezeit für die Anforderung eines neuen Codes.
Beispiele:
Rufen Sie die URL auf, die vom Serverless Bereitstellungsprozess bereitgestellt wird. Nachfolgend finden Sie einige Beispiele dafür, wie Musteranfragen aussehen können:
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/
Der / Endpunkt gibt eine allgemeine Informationsmeldung zurück.
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/request/15554443333/Vonage
Der /request Endpunkt gibt die request_idzurück, und das to_number-Telefon sollte einen Text mit einem code.
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/check/9807adsf0sae89fu0se87r0sf/654321
Der /check Endpunkt gibt eine erfolgreiche Verifizierungsnachricht mit einer event_id.
Der /request Schritt gewährt Ihnen 5 Minuten, um eine Anfrage zu stellen /check Anfrage. Sollte dies nicht möglich sein, können Sie eine /cancel mit der folgenden URL aufrufen.
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/cancel/9807adsf0sae89fu0se87r0sf
Deaktivieren von Virtualenv
Zum Verlassen des virtualenvkönnen Sie sie bei Bedarf deaktivieren.
Nächste Schritte
Wenn Sie Fragen haben oder Probleme auftreten, können Sie sich an @VonageDev auf Twitter oder in der Vonage-Gemeinschaft Slack-Team. Viel Glück!
