
シェア:
アダムは開発者兼コンサルタントで、ウルトラランニング、ブログ、そして指導と支援への飽くなき欲求を持ちながら、他の人々が素晴らしいことを成し遂げるためにテクノロジーを手なずけるのを助けることを楽しんでいる。
AWS LambdaとVonageを使ったPythonによる数字の検証
所要時間:6 分
この投稿では Verify 2FA clientをマイクロサービスとして AWS Lambdaにデプロイします。このデプロイは Githubで利用可能なPythonアプリケーションで公開されている フラスコと サーバーレス.
二要素認証(2FA)としても知られる多要素認証は、ほとんどのウェブサービスで実装されています。これは、サービスにアクセスする人が正しい人であることを確認するための、追加レベルのセキュリティを提供します。認証の追加ステップでは、ユーザーが登録したモバイル・デバイスにSMSを使ってランダムなコードを送信します。ユーザーが送信されたコードを入力すると、認証が行われる。
セキュリティーに関するあらゆることと同様、2FAは完全防止ではない。しかし、アカウントを保護するのに有効なセキュリティ・レイヤーを追加することはできる。
前提条件
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.
セットアップ方法
をクローンする。 をクローンしてください。をクローンし、新しく作成したディレクトリに移動してください。
環境
名称変更 .env.defaultを .envに変更し、値を NEXMO_API_KEYおよび NEXMO_API_SECRETに値を追加します。
使用方法
まず、プロジェクト・ルート内に virtualenvをプロジェクト・ルートに作成する。次に、以下のようにアクティベートする:
次に npmを実行し、プロンプトに従ってセットアップを行う。ほとんどの場合、変更したいものがなければデフォルトを選択する。また、ServerlessとLambdaがFlaskアプリと連携できるように、npmを使って開発に必要な依存関係をいくつかインストールする。以下のコマンドを使用して、このステップを完了する。
ここで pipから必要なPythonの依存関係をインストールします。 requirements.txtからインストールする必要があります。
ランニング・ローカル
これで virtualenvをセットアップすれば、AWS Lambdaにデプロイする前にローカルでアプリを実行し、テストすることができる。以下のコマンドでアプリを提供できる:
デフォルトでは、システム上でローカルに実行すると、アプリは http://localhost:5000.を押すとアプリが終了する。 Ctrl+cを押すと終了します。
ラムダへのデプロイ
上記がすべて正常に終了すると サーバーレスを使ってアプリを AWS Lambda.
デプロイ後、API Gateway経由でアプリケーションにアクセスするために必要なURLを受け取ります。次のステップのためにURLをメモしておいてください。
重要重要: サンプルアプリケーションは、そのままでは認証や検証を行いません。配備後に提供される URL にアクセスできる人なら誰でもアクセスできます。これを行うと、Vonageアカウントに予期しない請求が発生する可能性があります。そのため、アプリをアクティブにしたままにする場合は、アプリを保護してください。
利用可能なエンドポイント
このクライアントでは、4つのURLエンドポイントが利用可能です:
/何のアクションも実行しないが、素早くテストする方法を提供する。
/request/<to_number>/<brand>に送信される2FAコードを要求する。
<to_number>に送信される2FAコードを要求する。<brand>の文字列が含まれていなければならない。
/check/<request_id>/<code>を渡すことで、2FAコードをチェックすることができます。
<request_id>と<code>を/checkエンドポイントに渡します。
/cancel/<request_id>2FAコードを紛失した場合、リクエストをキャンセルする必要が生じることがある。その場合は
<request_id>エンドポイントに/cancelエンドポイントに含めることで、新しいコードを要求するための5分間の待ち時間を回避できます。
例を挙げよう:
デプロイプロセスが提供するURLにアクセスする。 Serverlessにアクセスしてください。以下に、リクエストの例をいくつか示します:
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/
エンドポイントは /エンドポイントは一般的な情報メッセージを返します。
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/request/15554443333/Vonage
エンドポイントは /requestエンドポイントは request_idを持つテキストを受け取るはずです。 code.
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/check/9807adsf0sae89fu0se87r0sf/654321
エンドポイントは /checkエンドポイントは検証成功メッセージを event_id.
ステップ /requestステップでは、5分以内に /checkリクエストすることができます。それができない場合は、次のURLで /cancelを発行することができる。
https://7ulasfasdasdfw4.execute-api.us-east-1.amazonaws.com/dev/cancel/9807adsf0sae89fu0se87r0sf
Virtualenvの停止
を終了するには virtualenvを終了するには、必要なときに解除することができます。
次のステップ
何か質問があったり、問題が発生した場合は、以下までご連絡ください。 までご連絡ください。にご連絡いただくか VonageコミュニティSlackチームにお問い合わせください。頑張ってください。
