Básicamente, mi caso es que tengo un sitio web interno que requiere un nombre de usuario y contraseña únicos para acceder (y esto no puede apagado, solo cambiado). Estoy exponiendo este sitio web a través de un proxy inverso por varias razones (ocultar el puerto, simplificar la URL, simplificar NAT, etc.).Apache2 Reverse Proxy a un punto final que requiere BasicAuth pero quiere ocultarlo del usuario
Sin embargo, lo que me gustaría hacer es ser capaz de utilizar Apache para manejar la autenticación de forma que:
- no tengo para dar a conocer
sola contraseña para todos -
puedo tener múltiples nombres de usuario y contraseñas usando BasicAuth -
de Apache para los usuarios internos, no tiene que pedir una contraseña
EDIT: Segunda parte acerca de la autenticación más rico se ha trasladado a new question
Aquí hay más o menos lo que tengo ahora:
<VirtualHost *:80>
ServerName sub.domain.com
ProxyPass /http://192.168.1.253:8080/endpoint
ProxyPassReverse/http://192.168.1.253:8080/endpoint
# The endpoint has a mandatory password that I want to avoid requiring users to type
# I.e. something like this would be nice (but does not work)
# ProxyPass /http://username:[email protected]:8080/endpoint
# ProxyPassReverse/http://username:[email protected]:8080/endpoint
# Also need to be able to require a password to access proxy for people outside local subnet
# However these passwords will be controlled by Apache using BasicAuth, not the ProxyPass endpoint
# Ideas?
</VirtualHost>
Esto parece prometedor, pero no quiero pedir la contraseña MASTER si no son solicitudes locales, quiero que apache mantenga una lista básica de autenticación Auth y permita a los usuarios autenticar con una de varias contraseñas diferentes que el endpoint nunca ver. Esto no hace eso afaik verdad? –
Simplemente use la primera variante (incondicional, es decir, sin SetEnvIf y 'localrequest'), es decir, 'RequestHeader set Authorization' Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ == ''.El proxy inverso siempre se autenticará con la contraseña maestra, y los usuarios siempre usarán las otras contraseñas para conectarse al RP. – vladr
Intenté su sugerencia original utilizando SetEnvIf y tratando de hacer funcionar BasicAuth y no tuve éxito de ninguna manera. Puedo deshabilitar la contraseña a través del proxy por completo, pero no de forma condicional según el tipo de solicitud. –