メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

SMS Two-Factor Authentication with Java and Servlets

このアプリケーションについて

This Java Servlets application example demonstrates how to implement a SMS two-factor authentication using Twilio.

このアプリケーションを自分で実行するには、コードをダウンロードし、GitHub の指示に従ってください

Adding a two-factor authentication (2FA) to your web application increases the security of your user's data. Multi-factor authentication determines the identity of a user in two steps:

  1. First, we validate the user with an email and password
  2. Second, we validate by sending them a one-time verification code to a mobile device

Once our user enters the verification code, we know they have received the SMS, and indeed they are who they say they are. This is a standard SMS implementation.

AuthyのOneTouchを使用したもう少し高度な実装については、こちらのチュートリアルをご覧ください。

IntuitはTwilio SMSを使用して100万以上の企業をオンラインセキュリティーの脅威から保護しています。 Twilioが選ばれた理由をお読みください。

はじめましょう!

検証コードを生成する

ユーザーが老インしたら、彼らにワンタイム検証コードを送信します。

To generate our verification code we use the java.util.Random class. Considering the current implementation, our 6-digit verification code could be any number between 100000 and 999999.

        
        
        
        
        src/main/java/com/twilio/sms2fa/domain/model/User.java

        検証コードを生成する

        src/main/java/com/twilio/sms2fa/domain/model/User.java

        Next, let's take a look at how to setup the Twilio Java helper library to send the verification code as an SMS.

        では、進みましょう。

        Obtain a TwilioRestClient Instance

        The Twilio helper library allows us to easily send an SMS. First, we have to create an instance of a Twilio Client with our credentials.

              
              
              
              
              src/main/java/com/twilio/sms2fa/infrastructure/guice/Sms2faServiceModule.java

              Obtain a TwilioRestClient Instance

              src/main/java/com/twilio/sms2fa/infrastructure/guice/Sms2faServiceModule.java

              Twilioアカウント上で認証情報が見つかります。

              Next, we will see how to actually send the verification code.

              検証コードを送信する

              検証コードを送信する

              Once we have the MessageCreator instance created with the necessary parameters, all we have to do to send an SMS using the REST API is to call the execute method passing the twilioRestClient instance.

              この例では、TwilioMessageSender クラスがその責任を負っています。

                    
                    
                    
                    
                    src/main/java/com/twilio/sms2fa/infrastructure/service/TwilioMessageSender.java

                    検証コードを送信する

                    src/main/java/com/twilio/sms2fa/infrastructure/service/TwilioMessageSender.java

                    Now that we know how to generate the verification code and send it, let's now look at how to kick off the signup process.

                    ユーザーを登録する

                    ユーザーを登録する

                    ユーザーによるWebサイトへのサインアップ時に、前もってユーザーの情報を保存し、検証コードを送信する必要があります。

                    二要素認証を実行するには、ユーザーの電話番号を求める必要があります。

                    注意すべき点のひとつは、Userコンストラクターが呼び出されるとき検証コードが生成されることです

                          
                          
                          
                          
                          src/main/java/com/twilio/sms2fa/application/servlets/UsersServlet.java

                          ユーザーを登録する

                          src/main/java/com/twilio/sms2fa/application/servlets/UsersServlet.java

                          CreateUser#create メソッドの実装方法について調べてみましょう。

                          Save and Send the SMS

                          Save and Send the SMS

                          このステップで必要になることは、ユーザー(とその検証コード)を保存し、SMSメッセージを送信することだけです。

                          前述のTwilioMessageSenderによってMessageSenderが実装されていることに気がつくでしょう。

                                
                                
                                
                                
                                src/main/java/com/twilio/sms2fa/domain/service/CreateUser.java

                                Save and Send the SMS

                                src/main/java/com/twilio/sms2fa/domain/service/CreateUser.java

                                Now let's take a closer at how to proceed with the 2-step verification.

                                2段階の検証を実装する

                                2段階の検証を実装する

                                ユーザー検証コードの SMS を受け取った場合、与えられたコードが有効であることを確認する必要があります。

                                この検証では、ユーザーの検証コードとフォームにユーザーが入力した検証コードを比較します。

                                検証が成功した場合は、保護されているコンテンツへのアクセスが許可されます。検証が成功しなかった場合は、再度検証コードの入力を求めます。

                                      
                                      
                                      
                                      
                                      src/main/java/com/twilio/sms2fa/application/servlets/ConfirmationsServlet.java

                                      2段階の検証を実装する

                                      src/main/java/com/twilio/sms2fa/application/servlets/ConfirmationsServlet.java

                                      一丁上がり! これで皆さんのアプリケーション内で使用できるSMSの2要素認証が実装できました。

                                      関連トピック

                                      関連トピック

                                      Twilioを使用するJava開発者なら、下記のチュートリアルもお役に立つでしょう。

                                      ワークフローの自動化

                                      Increase your rate of response by automating the workflows that are key to your business. In this tutorial, you will learn how to build a ready-for-scale automated SMS workflow, for a vacation rental company.

                                      マスクされた番号

                                      音声通話およびSMSを使い匿名でユーザー同士を接続しプライバシーを保護します。使い捨ての電話番号をオンデマンドで用意し、2人のユーザーが電話番号など個人情報を交換しなくても通話できる方法を学びます。

                                      これは役に立ちましたか?

                                      このチュートリアルをお読みいただき、ありがとうございます。 弊社に知らせたいフィードバックがある場合は、Twitter経由で英語でご連絡ください。 喜んでお話を伺います。

                                      Agustin Camino Andrew Baker David Prothero Kat King
                                      Rate this page:

                                      ヘルプが必要ですか?

                                      We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.