Auth0を使ってリモートワークでのログイン時にMFAを行う

2020.04.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

リモートワークとセキュリティー、利便性

こんにちは、ゲストブロガーの岩崎です。

かつて企業向けシステムは、サーバーが企業ネットワーク内に置かれ、外部から利用することはできませんでした。システムがクラウドに移行した後も、接続元のIPアドレスを確認し、社内ネットワークからの接続のみを認めているシステムもありました。 しかし、コロナウイルスで外出自粛要請も出ている昨今、リモートワークでの利用ができないシステムは時代遅れと言わざるを得ません。

社内社外からアクセスされうるシステムのセキュリティーを高める機能の一つがMFA(多要素認証)です。 Auth0のMFA機能では、IDとパスワードだけではなく、SMSやメール送信、プッシュ通知やGoogle Authenticatorなどを通じてユーザーの所持情報も確認することで、認証要求を出しているユーザーの本人確認を行うことができます。

ここで、ログイン時に毎回MFAを行えばセキュリティーは高まる一方、ログインするユーザーにとっては手間になり、利便性を損ねてしまう側面もあります。 そんな時に採用いただきたいのが、リモートワーク(社外からのアクセス)でのログイン時にのみMFAを行う機能です。Auth0の機能により簡単に設定可能です。

Auth0によるMFAの設定とカスタマイズ

まずはMFAを使わずに動作するアプリケーションを用意する必要がありますので、こちらの記事にしたがって、サンプルアプリケーションをダウンロードし動かしてみましょう。ここで、Gmailでも良いので、ソーシャル連携ではなくユーザーを新規登録してログインできるところまで進めてください。

ログイン画面

それでは、MFAの設定を行います。まずは、管理画面左ペインの「Multifactor Auth」を選び、利用する認証方式のスイッチをクリックして有効(緑色)にします。下の図では「プッシュ通知(Guardian)」「ワンタイムパスワード(Google Authenticator互換)」「SMS」を有効にしています。

MFA一覧画面

社外からのアクセスでのみMFAを行う設定は、Rules機能から行います。 画面のRulesリンクをクリックして、右上の「CREATE RULE」を選びます。

ルール画面

認証の詳細処理を行うルールの雛形が表示されますので、 スクロールして「Multifactor」内にある「Multifactor when request comes from outside an IP range」を選びます。

ルール作成画面

ルール設定画面が表示されます。3行目にIPアドレスレンジの記載const corp_network = "192.168.1.134/26";がありますので、会社のパブリックIPレンジに置き換えます。テスト目的では、いまお使いの環境のパブリックIPを確認 *1し、そのアドレスに"192.168.1.134/32"のように、/32を追加するのが簡単です *2。下の「SAVE CHANGES」を押して設定を保存します。

ルール編集画面

社内社外からのログイン確認

先ほどのアプリケーションに再度アクセスしてみましょう。まず同じ環境からアクセスを行った場合は、MFAが表示されずログインできると思います。次にログアウトして、別のIPアドレスからアクセスしてみましょう *3

ログインボタンを押してメールアドレスとパスワードを押してログインしようとすると、今度は先ほど設定したIPアドレスの範囲外からのアクセスとなり、またこのユーザーはMFAの設定が済んでいないので、自動的にMFAの設定画面が表示されます。ここでは、画面の下の方にあるSMSを選択しましょう。

MFA選択画面

指示に従って携帯電話の電話番号を登録すると、SMSが届きます *4ので、そのコードを入力していくと、幾つかのステップを経た後、無事ログインが完了します *5

電話番号入力画面

ログイン画面

おわりに

Auth0のMFA設定機能は強力で、今回紹介した以外にもさまざまな応用が可能です。 例えば、B2Cのシステムでは、一般ユーザーのほか、社員による管理者ユーザーが用意されている場合もあると思いますが、そのようなケースでは、当記事の内容とAuth0のMFA認証をユーザーごとにカスタマイズするで紹介されている仕組みを組み合わせて構築することもできます。

その場合、一般ユーザーはどこからでもMFAなくアクセスでき、管理者ユーザーも社内からはMFA不要ですが、管理者が社外からアクセスした時にのみMFAを要求することで、利便性とセキュリティーの両立を簡単に実現できます。 MFA設定はAPIから行うことも可能ですので、柔軟なフローの構築も可能です。

皆様の会社でリモートワーク環境を整えていくにあたり、Auth0がそのお手伝いをできればとても嬉しく思います *6。MFAの応用についても、また機会がありましたら紹介させていただければと思います。

脚注

  1. cman.jpのIPアドレス確認ページなどで確認できます。
  2. ipaddr.jsの機能を使って細かいIPレンジチェックを行うことも可能です。
  3. スマートフォンのテザリング機能を使ってPCからLTE経由でログインするのが簡単です。
  4. SMSはアメリカの電話番号から届いたかと思いますが、この番号も変更できます。
  5. なお、GoogleのソーシャルログインユーザーがMFA経由でログインするためには、Googleから取得したキーの設定が必要です。
  6. クラスメソッド社も4月22日にAuth0オンラインセミナーを開催予定です。