Official Documentation

管理者スマート2段階認証プラグイン
(IP検知メール確認)

オフィスや自宅などの信頼IP・信頼端末からは面倒な認証を自動スキップし、未知のIPアクセス時のみメールでワンタイムパスワードを送信。日々の利便性と鉄壁のセキュリティを両立する公式オンラインマニュアルです。

プラグインコード: AdminSmart2fa
対応バージョン: EC-CUBE 4.2.0 〜 4.3.x
PHP要件: PHP 8.1 〜 8.3
認証方式: メールOTP (IP検知連動)
最終更新: 2026年9月

1. プラグイン概要・スマート認証の仕組み

EC-CUBEの管理画面を保護するために2段階認証を導入するショップが増えていますが、従来のワンタイムパスワードアプリ(Google Authenticator等)方式には大きな課題がありました。

⚠️ 従来の2段階認証でよくある現場の課題
  • 社内オフィスや固定のPCからログインする際も、毎回スマートフォンを取り出してアプリを起動しコードを入力しなければならず、受注・出荷処理の初動が遅れる。
  • スマホの機種変更や破損・紛失時にコードが確認できず、管理者が完全に締め出されてしまう事故が多発する。

本プラグイン(AdminSmart2fa)は、このストレスを解消するために「スマートIP検知機能」「信頼端末記憶機構」を搭載しています。

🏢 信頼IPは認証スキップ
オフィスなどの登録済みIPからのログイン時は、IDとパスワードのみで即座に入室可能。日々の業務効率を損ないません。
📱 信頼端末の永続記憶
IPが変動しやすいモバイル端末でも、「この端末を信頼する」にチェックすれば以後そのブラウザからの認証を永続スキップ可能。
📧 未知のIPのみメールOTP
出張先やネットカフェなど、過去にログイン履歴のない新しいIPからの接続時のみ、ワンタイム確認コードが管理者のメールへ即座に送信されます。
🚨 15分アカウントロック
万が一ID/PWが漏洩しても、確認コードを5回連続で間違えるとセッションを破棄し15分間ロック。総当たり攻撃を防ぎます。

2. 動作要件・システム環境

項目 要件・対応仕様
EC-CUBE バージョン EC-CUBE 4.2.0 〜 4.3.x(4.2系・4.3系両対応)
PHP バージョン PHP 8.1 / PHP 8.2 / PHP 8.3
データベース MySQL 5.7 / 8.0 / PostgreSQL 10〜16
メール送信環境 EC-CUBE本体のメール送信設定(SMTPまたはmail関数)が正常に稼働していること。

3. インストール・有効化手順

  1. 1

    プラグインのインストール

    管理画面の「オーナーズストア > プラグイン > プラグイン一覧」より本プラグインをインストールします。

  2. 2

    メール送信テストの確認

    2段階認証コードは管理者の登録メールアドレスへ送信されます。事前にEC-CUBEの「基本設定 > 店舗設定」や管理者登録画面でメールアドレスが正しいことを確認してください。

  3. 3

    設定画面での有効化

    左メニューの「設定 > システム設定 > 管理者2段階認証設定」へ進み、「プラグインの有効化」にチェックを入れて保存します。

4. 管理画面の設定項目一覧

「設定 > システム設定 > 管理者2段階認証設定」で設定可能な全パラメータの一覧です。

設定項目名 初期値 説明・設定のポイント
プラグインの有効化
isEnabled
OFF 2段階認証機能全体のON/OFFを切り替えます。
認証モード
authMode
スマートIP検知
(推奨)
  • スマートIP検知(推奨): 登録された信頼IPおよび信頼端末からのアクセス時はコード入力を自動スキップし、未知のIP接続時のみコードを送信します。
  • 毎回認証: 接続元IPや端末に関わらず、ログインのたびに毎回ワンタイムコードを要求します(最高水準の警戒モード)。
