407 Proxy Authentication Required
Utilisation
Lorsqu’une erreur 407 Proxy Authentication Required arrive, le client comprend que des identifiants de connexion valides sont nécessaires avant d’accéder à la ressource demandée à travers le proxy. Cette situation est semblable à la réponse 401 Unauthorized, et le client utilise les mêmes protocoles d’authentification.
L’en-tête Proxy-Authenticate est renvoyé par le serveur pour indiquer les méthodes autorisées.
Impact SEO
Les moteurs de recherche comme Google n’indexent pas une URL qui renvoie un statut 407 Proxy Authentication Required. Les URL précédemment indexées qui renvoient ce code de statut sont retirées des résultats de recherche.
Exemple
Le client demande une ressource et le serveur répond 407 Proxy Authentication Required pour indiquer que la ressource est protégée derrière un proxy. Le serveur signale la prise en charge de l’autorisation basic. Le client répond avec un couple nom d’utilisateur:mot de passe selon le protocole d’authentification basic, précisé dans l’en-tête Proxy-Authorization. Le serveur transmet alors la ressource demandée.
Requête initiale
GET /documents/tech-news HTTP/1.1
Host: example.com
Réponse initiale
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="Documents"
Requête suivante
GET /documents/tech-news HTTP/1.1
Host: example.com
Proxy-Authorization: Basic RXhhbXBsZTphaQ==
Réponse finale
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 25000
<PDF document included in message body>
Comment corriger
Un 407 Proxy Authentication Required signifie que le serveur proxy exige des identifiants valides avant de relayer la requête.
Examinez l’en-tête Proxy-Authenticate dans la réponse. Cet en-tête précise le schéma d’authentification requis (Basic, Digest, NTLM, Negotiate). Alignez la configuration du client sur la méthode attendue. Inspectez l’en-tête avec les DevTools du navigateur ou avec curl -v à travers le proxy.
Configurez les identifiants de proxy dans le client. Renseignez le nom d’utilisateur et le mot de passe du proxy dans les paramètres de proxy du navigateur, dans la configuration de l’application ou dans des variables d’environnement. Pour les outils en ligne de commande, intégrez les identifiants dans l’URL du proxy :
export HTTP_PROXY=http://user:pass@proxy:8080
export HTTPS_PROXY=http://user:pass@proxy:8080
Incluez les identifiants dans l’en-tête Proxy-Authorization pour les clients HTTP programmatiques.
Vérifiez le nom d’utilisateur et le mot de passe du proxy. Un couple d’identifiants incorrect ou expiré déclenche cette erreur. Confirmez les valeurs auprès de l’administrateur réseau. Les proxys NTLM et Kerberos exigent des identifiants joints au domaine. Vérifiez que le préfixe de domaine (par exemple DOMAIN\username) est bien inclus.
Recherchez une interception par proxy transparent. Certains réseaux d’entreprise acheminent tout le trafic via un proxy transparent sans configuration explicite du client. Une connexion VPN ou un changement de politique réseau introduit une authentification de proxy là où il n’y en avait pas auparavant. Vérifiez les paramètres de proxy du système (Windows : Internet Options, macOS : System Settings > Network > Proxies, Linux : /etc/environment ou paramètres de proxy du bureau).
Videz les identifiants de proxy mis en cache. Les navigateurs et les systèmes d’exploitation mettent en cache les jetons d’authentification de proxy. Des identifiants obsolètes en cache provoquent des réponses 407 répétées après un changement de mot de passe. Videz le cache d’identifiants (Credential Manager sous Windows, Keychain Access sous macOS).
Vérifiez que le proxy autorise le domaine cible. Certains serveurs proxy restreignent l’accès à des domaines ou catégories d’URL approuvés. Le proxy renvoie 407 pour forcer une nouvelle authentification, même lorsque les identifiants sont valides, si la destination est bloquée par la politique en vigueur. Vérifiez la liste d’autorisation du proxy avec l’administrateur réseau.
Contactez l’administrateur réseau pour obtenir l’accès au proxy. Les proxys d’entreprise ou d’établissement exigent la création d’un compte. Demandez des identifiants d’accès, confirmez l’adresse et le port du proxy, et vérifiez le schéma d’authentification utilisé.
Références de code
.NET
HttpStatusCode.ProxyAuthenticationRequired
Rust
http::StatusCode::PROXY_AUTHENTICATION_REQUIRED
Rails
:proxy_authentication_required
Go
http.StatusProxyAuthRequired
Symfony
Response::HTTP_PROXY_AUTHENTICATION_REQUIRED
Python3.5+
http.HTTPStatus.PROXY_AUTHENTICATION_REQUIRED
Java
java.net.HttpURLConnection.HTTP_PROXY_AUTH
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED
Angular
@angular/common/http/HttpStatusCode.ProxyAuthenticationRequired