ベーシック認証
ベーシック認証(HTTP Basic Authentication)は、ログインページにアクセスした際にブラウザの認証ダイアログを表示し、正しいユーザー名とパスワードを入力しないとログインフォーム自体を表示しない機能です。
多層防御の Layer 3 として、カスタムログインURL(Layer 2)とreCAPTCHA(Layer 4)の間に位置します。
仕組み
ベーシック認証を有効にすると、ログインページへのアクセス時に以下のフローで認証が行われます。
- ブラウザがログインURLにアクセス
- サーバーが
401 UnauthorizedとWWW-Authenticateヘッダーを返す - ブラウザが認証ダイアログを表示(ユーザー名・パスワード入力)
- 正しい認証情報を送信すると、WordPressのログインフォームが表示される
- 認証に失敗すると、再度ダイアログが表示される
技術仕様: SentinelSecurity のベーシック認証は
.htaccessではなく PHP の HTTP 認証ヘッダー($_SERVER['PHP_AUTH_USER']、$_SERVER['PHP_AUTH_PW'])を使用しています。そのため、サーバーの.htaccessを変更せず安全に利用できます。
設定方法
- WordPress 管理画面 → SentinelSecurity → ログインセキュリティ を開きます
- Layer 3: ベーシック認証 セクションを見つけます
- トグルスイッチを 有効 にします
- ユーザー名 を入力します
- パスワード を入力します
- 保存 をクリックします
設定項目
| 項目 | 説明 | 必須 |
|---|---|---|
| 有効/無効 | ベーシック認証のON/OFF | — |
| ユーザー名 | 認証ダイアログに入力するユーザー名 | 有効時は必須 |
| パスワード | 認証ダイアログに入力するパスワード | 有効時は必須 |
注意: ここで設定するユーザー名とパスワードは、WordPress のログインアカウントとは別のものです。WordPress のログイン情報とは異なる値を設定してください。
wp-config.php での定数定義
セキュリティを強化するため、wp-config.php に定数を定義してベーシック認証の認証情報を管理することもできます。
define( 'SENTINEL_BASIC_AUTH_USER', 'your_username' );
define( 'SENTINEL_BASIC_AUTH_PASS', 'your_password' );
定数が定義されている場合、管理画面で設定した値より定数の値が優先されます。
適用される条件
- カスタムログインURL が有効: カスタムURLへのアクセス時に適用
- カスタムログインURL が無効:
/wp-login.phpへのアクセス時に適用 - ログイン済みユーザー: ベーシック認証はスキップされます
- IP 制限との連携: IP制限(Layer 1)を通過したアクセスのみベーシック認証が実行されます
注意事項
- ベーシック認証のユーザー名・パスワードを忘れた場合は、FTPやファイルマネージャーからプラグインを無効化すれば解除されます
- REST API クライアント等のプログラム的なアクセスには影響しません
- キャッシュプラグインを使用している場合、ログインページがキャッシュされないことを確認してください
関連ドキュメント
- ログインセキュリティ(概要) — 5層防御の全体像
- IP制限 — Layer 1: IPアドレスによるアクセス制限
- カスタムログインURL — Layer 2: ログインURLの変更
- reCAPTCHA — Layer 4: ボット対策
- メール認証(OTP) — Layer 5: ワンタイムパスワード