2026年11月12日

2026年11月12日

Mots de passe d’application WordPress : créer, révoquer, API REST

Cet article est une édition localisée de l'original japonais. Lire l'original en japonais

Les mots de passe d'application, ajoutés dans WordPress 5.6, sont des mots de passe dédiés que l'on remet à l'API REST ou à des outils externes. Vous n'avez pas à communiquer votre véritable mot de passe de connexion : vous en créez un par outil et ne révoquez que ceux qui deviennent inutiles. Cet article décrit les conditions d'utilisation, la création et la suppression (administration, WP-CLI, PHP), l'utilisation avec l'API REST et les points à vérifier quand cela ne marche pas. Son contenu a été vérifié en novembre 2026 dans la documentation pour développeurs de WordPress et dans son code source.

Ce que les mots de passe d’application permettent et ne permettent pas

  • Ils servent à l'authentification de l'API REST et de XML-RPC. Avec l'API REST, le nom d'utilisateur et le mot de passe d'application sont envoyés par authentification Basic.
  • Ils ne peuvent pas servir à se connecter à l'administration (wp-login.php). Ils ne sont pas faits pour qu'une personne se connecte, mais pour des programmes et des outils.
  • Les droits sont ceux de l'utilisateur qui les a créés. Si un administrateur en crée un, l'outil qui possède ce mot de passe peut effectuer les mêmes opérations qu'un administrateur. Si vous voulez ne confier que la publication d'articles, créez un utilisateur auteur ou éditeur et créez le mot de passe avec cet utilisateur.
  • On peut les révoquer un par un. La date de dernière utilisation et l'adresse IP sont aussi enregistrées.

Conditions d’utilisation

Par défaut, les mots de passe d'application ne sont utilisables que sur un site en HTTPS ou sur un site dont le type d'environnement est local. La vérification de WordPress est la suivante (wp_is_application_passwords_supported()).

return is_ssl() || 'local' === wp_get_environment_type();

Sur un site resté en HTTP, la section n'apparaît pas dans l'écran du profil, car le mot de passe serait envoyé par une communication non chiffrée.

