Comment puis-je configurer une directive nginx proxy_pass incluant également les informations d'authentification HTTP Basic envoyées à l'hôte proxy?
Voici un exemple de l'URL pour laquelle je dois utiliser un proxy:
http://username:[email protected]/export?uuid=1234567890
L'objectif final est d'autoriser un serveur à présenter les fichiers d'un autre serveur (celui auquel nous faisons office de mandataire) sans exposer l'URI du serveur proxy. J'ai ce travail 90% correct maintenant de suivre la config Nginx trouvé ici:
http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/
J'ai juste besoin d'ajouter l'authentification HTTP Basic pour envoyer au serveur proxy
Réponses:
J'ai rédigé un article à ce sujet il y a un moment. Voir les détails ici:
http://shairosenfeld.blogspot.com/2011/03/authorization-header-in-nginx-for.html
Par exemple:
"a2luZzppc25ha2Vk" est "roi: isnaked" codé en base64, donc cela fonctionnerait pour
http: // king: [email protected]
N'hésitez pas à consulter le blog pour plus de détails.
la source
Cela fonctionnait avec la réponse d'alvosu mais je devais entrer le mot "Basic" dans la citation de la chaîne base64 pour qu'il ressemble à ceci:
la source
Définissez l'autorisation proxy_set_header "USER_AND_PASS", où USER_AND_PASS = base64 (utilisateur: pass)
la source
Basic
.Supprimez l'en-tête d'autorisation transmis par nginx avec
proxy_set_header Authorization "";
.J'ai configuré nginx pour qu'il effectue l'authentification de base, mais l'en-
Authorization
tête était transmis dans laproxy_pass
directive et le destinataire ne pouvait pas gérer le jeton.(Spécifique à mon cas, cette erreur a été renvoyée
Reason: No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
)la source