O App Service é mais um dos excelentes PaaS (Plataforma como serviço) que fazem parte do conjunto de soluções do Azure. Apesar da enorme flexibilidade, algumas configurações não estão disponíveis no portal, mas o que está por trás do backend suportando sua aplicação nada mais é do que o bom e velho IIS. Sendo assim, praticamente todas as configurações que podemos fazer pelo gerenciador do IIS, é possível fazer na plataforma do Azure também, porém, via web.config.

Uma das possibilidades é justamente o de ativar um white/blacklist de endereços ip para acesso a aplicação e isso pode ser feito utilizando a sessão <security> no XML de configuração do web site.

Por exemplo, se eu quiser permitir que apenas os ips  8.8.8.8 e 8.8.4.4 acessem minha aplicação, os seguintes atributos podem ser adicionados ao config:

<security>

<ipSecurity allowUnlisted="false">
 <add ipAddress="8.8.8.8" allowed="true" />
 <add ipAddress="8.8.4.4" allowed="true" />
</ipSecurity>

</security>

O parâmetro allowUnlisted = “false” bloqueia qualquer IP que não esteja na lista e o elemento add insere as exceções. O mesmo poderia ser feito caso eu quisesse bloquear IPs específicos ao invés de permitir bastando apenas inverter o processo setando o parâmetro allowUnlisted como “True” e adicionando os IPs indesejáveis.

Aproveitando este tópico, gostaria de compartilhar uma outra forma de alterar essas configurações sem necessariamente mexer no web.config diretamente. Geralmente utilizamos o IIS Management console, mas como ele somente gerencia a instância onde está rodando, não conseguimos utiliza-lo para o Azure ou qualquer host remoto. Felizmente existe um add-0n para resolver este problema e o download pode ser feito aqui.

Como se trata de uma extensão, é necessário instalar o Management Console através do Windows Feature (ou Server Features se estiver utilizando o Windows Server).

iis-management-console

Para se conectar ao site no Azure App Service, precisaremos de algumas informações como Url, Login, Senha e Nome do site. Para isso, basta baixar o Publish Profile através do portal. Neste arquivo temos todas as informações que precisamos.

get-publish-profile

Agora abra o IIS Management Console e adicione um novo site. Clique em File >> Connect to a Site. Em Server Name, coloque o conteúdo da variável publishUrl e em Site Name, coloque o conteúdo do msdeploysite.

connection-details

Faça o mesmo para o User name e Password representados no arquivo como userName e userPWD.

connection-details-2

Pronto! Agora e só editar as configurações diretamente pela interface do Management Console. Mais prático, certo? :)

management-console

Referências:

  1. Web.Config Configuration Settings
  2. Configure web apps in Azure App Service
  3. IIS Manager for Remote Administration 1.2