Les Application Passwords sont des identifiants de 24 caractères introduits dans WordPress 5.6 (décembre 2020) qui permettent aux applications externes de s'authentifier sur la REST API et XML RPC de WordPress sans exposer le mot de passe principal de l'utilisateur. Chaque Application Password est liée à un seul utilisateur et à une application nommée, peut être révoquée individuellement depuis le profil utilisateur et est envoyée via HTTPS par HTTP Basic Authentication. Elles remplacent l'ancien pattern peu sûr consistant à stocker le mot de passe principal de WordPress dans des applications tierces et sont aujourd'hui la manière recommandée d'intégrer WordPress avec des apps mobiles, des scripts de déploiement, des frontends headless, des outils de sauvegarde et des agents IA.
Pourquoi WordPress a introduit les Application Passwords ?
Avant WordPress 5.6, toute intégration REST API ou XML RPC avec accès en écriture devait utiliser le mot de passe principal du compte (Basic Auth) ou s'appuyer sur des plugins tiers comme JWT Auth ou OAuth. Le mot de passe principal donnait un contrôle complet, y compris l'éditeur de thèmes et de plugins, et une fuite signifiait une prise totale du compte. Les Application Passwords résolvent ce problème via des identifiants par application, révocables instantanément sans changer le mot de passe utilisateur ni casser les autres intégrations.
Comment fonctionnent les Application Passwords ?
Un utilisateur connecté ouvre Utilisateurs » Profil, descend à la section "Mots de passe d'application", saisit un nom comme "App iPhone" ou "Script de sauvegarde" et clique Ajouter un nouveau mot de passe d'application. WordPress génère un token de 24 caractères affiché une seule fois au format xxxx xxxx xxxx xxxx xxxx xxxx. Le token est stocké haché dans wp_usermeta sous la clé _application_passwords et utilisé avec le login en HTTP Basic Auth :
curl -u utilisateur:xxxxxxxxxxxxxxxxxxxxxxxx \
https://example.com/wp-json/wp/v2/postsOu via JavaScript fetch :
const token = btoa('utilisateur:xxxxxxxxxxxxxxxxxxxxxxxx');
fetch('https://example.com/wp-json/wp/v2/posts', {
headers: { 'Authorization': 'Basic ' + token }
});Cas d'usage typiques
- Apps mobiles comme l'app officielle WordPress iOS et Android.
- Frontends headless Next.js, Astro, SvelteKit, Nuxt.
- Scripts CI/CD publiant des articles, mettant à jour des menus, purgeant le cache.
- Outils de sauvegarde et migration comme UpdraftPlus Remote, ManageWP, MainWP.
- Workflows de contenu IA avec Zapier, Make, n8n ou un agent GPT.
- Synchro WooCommerce avec un ERP ou un PIM.
Créer une Application Password étape par étape
- Se connecter avec l'utilisateur cible. Créer un utilisateur dédié avec le rôle minimum si possible.
- Aller à
Utilisateurs » ProfilouUtilisateurs » Tous » Modifier. - Descendre à Mots de passe d'application.
- Saisir un nom parlant, ex.
Zapier ProductionouServeur backup eu01. - Cliquer Ajouter un nouveau mot de passe d'application.
- Copier immédiatement le token de 24 caractères.
- Le coller dans l'application externe avec le nom d'utilisateur WordPress.
Révoquer et auditer les Application Passwords
Sur le même écran, chaque Application Password indique la date de création et la dernière utilisation. Révoquer invalide un token précis, Révoquer tous les mots de passe d'application les invalide tous. Effet immédiat. Vérifier trimestriellement la date "Dernière utilisation".
Les Application Passwords sont elles sécurisées ?
Oui, sur HTTPS. Chaque token a environ 144 bits d'entropie, est stocké haché avec phpass et ne circule que dans l'en tête Authorization. Points d'attention :
- HTTPS obligatoire. WordPress refuse les Application Passwords sur HTTP en clair par défaut.
- Pas de scopes ni d'expiration. Le token hérite des droits de l'utilisateur.
- Désactivées par certains plugins de hardening (iThemes/Solid Security).
Différence avec OAuth, JWT ou API Keys
| Méthode | Intégré à WordPress | Révocable par app | Scopes | Expiration |
|---|---|---|---|---|
| Mot de passe principal (Basic Auth) | Oui | Non | Total | Non |
| Application Password | Oui (5.6+) | Oui | Hérite du rôle | Non |
| JWT Auth (plugin) | Non | Expiration seulement | Hérite du rôle | Oui |
| OAuth 2.0 (plugin) | Non | Oui | Oui | Oui (refresh) |
| WooCommerce REST API Keys | WooCommerce | Oui | Lecture/Écriture | Non |
Désactiver entièrement les Application Passwords
add_filter( 'wp_is_application_passwords_available', '__return_false' );Ou par utilisateur :
add_filter( 'wp_is_application_passwords_available_for_user', function ( $available, $user ) {
if ( user_can( $user, 'manage_options' ) ) {
return false;
}
return $available;
}, 10, 2 );Ce que vérifie InspectWP
InspectWP signale la disponibilité de la REST API WordPress et marque l'endpoint /wp-json/wp/v2/users s'il expose des données utilisateurs sans authentification. Les Application Passwords elles mêmes n'apparaissent pas dans le HTML.