Twilio AuthyのAPIとアプリについて、Twilio AuthyとVerifyについて

October 12, 2021
執筆者
レビュー担当者

AuthyAppAndApiJP

Twilioではさまざまなクラウドコミュニケーションサービスを提供していますが、特徴的なポートフォリオとして「アカウントセキュリティ」という分類があり、その中で具体的に3つのプロダクト(後述)をお届けしています。

アカウントセキュリティという分類名にもあるようにお客様アカウントが関連してくる訳ですが、お客様アカウントを保護する際に意識すべき段階として以下3つがあると考えています。

  • ユーザー登録(アカウントの初回開設)
  • ユーザー認証(毎回のログイン)
  • アカウントのリカバリ(例: 誤ったパスワードを3回入力しロックが掛かる、一定期間の未使用)

またこの3段階を意識した際に、アカウントセキュリティ分野でお客様の頭を悩ます主要課題は、“3段階”に呼応して、以下のようになります。

  • アカウントの偽装
  • アカウントの乗っ取り
  • サポートコストの増大

これら主要課題を解決する策としてTwilioが提供する3つのプロダクトがTwilio Verify、Twilio Authy、Twilio Lookupです。Twilio Lookupは、与えられた電話番号に対して、そのメタデータ(例: 国、キャリア、E.164形式に正規化された電話番号)を提供するAPIサービスで、アカウント保護シナリオ上、他サービスと組み合わせて利用されることが多く、本稿ではこの程度の紹介に留めさせていただきます。以下ではTwilio VerifyとTwilio Authyに焦点を置き、皆さまからお受けすることの多い問い合わせ内容、皆さまにお伝えすべきと弊社側で考える内容をふまえ、以下の3軸から説明いたします。

  • Twilio Authy - APIとアプリの視点
  • Authyアプリについての深堀り
  • Twilio Authy API vs Verify API

Twilio Authy - APIとアプリの視点

Twilio Authyは、ユーザーID認証をマルチチャネルで行うことを可能とするプロダクトです。APIの側面とアプリの側面と二面あり、アプリの側面については後ほど深堀りいたします。今「ユーザーID認証をマルチチャネルで」と申し上げましたが、具体的な動作イメージとしては「オンラインサービスへログインする際にユーザーIDとパスワードを入力した後、さらに二要素目の認証ステップとして数桁のワンタイムパスコードがSMS(ショートメッセージ)等で送られてくるので、受信したユーザーはそのワンタイムパスコードをログイン画面上に転記し、コードの正誤が検証され、正しい場合にはユーザー認証が完了し、ログインできる」というものです。

この動作イメージの中で、「ワンタイムパスコード (OTP: One Time Passcode) が送られてくる」「コードの正誤が検証される」と述べましたが、これらがAuthyの主要なAPI機能となります。API機能ですので、ウェブアプリケーションに組み込む、業務プロセスに組み込むといった側面が必要となり、組み込んでくれるヒーローはもちろんデベロッパーとなります。

一方でAuthyアプリは、ダウンロード+インストールして利用するスタンドアロン型のアプリケーションで、モバイル版 (iOS/Android)、そしてMac/Windows等のデスクトップ版があります。また、インストールし、設定を行った後は、時限でローテーションする数桁のトークンコード(ソフトトークンと呼ばれます)が表示されるようになりますので、オンライン系のサービスにログインする際に二要素目の認証ステップとしてトークンの入力を求められた際に、Authyアプリが表示するトークンを素早く入力し(←時限ですので)、ユーザー認証およびログインを完了するといった操作イメージとなります。

APIとしてのAuthyとアプリとしてのAuthyを明確に区別いただくため、表形式の比較記載を用意いたしました。ぜひご確認ください。

AuthyAppAndApiComparisonJP

なお、Authyに係るデータは弊社クラウドインフラの米国データセンターに所在します。データセンターの位置など詳細情報は公開しておりません。

Authyアプリについての深堀り

アプリについては前節で説明を開始しましたが、あらためて振り返りましょう。

先ず、すべてはアプリをダウンロードするところから始まります。モバイルデバイス上で利用することが多いと思いますので、iOSおよびAndroidのダウンロードリンクも記載しておきますね。

システムの前提条件(例: iOSのバージョン要件)については、こちらをご確認ください。また主にデスクトップ版が該当することが多いかと思いますが、ネットワーク(ファイアウォール)要件についての記載もありますので、事業所等のネットワーク環境に応じて、必要な疎通が行えるよう、IT管理者の方のご支援が得られるようにしてください。例えば、api.authy.com との通信が行える必要があります。

Authyアプリは無料ですが、Twilioのプロダクトとしてサービス利用規約が存在し、この規約に沿ってご利用いただく必要があります。サービス利用規約は英語マスター版日本語の参考版とご用意がありますので、両者を適宜併用し、内容理解いただければと思います。

