
シェア:
アダムは開発者兼コンサルタントで、ウルトラランニング、ブログ、そして指導と支援への飽くなき欲求を持ちながら、他の人々が素晴らしいことを成し遂げるためにテクノロジーを手なずけるのを助けることを楽しんでいる。
AWS LambdaとVonageを使ったPythonによる数字の検証
所要時間:6 分
この投稿では Verify 2FA clientをマイクロサービスとして AWS Lambdaにデプロイします。このデプロイは Githubで利用可能なPythonアプリケーションで公開されている フラスコと サーバーレス.
二要素認証(2FA)としても知られる多要素認証は、ほとんどのウェブサービスで実装されています。これは、サービスにアクセスする人が正しい人であることを確認するための、追加レベルのセキュリティを提供します。認証の追加ステップでは、ユーザーが登録したモバイル・デバイスにSMSを使ってランダムなコードを送信します。ユーザーが送信されたコードを入力すると、認証が行われる。
セキュリティーに関するあらゆることと同様、2FAは完全防止ではない。しかし、アカウントを保護するのに有効なセキュリティ・レイヤーを追加することはできる。
前提条件
セットアップ方法
をクローンする。 をクローンしてください。をクローンし、新しく作成したディレクトリに移動してください。
環境
名称変更 .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チームにお問い合わせください。頑張ってください。