SVN authentication de Active Directory con redirect ProxyPass en la mezcla

Tenemos una stack de BitNami SVN que funciona en una máquina de Windows que contiene nuestro repository de SVN. Está configurado para autenticarse en nuestro server AD y utiliza authz para controlar los derechos.

Tenemos que poder acceder a él a través de un browser web desde http: // [domain] / svn . El nombre de dominio apunta a un entorno Linux que estamos desmantelando, pero hasta que lo hagamos, otros sistemas en ese cuadro nos impiden volver a apuntar el logging de dominio.

En la actualidad, tenemos un logging ProxyPass en la máquina linux para enviar las requestes a http: // [ nombre de la máquina ] / svn – parece que funciona bien y la máquina de punto final pide cnetworkingenciales y luego se autentica: pero cuando eso sucede , el bash de acceso se registra como proveniente del cuadro de linux, en lugar de desde el usuario que ha autenticado.

Es casi como si algún elemento de las cnetworkingenciales no estuviera pasando a través de la máquina de punto final.

¿Alguien ha hecho esto antes, o hay otra información que puedo dar para tratar de dar sentido a este problema, y ​​averiguar una manera de resolverlo?

¡Gracias!

Tratará de explicar de manera diferente –

Nombre de dominio => A: Servidor Apache (linux) == ProxyPass ==> B: Servidor Apache / SVN (windows)

El file httpd.conf del cuadro SVN de Windows está aquí: http://pastebin.com/Pd5zrnyQ

Aquí está el apache conf en el cuadro linux que está reenviando las requestes a [domain] / svn a la caja SVN:

# Proxy requests to SVN over to Windows SVN server ProxyPass /svn http://10.2.1.142/svn <Location /svn> ProxyPassReverse http://10.2.1.142/svn </Location> 

Si accede a la casilla SVN directamente, el logging de acceso muestra:

 10.2.2.89 - jason.standing [10/Dec/2012:19:04:36 +0000] "GET /svn/ HTTP/1.1" 200 361 10.2.2.89 - jason.standing [10/Dec/2012:19:04:38 +0000] "GET /svn/ HTTP/1.1" 200 361 10.2.2.89 - - [10/Dec/2012:19:04:52 +0000] "GET /svn HTTP/1.1" 401 401 10.2.2.89 - afaef [10/Dec/2012:19:04:54 +0000] "GET /svn HTTP/1.1" 401 401 10.2.2.89 - jason.standing [10/Dec/2012:19:05:02 +0000] "GET /svn HTTP/1.1" 301 225 10.2.2.89 - jason.standing [10/Dec/2012:19:05:03 +0000] "GET /svn/ HTTP/1.1" 200 361 

Si accede a ella a través del nombre de dominio (y por lo tanto el reenvío), obtendrá:

 10.2.1.252 - ukdevservice [10/Dec/2012:19:04:32 +0000] "OPTIONS /svn/Product/_Installers HTTP/1.1" 200 183 10.2.1.252 - ukdevservice [10/Dec/2012:19:04:32 +0000] "PROPFIND /svn/Product/_Installers HTTP/1.1" 207 704 10.2.1.252 - ukdevservice [10/Dec/2012:19:04:32 +0000] "PROPFIND /svn/Product/_Installers HTTP/1.1" 207 704 10.2.1.252 - ukdevservice [10/Dec/2012:19:04:32 +0000] "PROPFIND /svn/!svn/vcc/default HTTP/1.1" 207 392 10.2.1.252 - ukdevservice [10/Dec/2012:19:04:32 +0000] "PROPFIND /svn/!svn/bln/10024 HTTP/1.1" 207 451 10.2.1.252 - ukdevservice [10/Dec/2012:19:04:32 +0000] "REPORT /svn/!svn/vcc/default HTTP/1.1" 200 256 

En ambos casos se debe autenticar usando nombre de usuario y contraseña antes de acceder al sitio, sin embargo, en este último caso, las cnetworkingenciales parecen estar cambiando y el aparente usuario SVN es alguien con privilegios elevados. Y no queremos eso.

No estoy claro sobre lo que usted cree que es el tema aquí, o mejor dicho, lo que usted querría que suceda de manera diferente a lo que usted describe.

Si desea que se registre la dirección IP del cliente SVN original y no el server proxy, encontré la siguiente posibilidad en una búsqueda de Google:

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded CustomLog "logs/access_log" combined env=!forwarded CustomLog "logs/access_log" proxy env=forwarded 

Básicamente lo que sucedería aquí es que si el encabezado HTTP X-Forwarded-For está configurado (a una dirección IP, que sería si alguna vez se estableció), a continuación, utilizar esa dirección IP en el logging, en lugar de la pnetworkingeterminada.

Sea bueno para get una captura de networking (por ejemplo, Wireshark) de una request autenticada desde el server de Windows y el server Linux. Wireshark para windows, tcpdump para linux.

Parece que <Location '/svn'> está usando Authn Basic para que el nombre de usuario debe estar en el encabezado de Authorization (ver http://en.wikipedia.org/wiki/Basic_access_authentication ) y debe ser ciegamente pasado por el linux front-end ProxyPass .

¿Qué hay en ssi.conf?