Configurar a autenticação básica no serviço de aplicativos do Azure

Configurar a autenticação básica no serviço de aplicativos do Azure

Por diferentes motivos, estou usando Azure's App Servicepara servir arquivos estáticos. Gostaria de garantir esse acesso, Http Basic Authenticationo que é suficiente para meus propósitos. Como eu posso fazer isso? Tentei fazer o upload .htpasswd, mas parece que não funciona.

Não estou usando ASP.NET, então não há como fazer isso em código. No portal do Azure, vejo opções como login do Google, Facebook, Twitter em Serviço de aplicativo -> Autenticação/Autorização, mas é uma sobrecarga enorme para mim.

Responder1

Atualmente, não é possível. O webapp do Azure não dá suporte a isso.

Você poderia verificar issoopinião.

Responder2

É possível habilitar a autenticação básica para aplicativos Web do Azure com algumas configurações noaplicativoHost.xdt. Você pode carregar alguns módulos neste arquivo no início do seu aplicativo Web.

Passos:

  • Navegue até seu WebApp no ​​Portal do Azure
  • No menu esquerdo, procure o cabeçalhoFerramentas de desenvolvimentouma seleçãoFerramentas avançadas(Kudu)
  • Use oConsole de depuração > CMDferramenta, para navegar até o diretório WebApp:\página principal
  • Crie um arquivo chamado:aplicativoHost.xdt
  • Cole a seguinte:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location path="%XDT_SITENAME%" xdt:Locator="Match(path)">
    <system.webServer>
      <rewrite xdt:Transform="InsertIfMissing">
        <allowedServerVariables xdt:Transform="InsertIfMissing">
          <add name="RESPONSE_WWW_AUTHENTICATE" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
        </allowedServerVariables>
        <rules xdt:Transform="InsertIfMissing">
          <rule name="BasicAuthentication" stopProcessing="true" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)">
            <match url=".*" />
            <conditions>
              <add input="{HTTP_AUTHORIZATION}" pattern="^Basic dXNlcjpwYXNzd29yZA==" ignoreCase="false" negate="true" />
            </conditions>
            <action type="CustomResponse" statusCode="401" statusReason="Unauthorized" statusDescription="Unauthorized" />
            <serverVariables>
              <set name="RESPONSE_WWW_AUTHENTICATE" value="Basic realm=Project" />
            </serverVariables>
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
  </location>
</configuration>
  • Altere a autenticação básica ao seu gosto (o padrão no exemplo é: usuário: senha)
  • Certifique-se de que as regras de reescrita do web.config não contenham, <clear />pois isso removerá os efeitos do arquivo applicationHost.xdt
  • Salve o arquivo e pare e inicie seu WebApp (um simplesReiniciarvainãosatisfazer)

Notas:

  • Não tenho certeza se isso funciona em WebApps baseados em Linux.
  • Você pode adicionar esta etapa aos pipelines de implantação usando FTP
  • Atualizar:Notei problemas com applicationHost.xdt ao usá-lo em slots secundários de aplicativos da Web. Apenas o slot principal parece funcionar.

Responder3

Atualmente, a Autenticação Básica não tem suporte nos Aplicativos Web do Azure por meio do Portal do Azure.

No entanto, o DevBridge fornece um módulo que permite que a autenticação básica seja habilitada.

https://www.alexlindgren.com/posts/password-protect-azure-website-with-basic-authentication/

https://www.alexlindgren.com/posts/password-protecting-azure-websites-revisited/

https://www.devbridge.com/articles/basic-authentication-for-windows-azure-websites/

Código fonte https://github.com/devbridge/AzurePowerTools/tree/master/Devbridge.BasicAuthentication

informação relacionada