またAuthyアプリについてはウェブベースのサポートが提供されます。利用開始直後にご確認いただくとよいサポート記事がこちら(英語)になります。その他にも、以下のサポート記事がありますので、英語記載で恐縮ですが、ご確認ください。

  • ソフトトークンの追加等の設定方法(こちら
  • マルチデバイス対応(こちら
  • バックアップ & 同期機能(こちら
  • その他全般的にはこちらをご確認ください。各種記事へのアンカーとなっていますので、各自の状況に応じたサポート記事が見つかると思います。

さて少し前置きが長くなりましたが、インストール直後、初回起動を行うと、ユーザ(あなた)を登録するための段階が続きます。電話番号を国番号(日本の場合には“+81”)から入力し、Eメールアドレスを記載し、その電話番号の正当な所有者であることを確認するための操作を行います。この操作では、ワンタイムパスコードをSMSもしくは電話で受信し、Authyの初回起動画面上に入力し、ユーザー確認(登録)を行ってください。ここまでの手順は円滑に進むものと思います。モバイル版アプリの場合には、iOS/Androidの通知設定の確認に対して意思表示を行い、これで初回起動の段階で必要となる設定は終わりです。なお:

  • 同じ電話番号を使い回せないことにご留意ください。
  • 基本的には個人の(=モバイルの)電話番号を利用してください。固定電話の番号でも登録できますが推奨いたしません。

AuthyAppInitSetup1JP

AuthyAppInitSetup2JP

次に行うことは、皆さんがログインしたいオンライン系サービス(例: Gmail、Twilio)の設定を、Authyアプリ画面上に足し込んでいくことです。この段階もそれ程複雑なものではなく、Authy画面上「+」をクリックし、(1) QRコードをスキャンするか、(2) キーを手動で入力してください。QRコードやキーは、ログインしたいオンライン系サービス側から提供されますが、幾つかのサービスについてはAuthy側にガイドをまとめたサイトがあり、そこで確認いただくことも可能です。この設定追加ですが、「各自のAuthyアプリに最大何個まで足し込めるの?」という質問をいただくことがありますが、「アプリ側では制限をもたせておらず、ご利用中のデバイスやOSに依存します」というお答えになります。

AuthyAppInitSetup3JP

“足し込み” 作業が終わった設定はAuthyアプリ上で新たなタイルとして表示されます。“足し込み” 作業の後半でお気付きになるかもしれませんが、タイル内に表示する画像や名称を指定することもできますので、Authyアプリを複数のタイル(複数のオンライン系サービス)の間で使い分ける際には、これら指定が便利に感じられるはずです。そのうえで、そのオンライン系サービスにログインする際には、ソフトトークンの入力を求められた時に、そのタイルをシングルクリックし、Authy画面の上部に表示されるソフトトークンを利用すればよいだけです。20秒や30秒といった時限でトークンの値が更新されますので、「入力は素早く」です!

最後に、1人のユーザーがスマホデバイスとコンピュータデバイスの2箇所にAuthyアプリをインストールし、同一ユーザーの下で利用したい際に便利なマルチデバイス対応(こちら)や、“足し込んで” いったタイルを複数デバイス間で共有する際に活躍するバックアップ & 同期機能(こちら)についても重宝すると思いますので、ぜひ内容確認をお願いいたします。

Authy API vs Verify API

最後に、セクションタイトルにもあるようにTwilio Verifyについて触れておきます。VerifyはAPIサービスとしてのみ提供しており、アプリ機能はありません。また単的には、Verify APIはAuthy APIの後継と位置付けられ、APIサービスとしてのAuthyをご検討のお客様は、代わりにVerify APIをご検討いただけますようお願いいたします。

参考までに、Twilioとしての開発投資の重点はVerify APIに置いており、今後Authy APIには必要最低限の機能強化しか盛り込まれていかない点にご留意いただければと思います。例えば、Verifyにおいてワンタイムパスコード (OTP) を送信する際のチャネルとしてWhatsAppへの対応や、VerifyにおけるTimed OTPへの対応について構想しており、いずれも現在正式リリース前のパイロットリリースのフェーズです。(構想やロードマップは、その内容や時期についてコミットするものではありませんので、予めご了承いただけますようお願いいたします。)

Authy APIとVerify APIは、二要素認証を実現するためのAPIフレームワークという点では概ね同じであるとも言えますが、実装方式や制限事項などの点で異なる部分ももちろん存在します。例えば、Authy APIでは認証すべきオンラインサービスの単位をApplicationsと呼びますが、VerifyではServicesと呼びます。これら対比について整理したサイトがありますので、内容をご確認いただければと思います。

最後に、現時点でAuthy APIを基にしたアプリケーションを配備展開(デプロイ)し、運用されておられるお客様向けにご用意した移行に関するブログ記事もございますので、移行の計画や実施に際しての指針としてご利用ください。

本ブログ記事で解消できない疑問点がありましたら、以下のリソースをご活用ください。

Twilioのアカウントセキュリティ系サービスが皆さまの業務に貢献していれば、とても嬉しく思います。