Desabilitar a autenticação básica em implantações do Serviço de Aplicativo

Este artigo mostra como desabilitar a autenticação básica (autenticação de nome de usuário e senha) ao implantar código em aplicativos do Serviço de Aplicativo.

O Serviço de Aplicativo fornece autenticação básica para que clientes FTP e WebDeploy se conectem a ele usando credenciais de implantação. Essas APIs são ótimas para navegar no sistema de arquivos do seu site, carregar drivers e utilitários e implantar com o MsBuild. No entanto, as empresas geralmente exigem métodos de implantação mais seguros do que a autenticação básica, como a autenticação Microsoft Entra ID (consulte Tipos de autenticação por métodos de implantação no Serviço de Aplicativo do Azure). O Microsoft Entra usa a autorização baseada em token OAuth 2.0 e tem muitos benefícios e melhorias que ajudam a mitigar os problemas na autenticação básica. Por exemplo, os tokens de acesso OAuth têm um tempo de vida útil limitado e são específicos para os aplicativos e recursos para os quais são emitidos, portanto, não podem ser reutilizados. O Microsoft Entra também permite implantar a partir de outros serviços do Azure usando identidades gerenciadas.

Desabilitar a autenticação básica

Estão disponíveis dois controles diferentes para autenticação básica. Especificamente:

  • Paraimplantação de FTP, a autenticação básica é controlada pelo sinalizador basicPublishingCredentialsPolicies/ftp (opção FTP Basic Auth Publishing Credentials no portal).
  • Para outros métodos de implantação que usam autenticação básica, como Visual Studio, Git local e GitHub, a autenticação básica é controlada pelo sinalizadorbasicPublishingCredentialsPolicies/scm (opção SCM Basic Auth Publishing Credentials no portal).
  1. No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.

  2. No menu à esquerda do aplicativo, selecione Configuração>Configurações gerais.

  3. Para Credenciais de publicação de autenticação básica SCM ou Credenciais de publicação de autenticação básica FTP, selecione Desligado e, em seguida, selecione Salvar.

    A screenshot showing how to disable basic authentication for Azure App Service in the Azure portal.

Para confirmar que o acesso FTP está bloqueado, tente conectar-se ao seu aplicativo usando FTP/S. Você deve receber uma mensagem 401 Unauthenticted.

Para confirmar se o acesso ao Git está bloqueado, tente implantação local do Git. Você deve receber uma mensagem Authentication failed.

Implantação sem autenticação básica

Ao desabilitar a autenticação básica, os métodos de implantação que dependem dela param de funcionar.

A tabela a seguir mostra como vários métodos de implantação se comportam quando a autenticação básica é desabilitada e se há algum mecanismo de fallback. Para obter mais informações, consulte Tipos de autenticação por métodos de implantação no Serviço de Aplicativo do Azure.

Método de implantação Quando a autenticação básica estiver desabilitada
Implantação do Visual Studio Não funciona.
FTP Não funciona.
Git Local Não funciona.
CLI do Azure Na CLI do Azure 2.48.1 ou superior, os seguintes comandos retornam à autenticação do Microsoft Entra:
- az webapp up
- az webapp deploy
- az webapp deployment source config-zip
- az webapp log deployment show
- az webapp log deployment list
- az webapp log download
- az webapp log tail
- az webapp browse
- az webapp create-remote-connection
- az webapp ssh
- az functionapp deploy
- az functionapp log deployment list
- az functionapp log deployment show
- az functionapp deployment source config-zip 
Plug-in do Maven ou plug-in do Gradle Funciona.
GitHub com o Serviço de Compilação do Serviço de Aplicativo Não funciona.
GitHub Actions – Um fluxo de trabalho existente do GitHub Actions que usa a autenticação básica não pode ser autenticado. No Centro de Implantação, desconecte a configuração existente do GitHub e crie uma nova configuração do GitHub Actions com a opção de identidade atribuída pelo usuário.
– Se a implantação existente do GitHub Actions estiver configurada manualmente, tente usar uma entidade de serviço ou o OpenID Connect.
– Para uma nova configuração do GitHub Actions no Centro de Implantação, use a opção de identidade atribuída pelo usuário.
Implantação no assistente de criação Quando a Autenticação básica é definida como Desabilitar e a implantação contínua definida como Habilitar, o GitHub Actions é configurado com a opção de identidade atribuída pelo usuário (OpenID Connect).
Azure Repos com o Serviço de Compilação do Serviço de Aplicativo Não funciona.
BitBucket Não funciona.
Azure Pipelines com tarefa AzureWebApp Funciona.
Azure Pipelines com tarefa AzureRmWebAppDeployment – Use a tarefa AzureRmWebAppDeployment mais recente para obter o comportamento de fallback.
– O tipo de conexão Publicar Perfil (PublishProfile) não funciona, pois usa autenticação básica. Altere o tipo de conexão para Azure Resource Manager (AzureRM).
– Em agentes que não são do Windows Pipelines, a autenticação funciona.
– Em agentes do Windows, o método de implantação usado pela tarefa, pode precisar ser modificado. Quando a Implantação da Web é usada (DeploymentType: 'webDeploy') e a autenticação básica é desabilitada, a tarefa é autenticada com um token do Microsoft Entra. Há requisitos adicionais se você não estiver usando o agente windows-latest ou se estiver usando um agente auto-hospedado. Para obter mais informações, consulte Não consigo fazer a Implantação da Web no meu Serviço de Aplicativo do Azure usando a autenticação do Microsoft Entra do meu agente do Windows.
– Outros métodos de implantação funcionam, como implantação zip ou execução do pacote.

