セキュリティ事件等が発生するたびになにか話題にあがる2FA(2要素認証)があります。2FAの仕組みを自前で構築するには、かなり大変です。今回は、気軽に始めるVonage Verify APIコールを使って、二要素認証を実現する方法について紹介します。

二要素認証とは

二要素認証とは、”ユーザだけが知っているもの”, “ユーザが持っているもの”,”ユーザの特性”などのうち、2つの要素を組み合わせてユーザの身元を確認する仕組みのことです。

よく見かける例

よく見かける例としては、下記の2つがあります。

  • ログイン情報 + スマホ(SMSを使った確認コードによる確認)
  • ログイン情報 + 指紋認証を使う

Vonage Verifyについて

Vonage社は、コミュニケーションチャンネルを追加するための機能をクラウドAPIとして提供する会社です。この会社が提供するAPIの機能の1つに認証を行うためのAPIがあります。今回は、SMSを使った確認について記載します。

Vonage Verfiy APIを利用して自社(既存)サービスに連動する構成例

Vonage Verify APIは、REST形式のAPIが公開されています。各APIには、API_KEY, API_SECRETを指定する必要があるので、外部公開されていないようなバックエンドサービスからAPIコールする構成がよいと思います。構成例を示します。

確認コードの送信、確認コードの検証という2つのAPIを組み合わせて実現することになります。

  • Request Verification
  • Verify Check

Request Verification

ドキュメントに沿って、APIのパラメータを指定します。Request Bodyに指定する際のパラメータは、application/x-www-form-urlencoded形式になっています。

嬉しいポイントとしては、workflow_idを使って、ユーザに気づきを与える方法がサポートされている点です。SMS + TTSなど 組み合わせたり、何度か送るなど設定できます。

Verify Check

ドキュメントに沿って、APIのパラメータを指定します。Request Bodyに指定する際のパラメータは、application/x-www-form-urlencoded形式になっています。

Rquest Verificationで返却されたリクエストIDとスマホ送信された確認コードを引数にとります。

今回は、Vonage社が提供するVerify APIを使った二要素認証について紹介しました。2つのAPIをコールすることで簡単にスマホSMSを使った二要素認証の仕組みが実現できます。この仕組みを使うと特定のクラウド上にシステムを構築しなければならないなどの縛りもなくなり柔軟にシステム構築ができると思います。Vonageが提供するAPIには、他にも便利なものがありそうなので、また紹介します。お疲れ様でした。