EC-CUBEの会員ログインを強化する方法の一つに、認証アプリが表示する確認コードを追加する方式があります。サンクユーでは、EC-CUBEベースのサイトの会員ログインに、認証アプリの登録、ログイン時の確認、アプリ変更、紛失時の再登録までを含む2段階認証を追加実装しました。
本記事では、アプリ認証とSMS認証を選ぶ際の違いを整理したうえで、認証アプリを追加実装した際の設計の考え方を紹介します。SMSの説明は方式と運用の検討事項であり、今回の実装例がSMSにも対応することを示すものではありません。EC-CUBE標準の設定手順や、そのまま他のサイトへ適用できる操作マニュアルではありません。
この記事でわかること
- 標準の2段階認証(管理画面向け)と、会員ログイン向けの追加実装の違い
- アプリ・SMS・メール方式の違いと運用の確認事項
- 登録を確認コードの入力まで完了としない理由
- 有効化と必須化の違い
- アプリの変更・紛失を分けて考える復旧設計
標準の2段階認証と、会員ログイン向けの追加実装を区別する
EC-CUBEは4.1.0から、2段階認証の機能を標準で備えています。公式の管理・運用マニュアルでは、2段階認証はメンバー管理の項目として、管理画面ログインのセキュリティ強化の機能と説明されています。初期設定は「無効」です。(参考:EC-CUBE公式 管理・運用マニュアル)
公式マニュアルの説明は管理画面ログインが対象です。購入者側の会員ログインに同様の確認を求める場合は、対応するプラグインの有無の確認や、個別開発を含めて検討することになります。本記事は、そのうち個別開発として追加した実装例です。
管理画面側の2段階認証やセキュリティ情報は、EC-CUBEの多層防御(WAF・IP制限・2段階認証)を参照してください。
今回採用したのは認証アプリの確認コード
メールアドレスとパスワードに加え、登録した認証アプリのコードで確認する方式です。メールやSMSでコードを受け取る方式とは異なります。
今回は、時間に応じてコードが変わるTOTP方式に対応したアプリを利用します。会員は、対象サイト用に登録したアプリのコードを入力してログインします。
コードの受け取り方には、認証アプリのほか、メールやSMSで受信する方式もあります。SMSは電話番号の管理と送信手段、メールはメールアカウント自体の保護が、確認事項になります。どの方式が合うかは、会員が使える端末と運営体制から判断します。方式ごとの確認事項を分け、利用者が継続して使える方法を検討します。
SMS認証の流れと、導入前に決めておくこと
SMS認証は、登録した携帯電話番号へ確認コードを送り、会員が受信したコードをサイトへ入力する方式です。認証アプリの登録が不要な一方、SMSを受信できる端末と、本人が管理する電話番号が必要になります。
一般的な利用の流れ
- 利用する電話番号を登録し、番号の確認を行う。
- ログイン時に、登録番号へ確認コードを送る。
- 会員がコードを入力し、照合後にログインを完了する。
これは一般的な流れです。電話番号の登録・変更時に何を確認するか、コードを求めるタイミングは、個別の要件に合わせて決めます。
電話番号の変更と、SMSを受信できない場合
携帯電話の契約変更や端末の紛失に備え、番号を変更する手続きと本人確認の担当を決めておきます。受信できない場合の案内、再送の扱い、問い合わせ窓口も必要です。連絡が来ただけで登録番号を変更する運用は避けます。
送信手段と費用も比較する
SMSの送信サービス、対象の電話番号での受信、送信に伴う費用を確認します。認証アプリのコードを入力する方式とは、導入後に管理する項目が異なります。
| 方式 | コードの確認方法 | 運用で決めること |
|---|---|---|
| 認証アプリ | 登録したアプリが表示するコード | アプリ登録、端末変更、紛失時の再登録 |
| SMS | 登録した電話番号で受信するコード | 電話番号の確認・変更、受信できない場合、送信手段・費用 |
| メール | 登録したメールアドレスで受信するコード | メールの到達、アドレス変更、メールアカウントの保護 |
メール方式の紹介は、EC-CUBEのメールによる二段階認証の記事をご覧ください。以下では、今回追加実装した認証アプリ方式の登録・変更・復旧を説明します。
登録は、確認コードの入力まで終えて完了とする
認証アプリの登録では、本人確認を行い、アプリへの登録とコードの確認まで完了できる流れを用意することが大切です。
アプリでQRコードを読み取った後、表示された確認コードをサイトへ入力し、確認が通って初めて登録完了とします。登録画面を表示しただけで有効にすると、アプリ側の準備ができていない会員がログインできなくなるおそれがあります。
QRコードを読み取れない場合の登録方法も用意しました。登録情報は本人の認証に使うものなので、社内で共有する説明資料などへ、そのまま載せないことも案内に含めます。
有効化と必須化は分けて管理する
導入時は、2段階認証を利用する状態と、利用を必須にする方針を区別して整理します。例えば、次のような違いがあります。
- 有効化:対象会員に2段階認証を利用してもらう。
- 必須化:会員自身では2段階認証を解除できない状態にする。
- 必須設定の解除:会員自身で解除できる状態に戻す。認証機能自体を無効にする操作とは異なる。
運営担当者がこの違いを理解していないと、解除したつもりなのに認証が求められるといった問い合わせにつながります。管理画面の表示だけでなく、操作の結果を説明する資料も合わせて用意します。
アプリの変更と紛失は、別の流れとして設計する
変更前のアプリを使える場合
変更前のアプリを利用できる場合は、本人確認を行い、新しいアプリへ移行する流れを用意します。移行の途中で利用手段がなくならない流れにしておくことが、検討のポイントです。
変更前のアプリを使えない場合
会員から運営担当者へ連絡し、運営側で本人確認を行ってから、再登録の手続きに進みます。復旧時は、認証を解除したままにするのではなく、新しいアプリで利用を再開するところまで設計します。
再登録の手続きにどのような条件を設けるか、復旧時にパスワード認証やIP制限をどう扱うかは、サイトの利用方法と情報管理方針に合わせて決めます。
管理画面で復旧操作ができても、連絡が来るたびに確認なしで解除する運用では、2段階認証を追加した意味が薄れます。誰が、どの方法で本人確認を行うかまで、先に決めておきます。
ログイン時に何を求めるかを会員へ案内する
確認コードが必要になるタイミングは、設計によって異なります。ログイン時のどの場面で求めるか、別の端末やブラウザではどうなるかを、あらかじめ決めておきます。
会員への案内には、登録方法だけでなく、コードが必要になるタイミングと、アプリを使えない場合の連絡先も含めます。困った会員が自己判断でアカウントを作り直すといった対応を避けるためです。
導入前に決めておくこと
- 利用する端末と、認証アプリの案内方法
- 任意利用にする会員と、必須にする会員の扱い
- 登録の途中で中断した場合の案内
- 機種変更と紛失時の連絡先、本人確認の手順
- 設定変更に伴うログイン状態の変更と、事前案内の方法
2段階認証は、不正ログインへの備えの一つです。導入後も、端末・認証情報の管理や、運営側の復旧手順を維持する必要があります。IP制限やログイン期限との組み合わせは、BtoB-ECの会員ログインをどう守る?2段階認証・IP制限・ログイン期限の設計で整理しています。
よくある質問
EC-CUBE標準の2段階認証を、会員ログインに使えますか?
公式マニュアルでは、標準の2段階認証は管理画面ログインのセキュリティ強化の機能として、メンバー管理の項目で説明されています。会員ログインに同様の確認を求める場合は、プラグインの有無の確認や個別開発を含めて検討します。
メールやSMSでコードを受け取る方式とは、何が違いますか?
認証アプリ方式は、登録したアプリが表示するコードで確認します。メールやSMSの方式は、受信したコードで確認します。SMSでは電話番号の管理と送信手段、メールではメールアカウント自体の保護も確認事項になります。どちらを採用するかは、会員が利用できる端末と運用体制に合わせて判断します。
認証アプリを紛失した会員は、2段階認証を解除すればよいですか?
解除だけで済ませると、その会員の2段階認証が外れた状態になります。運営側で本人確認を行ったうえで、新しいアプリへ再登録する流れも選択肢です。誰が何を確認するかを、先に決めておきます。
全会員に2段階認証を必須にする必要がありますか?
一律に必須にする必要はありません。扱う情報や利用場面に応じて、任意利用にする会員と必須にする会員を分ける設計も検討できます。情報管理方針と運営体制に合わせて判断します。
EC-CUBEの会員ログインの保護について相談する
サンクユーでは、EC-CUBEの機能追加を、実際の運用条件と合わせて検討します。現在の利用環境と、保護したい情報・困っていることをお知らせください。
あわせて読まれています
投稿者プロフィール
- サンクユーのEC-CUBE担当。15年以上にわたりEC-CUBE開発に従事し、2系・3系・4系すべてに精通。難易度の高いカスタマイズや、他社構築サイトの改修・再設計も多数対応しています。
Javaでの業務システム開発を起点に、PHP・Perl・フロントエンド・CMSまで横断的に対応。基幹システム連携や業務フローを踏まえた設計を得意とし、複雑な要件にも柔軟に対応可能です。
ChatGPT CODEXを活用し、開発スピードと品質の両立を実現しています。