Les créer dans l’administration

  1. Ouvrez « Utilisateurs → Profil » (Users → Profile) (pour un autre utilisateur, modifiez l'utilisateur concerné depuis « Utilisateurs → Tous les utilisateurs »).
  2. Dans la section « Mots de passe d'application » en bas de page, saisissez dans « Nom du nouveau mot de passe d'application » un nom qui indique l'usage (exemple : script de publication, Zapier).
  3. Cliquez sur « Ajouter un mot de passe d'application » (selon la version, le bouton peut s'intituler « Ajouter un nouveau mot de passe d'application »).
  4. Notez le mot de passe de 24 caractères affiché. Il ne sera plus jamais affiché une fois que vous aurez quitté cet écran.

Le mot de passe s'affiche avec une espace tous les 4 caractères, comme abcd EFGH 1234 ijkl MNOP 6789, mais l'authentification fonctionne avec ou sans les espaces.

Pour en révoquer un, cliquez sur le bouton de révocation de la ligne concernée dans la liste de la même section. Vous pouvez aussi tout révoquer d'un coup avec « Révoquer tous les mots de passe d'application ».

Créer, consulter et supprimer avec WP-CLI

# Créer (--porcelain pour n'afficher que le mot de passe)
wp user application-password create admin "script de publication" --porcelain

# Afficher la liste (l'uuid sert à la suppression)
wp user application-password list admin --fields=uuid,name,created,last_used,last_ip

# En supprimer un
wp user application-password delete admin 6633824d-c1d7-4f79-9dd5-4586f734d69e

# Supprimer tous ceux de cet utilisateur
wp user application-password delete admin --all

La partie admin peut être indiquée par le nom d'utilisateur, l'adresse e-mail ou l'ID de l'utilisateur. Remplacez l'uuid par la valeur affichée dans le résultat de list.

Créer, consulter et supprimer avec PHP

Pour les manipuler depuis une extension, par exemple, utilisez la classe WP_Application_Passwords.

<?php
$user_id = 2; // ID de l'utilisateur concerné

// Créer. En cas de succès, renvoie un tableau [mot de passe en clair, informations enregistrées]
$result = WP_Application_Passwords::create_new_application_password(
	$user_id,
	array( 'name' => 'script de publication' )
);

if ( is_wp_error( $result ) ) {
	error_log( $result->get_error_message() );
} else {
	list( $password, $item ) = $result;
	// $password est en clair. Il n'est récupérable qu'à ce moment : le transmettre à l'utilisateur de façon sûre
	error_log( 'created: ' . $item['uuid'] );
}

// Récupérer la liste (name, uuid, created, last_used, last_ip, etc.)
foreach ( WP_Application_Passwords::get_user_application_passwords( $user_id ) as $item ) {
	error_log( $item['name'] . ' ' . $item['uuid'] );
}

// En supprimer un
// WP_Application_Passwords::delete_application_password( $user_id, $uuid );

Seule la valeur hachée est enregistrée, et le mot de passe en clair ne peut être récupéré qu'au moment de sa création.

Utilisation avec l’API REST

Avec curl, ajoutez l'authentification Basic avec -u nom_utilisateur:mot_de_passe_d_application. Vérifiez d'abord que vos propres informations sont renvoyées en tant qu'utilisateur authentifié.

# Vérifier que l'authentification fonctionne (succès si vos informations d'utilisateur sont renvoyées)
curl -u "admin:abcd EFGH 1234 ijkl MNOP 6789" https://example.com/wp-json/wp/v2/users/me

# Créer un article en brouillon
curl -u "admin:abcd EFGH 1234 ijkl MNOP 6789" \
  -X POST https://example.com/wp-json/wp/v2/posts \
  -H "Content-Type: application/json" \
  -d '{"title":"Article de test","content":"Contenu","status":"draft"}'

Pour appeler depuis PHP l'API REST d'un autre site WordPress, construisez vous-même l'en-tête Authorization.

<?php
$response = wp_remote_get(
	'https://example.com/wp-json/wp/v2/users/me',
	array(
		'headers' => array(
			'Authorization' => 'Basic ' . base64_encode( 'admin:abcd EFGH 1234 ijkl MNOP 6789' ),
		),
	)
);

if ( ! is_wp_error( $response ) ) {
	error_log( wp_remote_retrieve_response_code( $response ) );
}

Le mot de passe de l'exemple est un modèle. N'écrivez pas le vrai mot de passe directement dans le code : placez-le dans un endroit non public, comme une variable d'environnement ou un fichier de configuration.

Points à vérifier quand l’authentification échoue

Symptôme À vérifier
La section « Mots de passe d'application » n'apparaît pas dans le profil Le site est-il en HTTPS ? La fonction n'a-t-elle pas été désactivée par un filtre ou une extension ?
/wp/v2/users/me renvoie 401 Le nom d'utilisateur est-il correct (identifiant de connexion et non nom affiché) ? Le mot de passe n'a-t-il pas été révoqué ?
Vous êtes traité comme non connecté alors que tout semble correct Le serveur ne transmet peut-être pas l'en-tête Authorization à PHP. Avec Apache, vérifiez que la ligne RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] du .htaccess de WordPress est toujours présente
Seules certaines URL échouent Une extension de sécurité ou un WAF ne restreint-il pas l'API REST ?

Les erreurs de l'API REST en général sont expliquées dans « Corriger les erreurs de l'API REST ».

Désactiver les mots de passe d’application

Sur un site où vous ne les utilisez pas, vous pouvez désactiver la fonctionnalité entière. Écrivez le code dans le functions.php du thème ou dans une extension de votre cru.

<?php
// Désactiver pour tout le site
add_filter( 'wp_is_application_passwords_available', '__return_false' );

Pour ne les autoriser qu'à certains utilisateurs, utilisez le filtre propre à chaque utilisateur. L'exemple suivant ne les autorise qu'aux utilisateurs ayant le droit d'administrateur (manage_options).

<?php
add_filter( 'wp_is_application_passwords_available_for_user', function ( $available, $user ) {
	return $available && user_can( $user, 'manage_options' );
}, 10, 2 );

Pour la façon de restreindre l'accès à l'API REST elle-même, consultez « Comment restreindre l'accès à l'API REST ».

Précautions d’exploitation

  • Créez un mot de passe distinct par outil et donnez-lui un nom qui indique son usage. En cas de fuite, vous ne révoquez que celui de cet outil.
  • Révoquez tout de suite ceux des outils que vous n'utilisez plus. Dans la liste, ceux dont la date de dernière utilisation est ancienne sont peut-être inutilisés.
  • Demandez-vous s'il est nécessaire de communiquer le mot de passe d'un administrateur à un service externe, et créez-les avec un utilisateur qui n'a que les droits nécessaires.

Une question sur WordPress ? L'éditeur de ce site est basé au Japon et répond en japonais. Contact (en japonais)

お気軽にご相談ください

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