信頼端末の記憶
enableTrustedDevice
ON(有効) コード入力画面に「この端末(ブラウザ)を信頼する」チェックボックスを表示します。ONにすることで、IPが変動しやすいモバイル端末でも継続利用が快適になります。
信頼IPプール保持数
maxTrustedIpsPerMember
10 件 管理者アカウントごとに自動記憶する「過去に認証成功した信頼IP」の最大件数です(1〜50件)。上限を超えた場合は古い順に破棄されます。
コード桁数
codeLength
6 桁 確認コードの長さを 4桁 / 6桁 / 8桁 から選択します。通常は「6桁」が推奨されます。
コード有効期限
codeLifetimeMinutes
5 分 ワンタイムコードの有効期間を 1分 / 5分 / 10分 / 15分 から選択します。
使用文字種
codeCharType
数字のみ コードを「数字のみ(例: 839201)」または「英数字混在(例: 7K9mA2)」から選択します。スマートフォンでの入力のしやすさを考慮し「数字のみ」を推奨します。
ロックまでの連続失敗数
maxFailureAttempts
5 回 確認コードの連続誤入力許容回数です(3〜10回)。上限に達するとアカウントが一時ロックされます。
アカウントロック時間
lockoutMinutes
15 分 上限失敗時にログインを禁止する時間(分)です(5〜60分)。
メール件名・本文
mailSubject / mailBody
既定テンプレート コード送信メールの件名および本文を編集できます。
利用可能な置換タグ: %%shop_name%%(ショップ名)、%%admin_name%%(管理者名)、%%otp_code%%(確認コード)、%%expire_minutes%%(有効期限分)、%%ip_address%%(接続元IP)、%%user_agent%%(端末情報)

5. ログイン時の挙動とブルートフォース対策

本プラグインが有効な場合、管理者のログイン処理は以下のフローで安全に実行されます。

認証フローチャート

  1. 1

    ID・パスワードの一次認証

    通常のログイン画面でID・パスワードを入力します。

  2. 2

    スマート判定(スキップ判定)

    接続元IPが「信頼IPプール」に含まれているか、またはブラウザのCookieに有効な「信頼端末トークン」が存在する場合、追加認証なしで即座に管理画面トップへ遷移します。

  3. 3

    未知のIPの場合:コード自動生成&メール送信

    未知のIPからのアクセスの場合は中間画面(コード入力画面)へリダイレクトされ、同時に登録メールアドレスへ確認コードが自動発信されます。

  4. 4

    コード検証と信頼登録

    正しいコードを入力するとログインが完了し、現在のIPが「信頼IPプール」に自動登録されます。「この端末を信頼する」にチェックが入っていた場合は端末トークンも発行されます。

🚨 ブルートフォース総当たり対策(アカウント一時ロック)
確認コードを5回連続で誤入力すると、悪意ある侵入試行と判定してセッションを破棄し、該当アカウントを15分間ロックします。ロック期間中は正しいID・パスワードを入力してもログインできません。同時に「アカウント一時ロック通知メール」が管理者に届き、不正ログイン試行の発生を検知できます。

6. SSHコンソールコマンド(緊急脱出機能)

「メールサーバーの不調でコードが届かない」「管理者がロックされてログインできない」といった予期せぬトラブルが発生した場合でも、サーバーのSSHターミナルから即座に対処できるよう、多彩なCLIコマンドを標準装備しています。

# 1. 2段階認証を緊急OFF(完全バイパスしてログインしたい場合)
$ bin/console admin-smart-2fa:disable

# 2. 2段階認証を再開(トラブル解消後)
$ bin/console admin-smart-2fa:enable

# 3. 失敗ロックされたアカウントのロックを即時解除
$ bin/console admin-smart-2fa:unlock [管理者ログインID]

# 4. 指定したIPアドレスを特定の管理者の信頼IPに直接追加
$ bin/console admin-smart-2fa:trust-ip [管理者ログインID] [IPアドレス]

# 5. 現在の稼働ステータスと設定内容を表示
$ bin/console admin-smart-2fa:status
✅ 完全締め出し事故の心配がありません
万が一のメール不達時も、サーバー管理者権限(SSH)があれば数秒で復旧できるため、安心して本番環境へ導入いただけます。

7. よくある質問・トラブルシューティング

Q. メールが届かず、確認コードを入力できません。

迷惑メールフォルダに振り分けられていないかご確認ください。また、EC-CUBE本体のメール送信設定(.envMAILER_DSN や基本設定)が正しく構成されているかをご確認ください。緊急時は上記のSSHコマンド(bin/console admin-smart-2fa:disable)で一時的に機能をOFFにすることでログイン可能です。

Q. 自宅のインターネット回線はIPアドレスが定期的に変わります。

コード入力画面に表示される「この端末(ブラウザ)を信頼する」にチェックを入れてログインしてください。ブラウザに安全な永続トークンが記録されるため、IPアドレスが変わっても追加認証なしでログインできるようになります。

Q. 信頼していた端末の登録を取り消したい(盗難・紛失時など)

別の信頼済みPCまたはコード入力で管理画面にログイン後、「設定 > システム設定 > 管理者2段階認証設定」の「信頼端末・IP管理」タブより、該当の端末トークンを個別に削除可能です。