Twilio Verify は SMS、電話、プッシュ通知、TOTP を利用して二要素認証を簡単に実現する仕組みです。
日本国内への SMS 送信の場合は国内キャリアから直接送信するため通常の SMS より到達率が高くなります。また、お客様は独自に電話番号を取得せず利用が可能です。Twilio が用意した電話番号がランダムに利用されます。
■ Twilio Verify のドキュメント
https://jp.twilio.com/docs/verify
■ SDK とクイックスタート
https://jp.twilio.com/docs/libraries
https://jp.twilio.com/docs/verify/quickstarts
■ 制限
回数制限やタイムアウトについては下記をご参照ください。
https://jp.twilio.com/docs/verify/api/rate-limits-and-timeouts
下記の制限はコードを送信した単位 (to の宛先単位) となります。
- 60 requests in one minute
例えば数万人が同時にコードを確認する場合、1 人毎に 1 分間に 60 回チェックすることができます。ただし、この制限は人間が手入力した場合になります。1 人が 1 秒間に数回確認を要求した場合は Twilio は攻撃と判断して確認を拒否することがあります。人間は 1 秒にコードを数回入力することができないためです。この閾値は攻撃を回避する情報になるため公開しておりません。
■ ベストプラクティス
2FA の実装と Verify のベストプラクティスは下記記事を参照ください。
https://jp.twilio.com/docs/verify/developer-best-practices
・初回の電話番号登録時にも Verify を利用し、電話番号が利用可能かお試しください。電話番号の登録だけでは入力間違いなどで実際に届かないケースが多くあります
・Verify は何度も試行する攻撃を防ぐため、一定時間の回数制限があります。回数制限を回避するためには 30 秒間リクエストを受け付けない必要があります。実際の実装例は下記ブログをご参照ください。
https://www.twilio.com/blog/best-practices-retry-logic-sms-2fa
Verify は乗っ取りを防ぐために回数制限を設けています。開発中はこの回数制限は煩わしいものです。残念ながらテスト用の仕組みがないため回数制限を回避する方法はありませんが、回数制限を理解して効率的に開発する方法として下記をご参照ください。
https://www.twilio.com/blog/test-verify-no-rate-limits
また、電話番号の登録時に、電話や SMS が到達可能か事前に Verify でご確認ください。一部の発信先は応答時に長いガイダンスが流れる場合があります。その場合、Verify の認証コードが流れると同時にガイダンスが流れ、ユーザに認証コードが伝えられない場合があります。
■ Custom Verification Codes
お客様独自で番号発行する場合は Custom Verification Codes をご利用ください。
https://jp.twilio.com/docs/verify/api/customization-options
利用には弊社への申請が必要となります。下記を添えてご連絡ください。
- ユースケース (Ex. Auth0 を利用者した自社サイトの 2FA 用途)
- Account SID
- VA からはじまる Verify SID
- 英数字のアプリケーション名。広告目的の場合は許可されない場合があります
Verify と Auth0 や Stripe、Flex の連携はこちらをご参照ください。
https://www.twilio.com/blog/configure-auth0-mfa-twilio-verify
https://www.twilio.com/blog/stripe-fast-checkout-sms-verify
https://www.twilio.com/blog/sms-otp-authentication-flex
■ Custom Alphanumeric Sender ID for Verify
From に独自の Alphanumeric Sender ID を利用できます。一通あたり追加料金が発生します。
利用には弊社への申請が必要となります。下記を添えてご連絡ください。
- ユースケース (Ex. Auth0 を利用者した自社サイトの 2FA 用途)
- Account SID
- VA からはじまる Verify SID
- 送信対象の国(Alphanumeric Sender ID が利用できない国があります。日本は可能です)
- 希望する Alphanumeric Sender ID
■ Verify Geo Permissions
特定の国に Verify を送らない機能を提供しています。日本国内だけのサービスの場合は、日本だけに送信することが可能です。
https://jp.twilio.com/docs/verify/preventing-toll-fraud/verify-geo-permissions
■ Verify と Authy の違い
https://jp.twilio.com/docs/verify/authy-vs-verify
Authy は iOS/Android 専用アプリを利用して 2FA を実現する仕組みとなります。Authy については下記をご参照ください。Authy API は今後 Verify API に移行を予定しているため、Verify をご利用ください。
https://jp.twilio.com/docs/authy
Twilio は SMS を送るサービスもあるため 2FA を独自に実装可能です。
https://www.twilio.com/ja/docs/sms
https://www.twilio.com/ja/docs/sms/quickstart
https://cloudapi.zendesk.com/hc/ja/sections/201948721-Programmable-SMS
0 コメント