メニュー

Expand
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?

TwilioAuth SDK - 動作の仕組み

概要

OneTouchは、下記のようなシナリオに使用できるセキュアな認証および権限付与サービスです:

  • 2要素認証。 ユーザーがユーザー名とパスワードで認証を行なった後、彼らのデバイスに対してログインを行うか拒否するかの承認を得るためのリクエストに応答するよう問い合わせます。
  • パスワードレスなログイン。 2要素認証ではなく、OneTouchを主要な認証として使用します。 ユーザーがアプリケーションにユーザー名のみを提示すると、彼らのデバイス上でOneTouchリクエストを受信し、ログインを完了させます。 これでこの電話は主要な認証に使用される、信頼済みデバイスとなります。
  • 権限付与。 ログインのセキュリティーを強化するだけでなく、アプリケーション自身の中での高価値なアクティビティーをセキュアにすることも重要です。 たとえば、¥1,000,000を超えるような購入や資金移動などの高額な経済取引が当てはまります。 アプリケーション内でこれらのアクションが要求されたとき、取引完了に先立って一人または複数人に対して承認を求めるOneTouchリクエストを送信できます。

モバイルSDKフローのダイアグラム

上図はモバイルデバイス上でのOneTouch承認リクエストの例になります。 このように、リクエストの承認するか否認するかについてよく理解したうえで決定を下す手助けとしての、ブランディングと詳細情報の使用方法がお分かりになるでしょう。 モバイルまたはデスクトップのデバイスに対して、リクエストを開くよう促すプッシュ通知がが送信されます。

動作のしくみ

モバイルSDKでOneTouchの承認リクエストが正常に完了するには、下記のようなフローの実装が必要になります。

  1. ユーザーが開発者のAuthyアプリケーションに追加されていることが必要です。
  2. バックエンドのアプリケーションではOneTouch承認リクエストの作成を実装されていることが必要です。
  3. モバイルアプリケーションにはTwilioAuth SDKが含まれていることが必要です。
  4. モバイルAppのインストールにおいて、TwilioAuth SDKはユーザーのデバイスをAuthyサービスに登録することが必要です。
  5. ユーザーがアプリケーション内で認証や権限付与が必須なアクション(ログイン、アカウントの更新など)を実行したとき、アプリケーションはOneTouch承認リクエストを作成します。
  6. AuthyサービスはトランザクションID(UUID)を伴って応答します。
  7. それから、バックエンド側のアプリケーションはユーザーに対してプッシュ通知をトリガーして、承認リクエストについてユーザーにアラートするか、あるいはAuthyが開発者に代わってプッシュ通知を処理します。
  8. モバイルアプリケーションがプッシュ通知を受信し、プッシュ通知のペイロードからトランザクションID(UUID)を取得します。
  9. モバイルAppではTwilioAuth SDKを使用してリクエストの詳細情報を取得し、適切なユーザーインターフェイスを表示します。
  10. ユーザーは承認または否認を選択し、TwilioAuth SDKはその情報を使ってAuthyサービスを更新します。
  11. Authyサービスはアプリケーションに更新された情報を含むコールバックを送信するか、あるいはアプリケーションからサービスに対して、承認リクエストの更新についてポーリングを行うこともできます。
  12. リクエストのステータスが変化したら、バックエンドのアプリケーションは適切に応答します(ユーザーがログインできるか否か、アカウントが更新されるか否か、など)

バックエンドを使用する理由

SDKはAuthyと安全にやり取りすることが必要なため、すべてのデバイスは認証済みでなければなりません。 しかしAuthyのAPIキーは強力なものであり、これをクライアント側のアプリケーションにハードコーディングしてはなりません。 そうではなく、現在開発者のバックエンドで使用している認証方法を使用することで、認証についてのコントロールを開発者に委ねます。

簡単にデプロイできるサンプルのバックエンドへのSDKの統合からスタートできるクイックスタートが必要な場合は、チュートリアルセクションを参照してください。

デバイスの登録

ユーザーがTwilioAuth SDKを使い始める前に、彼らのモバイルデバイスがAuthyサービスに登録されていることが必要です。 下記は、TwilioAuth SDKを使用するモバイルデバイス用のフローになります:

モバイルSDKのデバイス登録フロー

ユーザーは、デバイスの登録プロセスの開始前にAuthyアプリケーションに追加されていることが必要です。 OneTouchの使用方法によっては、ユーザーが開発者のアプリケーションでアカウントを作成したときか、あるいは2要素認証の用途には彼らが2要素認証を有効にした時点で、ユーザーをAuthyに追加します。 新規ユーザー登録用のAuthy APIを呼び出してユーザーを登録する場合、Authy APIはユーザーID(Authy ID)をともなってレスポンスを返します。

  1. モバイルAppはバックエンド・アプリケーションに問い合わせることで登録プロセスを初期化します
  2. バックエンドのアプリケーションはAuthyサービスを呼び出し、ユーザーのAuthy IDを送信して登録プロセスを開始します。 Authyサービスは登録トークンを伴ってレスポンスを返します。
  3. バックエンドのアプリケーションは登録トークンをモバイルAppに返送して、登録プロセスを完了させます。
  4. モバイルAppは、TwilioAuth SDK経由でAuthyサービスに対して登録トークンを送信し、これに成功した場合はアクセストークンを取得して、今後このデバイスからリクエストを行えるようになります。

承認リクエスト

登録プロセスの完了後は、モバイルアプリケーションはAuthy OneTouch承認リクエストを扱えるようになります。

モバイルSDKの承認リクエスト

  1. アプリケーション内でユーザーが、保護されかつバックエンド側のアプリケーションがその完了にOneTouchリクエストが必要であると認識しているアクションを実行します。 バックエンドのアプリケーションはAuthyサービス内で承認リクエストを作成します。 AuthyサービスはリクエストID(UUID)を伴ってレスポンスを返します。
  2. バックエンドまたはAuthy経由でデバイスに対してプッシュ通知が送信されます。
    • ご自身でプッシュ通知を送信する場合は、そのペイロード内にリクエストIDが含まれていることを確認してください。
    • Authyがプッシュ通知を送信する場合は、リクエストIDが通知のペイロードに自動的に付加されて送信されます。
  3. モバイルアプリケーションがプッシュ通知を受信し、通知のペイロードからリクエストID(UUID)を展開します。
  4. モバイルアプリケーションはAuthy Mobile SDKを使用して認証を行い、Authyサービスで承認リクエストの詳細をリクエストします。
  5. ユーザーはTwilioAuth SDKを使用して承認または否認を行います。 TwilioAuth SDKはリクエストに電子署名を施し、これをAuthyサービスに返送します。
  6. Authyはバックエンドのアプリケーションに対してOneTouchコールバックを送信し、操作の結果に基づいて適切な動作を行わせることができます。 バックエンドのアプリケーションは、ポーリングによって承認リクエストのステータスを更新することもできます。
Rate this page:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。