2026年5月20日

2026年5月20日

WordPressのアプリケーションパスワードを管理する方法

はじめに

WordPress 5.6から導入されたアプリケーションパスワードは、REST APIや外部ツールに対してメインパスワードを共有せずに認証を付与できる機能です。不要になったら個別に削除できるため、セキュリティ管理が容易です。

解決手順

ステップ1:管理画面でアプリケーションパスワードを作成する

1. ユーザー → プロフィール を開く

2. ページ下部「アプリケーションパスワード」セクションまでスクロール

3. アプリケーション名を入力(例:「Zapier連携」「投稿スクリプト」)

4. 「新しいアプリケーションパスワードを追加」をクリック

5. 表示される24文字のパスワードをコピー(再表示不可)

ステップ2:WP-CLIでアプリケーションパスワードを管理する

# アプリケーションパスワードを作成
wp user application-password create username "My App"

# 作成済みアプリケーションパスワード一覧を表示
wp user application-password list username

# 特定のアプリケーションパスワードを削除
wp user application-password delete username {uuid}

# 全アプリケーションパスワードを削除
wp user application-password delete username --all

ステップ3:コードでアプリケーションパスワードを管理する

// アプリケーションパスワードを作成
$result = WP_Application_Passwords::create_new_application_password(
    $user_id,
    ['name' => 'My External App']
);

if (!is_wp_error($result)) {
    [$password, $item] = $result;
    // $password は平文パスワード(一度しか取得できない)
    // $item には uuid, name, created 等が含まれる
    error_log('Created: ' . $item['uuid']);
}

// アプリケーションパスワード一覧を取得
$passwords = WP_Application_Passwords::get_user_application_passwords($user_id);
foreach ($passwords as $item) {
    // $item['uuid'], $item['name'], $item['last_used'], $item['last_ip']
}

// 特定のアプリケーションパスワードを削除
WP_Application_Passwords::delete_application_password($user_id, $uuid);

ステップ4:REST APIでアプリケーションパスワードを使用する

# Basic認証でREST APIを呼び出す(ユーザー名 + アプリケーションパスワード)
curl -u "username:xxxx xxxx xxxx xxxx xxxx xxxx" \
     https://example.com/wp-json/wp/v2/posts

# PHPでREST APIを呼び出す
$response = wp_remote_get('https://example.com/wp-json/wp/v2/posts', [
    'headers' => [
        'Authorization' => 'Basic ' . base64_encode('username:app-password-here'),
    ],
]);

ステップ5:アプリケーションパスワード機能を無効化する

// functions.php — アプリケーションパスワード機能を完全に無効化
add_filter('wp_is_application_passwords_available', '__return_false');

// 特定ロールのみ許可(管理者のみ)
add_filter('wp_is_application_passwords_available_for_user', function($available, $user) {
    return user_can($user, 'manage_options');
}, 10, 2);

注意事項

  • アプリケーションパスワードはSSL(HTTPS)環境でのみ使用できます。HTTP環境では管理画面に表示されません
  • パスワードは作成時の1回しか表示されません。必ずコピーして安全な場所に保管してください
  • 不要になったアプリケーションパスワードは即座に削除してください

まとめ

アプリケーションパスワードはWordPress 5.6以降でREST API連携に最適な認証手段です。管理画面のプロフィールページから簡単に作成・削除でき、WP-CLIや WP_Application_Passwords クラスを使えばコードからも管理できます。

お気軽にご相談ください

お見積りへ お問い合わせへ