Nginx - Proxy reverso para IIS6 com auth

1

para fins de teste, eu configurei um proxy reverso nginx para um servidor IIS6, isso funciona bem.

Mas quando tento usar a "autenticação do Windows" no site do IIS6, a entrada de autenticação do navegador não aparece.

Após algumas leituras, encontrei o óbvio :) O nginx não suporta HTTP / 1.1 para o proxy reverso ainda!

Minha pergunta: alguém sabe uma "solução alternativa" para esse tipo de solicitação?

Obrigado

    
por Flip 07.09.2009 / 17:50

2 respostas

2

Eu tenho parcialmente este trabalho em um ambiente de teste aqui.

Plano de fundo

Temos o IIS6 servindo nosso CMS da intranet (o CMS é um plug-in ISAPI). Isso ocorre com a configuração do site no IIS para autenticação integrada do Windows (para personalização de segurança e de usuário).

Eu quero ativar a compactação gzip, mas devido a alguns dos recursos que ativamos em nosso CMS, não podemos fazer isso por meio das configurações de gzip do IIS (ele falha em todas as solicitações ao CMS, se o fizermos).

Atualmente, estou testando uma configuração com um proxy reverso nginx na frente do IIS fazendo o conteúdo gzipping.

O que funciona / o que não funciona?

A autenticação do IE6 / 7 através desta configuração ainda funciona bem, não tive que fazer alterações.

O Firefox, no entanto, precisava de uma mudança. Antes, sem o nginx, o Firefox tinha network.automatic-ntlm-auth.trusted-uris definido para permitir que nosso servidor de intranet executasse a autenticação NTLM transparente. Uma vez que o nginx fizesse parte do mix, você seria repetidamente mostrado a caixa de login do site e suas credenciais nunca seriam aceitas. No entanto, adicionar o servidor de intranet a network.negotiate-auth.trusted-uris corrigiu isso (para o Firefox no Windows, mas não no OS X). Parece que o método de autenticação pode ter mudado um pouco? Onde permitir a autenticação NTLM antes funcionou bem agora parece estar fazendo SPENGO?

Então a situação atual do nginx na frente do IIS6 me deixou:

Obras

  • IE6 no XP
  • IE7 no XP
  • FF3.5 no XP (depois de alterar about: config)

Não funciona (credenciais nunca aceitas)

  • FF3.5 no OS X
  • Safari 3 no OS X
  • Safari 4 no XP
  • Blackberry 8700 (Simulador)
  • Blackberry 9000 (simulador)

Adivinhe por que o meu (parcialmente) funciona e o seu não ... Possivelmente algo crucial para fazer proxy do handshake de autenticação que está na minha configuração, mas está faltando no seu? Como encaminhar o IP do cliente real? A seção relevante do servidor da minha configuração do nginx está abaixo se você quiser tentar.

server {
    listen 80;
    server_name testintralive;

    location / {
        proxy_pass http://localhost:81;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout 30;
        proxy_read_timeout 120;
    }
}
    
por 10.12.2009 / 11:38
0

A única maneira de fazer isso funcionar foi usar a autenticação básica e esperar que o igor concluísse a próxima versão. A próxima versão está programada para corrigir isso (espero)

    
por 27.09.2009 / 00:52