メール認証(OTP)
メール認証は、ユーザーがパスワードでログインした後、登録メールアドレスに送信されるワンタイムパスワード(OTP)の入力を求める二要素認証機能です。
なぜ二要素認証が重要なのか
パスワードだけの認証(一要素認証)には以下のリスクがあります。
- パスワードの使い回しによる流出
- フィッシングサイトでの詐取
- 内部関係者によるパスワードの漏洩
動作の流れ
- ユーザーが通常通りユーザー名とパスワードでログインします
- パスワードが正しい場合、6桁のワンタイムコードがメールで送信されます
- OTP入力画面が表示されます(カウントダウンタイマー付き)
- ユーザーがメールで受け取ったコードを入力します
- コードが正しければログインが完了します
設定項目
| 項目 | 説明 | デフォルト |
|---|---|---|
| 有効期限 | OTPの有効時間 | 10分 |
| 対象ロール | OTPを要求するユーザーロール | 管理者(administrator) |
| 除外ユーザー | OTPを免除する特定ユーザー | なし |
| 最大試行回数 | OTP入力の最大試行数 | 3回 |
| 再送信クールダウン | OTP再送信の待機時間 | 60秒 |
設定方法
- SentinelSecurity → ログインセキュリティ → メール認証(OTP) セクション
- トグルスイッチを 有効 にします
- 対象ロールを選択します
- 有効期限と試行回数を設定します
- 保存 をクリックします
対象ロールの選択
サイトの運用形態に応じて、OTPを要求するロールを選択してください。
推奨設定
| サイトタイプ | 推奨対象ロール |
|---|---|
| 個人ブログ | 管理者のみ |
| 企業サイト | 管理者 + 編集者 |
| EC・会員制サイト | 管理者のみ(一般会員を対象外に) |
メールテンプレートのカスタマイズ(プロ版)
プロ版では、OTP通知メールの件名と本文をカスタマイズできます。
利用できるテンプレート変数
| 変数 | 内容 |
|---|---|
[code] | ワンタイムパスワード(6桁) |
[expires_at] | 有効期限の日時 |
[username] | ログインユーザー名 |
[site_name] | サイト名 |
[site_url] | サイトURL |
[ip_address] | ログイン元のIPアドレス |
[timestamp] | ログイン試行の日時 |
カスタマイズ方法
- SentinelSecurity → メール通知設定 を開きます
- メール形式を HTML に設定します
- TinyMCE エディタで件名と本文を編集します
- テンプレート変数は左側のボタンからワンクリックで挿入できます
セキュリティ上の考慮事項
- OTPコードは使い捨てです。一度使用すると無効になります
- 有効期限を過ぎたコードは使用できません
- IPアドレスの不一致がある場合のログイン試行は記録されます
- OTPの試行回数超過で、セッションが無効化されます
トラブルシューティング
OTPメールが届かない
- WordPress のメール送信が正しく動作しているか確認してください
wp_mail()が使用するSMTP設定を確認してください- スパムフォルダに振り分けられていないか確認してください
- WP Mail SMTP などのプラグインを使用して、メール送信の信頼性を向上させることを推奨します
コードを入力しても「無効なコード」と表示される
- 有効期限内に入力しているか確認してください
- コードの前後にスペースが入っていないか確認してください
- 再送信ボタンで新しいコードを取得してお試しください