Autenticação do SVN Active Directory com redirecionamento ProxyPass no mix

2

Temos uma pilha BitNami SVN em execução em uma máquina Windows que armazena nosso repositório SVN. Está configurado para autenticar em nosso servidor AD e usa o authz para controlar os direitos.

Precisamos poder acessá-lo por meio de um navegador da web a partir do link . O nome de domínio aponta para um ambiente linux que estamos descomissionando, mas, até que o façamos, outros sistemas nessa caixa nos impedem de apenas apontar novamente o registro de domínio.

Atualmente, temos um registro ProxyPass na máquina linux para encaminhar solicitações para link name] / svn - parece funcionar bem, e a máquina endpoint pede credenciais, então autentica: mas quando isso acontece, a tentativa de acesso é registrada como proveniente da caixa linux, ao invés do usuário que autenticou.

É quase como se algum elemento das credenciais não estivesse sendo passado para a máquina do terminal.

Alguém já fez isso antes, ou há outras informações que eu possa dar para tentar entender esse problema e descobrir uma maneira de resolvê-lo?

Obrigado!

Tentarei explicar de forma diferente -

Nome do domínio = > A: Servidor Apache (linux) == ProxyPass == > B: Servidor Apache / SVN (windows)

O httpd.conf da caixa do Windows SVN está aqui: link

Aqui está o conf apache na caixa linux que está encaminhando pedidos para [domain] / svn para a caixa 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>

Se você acessar a caixa SVN diretamente, o log de acesso mostrará:

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

Se você acessá-lo através do nome de domínio (e, portanto, o encaminhamento), você terá:

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

Em ambos os casos, você deve autenticar usando nome de usuário & senha antes de acessar o site, no entanto, o último caso, as credenciais parecem estar sendo alteradas eo usuário SVN aparente é alguém com privilégios elevados. E nós não queremos isso.

    
por Jason B. Standing 10.12.2012 / 17:05

2 respostas

0

Não estou claro sobre o que você acredita ser a questão aqui, ou melhor, o que você gostaria que acontecesse de forma diferente do que você descreveu.

Se você deseja que o endereço IP do cliente SVN original seja registrado, e não o servidor proxy, eu encontrei a seguinte possibilidade em uma pesquisa no 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

Basicamente, o que aconteceria aqui é que, se o cabeçalho HTTP X-Forwarded-For for definido (para um endereço IP, o que seria se ele já tivesse sido definido), use esse endereço IP no log. .

    
por 10.12.2012 / 18:16
0

Seja bom para obter uma captura de rede (por exemplo, Wireshark) de uma solicitação autenticada do servidor do Windows e do servidor linux. Wireshark para windows, tcpdump para linux.

Parece que <Location '/svn'> está usando Basic authn, portanto, o nome de usuário deve estar no cabeçalho Authorization (consulte link ) e deve ser repassado às cegas pelo front-end linux ProxyPass .

O que há no ssi.conf?

    
por 13.12.2012 / 05:23