メニュー

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?

Twilio Authyコールバックを検証する

When using Webhooks with push authentications, Twilio will send a callback to your application's exposed URL when a user interacts with your ApprovalRequest. While testing, you can accept all incoming webhooks, but in production, you'll need to verify the authenticity of incoming requests.

Twilio sends an HTTP Header X-Authy-Signature with every outgoing request to your application. X-Authy-Signature is a HMAC signature of the full message body sent from Twilio hashed with your Application API Key (from Authy in the Twilio Console).

You can find complete code snippets here on Github.

Twilio Authyコールバックを検証する

Checking the authenticity of the X-Authy-Signature HTTP Header is a 6 step process.

  • Create a string using the Webhook URL without any parameters
        
        
        
        
        パラメーターをすべて除いたWebhook URLを使用して文字列を作成します。

        Webhook URL文字列を作成する

        パラメーターをすべて除いたWebhook URLを使用して文字列を作成します。
        • Flatten the received JSON body and sort this list in case-sensitive order and convert them to URL format
              
              
              
              
              全受信パラメーターをアルファベット順かつ大文字と小文字を区別して並べ替え、これらをURLフォーマットに変換します。

              パラメーターをソートする

              全受信パラメーターをアルファベット順かつ大文字と小文字を区別して並べ替え、これらをURLフォーマットに変換します。
              • Grab the nonce from the X-Authy-Signature HTTP Header
                    
                    
                    
                    
                    X-Authy-Signature HTTPヘッダーからノンスを取得します。

                    ノンスを取得する

                    X-Authy-Signature HTTPヘッダーからノンスを取得します。
                    • ノンス、HTTPメソッド(「POST」)、そしてソート済みのパラメーターを縦棒(「|」)で区切って結合します。
                          
                          
                          
                          
                          縦棒(「|」)文字を使用し、ノンス、HTTPメソッド、そしてソートされたパラメーターを結合します。

                          ノンス、メソッド、およびパラメーターを結合する

                          縦棒(「|」)文字を使用し、ノンス、HTTPメソッド、そしてソートされたパラメーターを結合します。
                          • アプリケーションAPIキーを使用する文字列のハッシュには、HMAC-SHA256を使用します
                                
                                
                                
                                
                                Consoleから取得したアプリケーションのAPIキーでHMAC-SHA256を使用し、結果の文字列をハッシュします。

                                結合された文字列をHMAC-SHA256を使用してハッシュする

                                Consoleから取得したアプリケーションのAPIキーでHMAC-SHA256を使用し、結果の文字列をハッシュします。
                                • ダイジェストをBase64でエンコードします (RFC 4648に記載された方法を使用し、改行文字を含めてはいけません)
                                      
                                      
                                      
                                      
                                      RFC 4648に従い、ダイジェストをBase64エンコードする

                                      Base64でダイジェストとエンコードする

                                      RFC 4648に従い、ダイジェストをBase64エンコードする

                                      全体のプロセスを俯瞰できるように、以下に全手順を要約しておきます。

                                            
                                            
                                            
                                            
                                            プッシュ通知用の受信Twilio Webhookの検証に必要な手順の概要

                                            二要素認証の受信Webhookを検証する

                                            プッシュ通知用の受信Twilio Webhookの検証に必要な手順の概要

                                            Once you have encoded the digest, you can compare the resulting string with the X-Authy-Signature HTTP Header. If they match, the incoming request is from Twilio. If there is a mismatch, you should reject the request as fraudulent.

                                            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.