IIS 7: Desative a autenticação para determinados IPs de clientes

IIS 7: Desative a autenticação para determinados IPs de clientes

Eu tenho um diretório virtual protegido com autenticação básica. Gostaria de desabilitar a autenticação para determinados IPs, para que todas as solicitações de, por exemplo, 127.0.0.1 sejam permitidas sem solicitar credenciais. Como posso fazer isso?

Responder1

Não consegui encontrar uma maneira integrada de fazer isso acontecer. Acabei escrevendo um módulo IIS usandoas instruções da Microsoft.

O módulo verifica o endereço IP do cliente (usando HttpRequest.UserHostAddress) e, se não estiver na lista de isentos, reimplementa a autenticação básica padrão para contas do Windows (usando a LogonUserAPI e configurando HttpContext.Usercomo WindowsPrincipal). O domínio de autenticação e a lista de endereços IP isentos são lidos web.config(usando ConfigurationManager.AppSettings).

Obstáculos incluídos:

  • Eu queria isentar o próprio servidor, então adicionei 127.0.0.1o endereço IP do servidor à lista de isentos, mas também tive que adicionar ::1(IPv6 localhost).
  • Estou usando isso para proteger o acesso ao hgweb e, por algum motivo, tive que alterar as entradas na hgrclinha allow_pushde usernamepara DOMAIN\usernamedepois de ativar o plugin.

informação relacionada