Criar uma função personalizada sem permissões para autenticação básica

Para impedir que um usuário com privilégios mais baixos habilite a autenticação básica para qualquer aplicativo, você pode criar uma função personalizada e atribuir o usuário à função.

  1. No portal do Azure, no menu superior, pesquise e selecione a assinatura na qual você deseja criar a função personalizada.

  2. Na navegação à esquerda, selecione Controle de acesso (IAM)>Adicionar>Adicionar função personalizada.

  3. Defina a guia Básico como desejar e selecione Avançar.

  4. Na guia Permissões e selecione Excluir permissões.

  5. Localize e selecione Microsoft Web Apps e procure as seguintes operações:

    Operação Descrição
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Credenciais de publicação FTP para aplicativos do Serviço de Aplicativo.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Credenciais de publicação do SCM para aplicativos do Serviço de Aplicativo.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Credenciais de publicação FTP para slots do Serviço de Aplicativo.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Credenciais de publicação do SCM para slots do Serviço de Aplicativo.
  6. Em cada uma dessas operações, marque a caixa para Gravação e selecione Adicionar. Esta etapa adiciona a operação como NotActions para a função.

    A guia Permissões deve se parecer com a seguinte captura de tela:

    A screenshot showing the creation of a custom role with all basic authentication permissions excluded.

  7. Selecione Examinar + criare Criar.

  8. Agora você pode atribuir essa função aos usuários da sua organização.

Para obter mais informações, consulte Criar ou atualizar funções personalizadas do Azure usando o portal do Azure

Monitorar tentativas básicas de autenticação

Todos os logons bem-sucedidos e tentados são registrados no tipo de log AppServiceAuditLogs do Azure Monitor. Para auditar os logons tentados e bem-sucedidos no FTP e no WebDeploy, siga as etapas em Enviar logs para o Azure Monitor e habilite o envio do tipo de log AppServiceAuditLogs.

Para confirmar que os logs são enviados para o(s) serviço(s) selecionado(s), tente efetuar login via FTP ou WebDeploy. O exemplo a seguir mostra um log de Conta de Armazenamento.

{
  "time": "2023-10-16T17:42:32.9322528Z",
  "ResourceId": "/SUBSCRIPTIONS/EF90E930-9D7F-4A60-8A99-748E0EEA69DE/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.WEB/SITES/MY-DEMO-APP",
  "Category": "AppServiceAuditLogs",
  "OperationName": "Authorization",
  "Properties": {
    "User": "$my-demo-app",
    "UserDisplayName": "$my-demo-app",
    "UserAddress": "24.19.191.170",
    "Protocol": "FTP"
  }
}

O Azure Policy pode ajudá-lo a impor padrões organizacionais e avaliar a conformidade em escala. Você pode usar o Azure Policy para auditar quaisquer aplicativos que ainda usam autenticação básica e corrigir quaisquer recursos não compatíveis. A seguir estão as políticas internas para auditoria e correção de autenticação básica no Serviço de Aplicativo:

A seguir estão as políticas correspondentes para slots:

Perguntas frequentes

Por que recebo um aviso no Visual Studio informando que a autenticação básica está desabilitada?

O Visual Studio requer autenticação básica para implantar no Serviço de Aplicativo do Azure. O aviso lembra que a configuração em seu aplicativo foi alterada e você não pode mais implantá-la. Você desabilitou a autenticação básica no aplicativo por conta própria ou sua política de organização impõe que a autenticação básica esteja desabilitada para aplicativos do Serviço de Aplicativo.