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 clientes FTP e WebDeploy se conectarem 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 do 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.

Desativar a autenticação básica

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

  • Para implantaçã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 sinalizador basicPublishingCredentialsPolicies/scm (opção SCM Basic Auth Publishing Credentials no portal).
  1. No portal do Azure, procure e selecione Serviços de Aplicativo e, em seguida, selecione seu aplicativo.

  2. No menu esquerdo do aplicativo, selecione Configurações>gerais.

  3. Para Credenciais de Publicação de Autenticação Básica do SCM ou Credenciais de Publicação de Autenticação Básica de FTP, selecione Desativado e, em seguida, selecione Salvar.

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

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

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

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

Quando você desabilita a autenticação básica, os métodos de implantação que dependem da autenticação básica param de funcionar.

A tabela a seguir mostra como vários métodos de implantação se comportam quando a autenticação básica está 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 está desativada
Implementaçã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 para cima
- AZ WebApp Implantar
- az webapp deployment source config-zip
- AZ WebApp Log Deployment Show
- Lista de implantação do log do AZ WebApp
- az webapp log baixar
- cauda de log az webapp
- az webapp procurar
- az webapp create-remote-connection
- az webapp ssh
- AZ FunctionApp Implantar
- Lista de implantação de log do AZ FunctionApp
- AZ FunctionApp Log Deployment Show
- az functionapp deployment source config-zip 
Plugin Maven ou plugin Gradle Obras.
GitHub com Serviço de Criação do Serviço de Aplicativo Não funciona.
GitHub Actions - Um fluxo de trabalho existente do GitHub Actions que usa autenticação básica não pode autenticar. No Centro de Implantação, desconecte a configuração existente do GitHub e crie uma nova configuração de Ações do GitHub 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 OpenID Connect.
- Para a nova configuração de Ações do GitHub 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 Implantação contínua definida como Habilitar, as Ações do GitHub são configuradas com a opção de identidade atribuída pelo usuário (OpenID Connect).
Azure Repos com Serviço de Criação do Serviço de Aplicativo Não funciona.
BitBucket Não funciona.
Tarefa Azure Pipelines with AzureWebApp Obras.
Pipelines do Azure com a tarefa AzureRmWebAppDeployment - Use a tarefa AzureRmWebAppDeployment mais recente para obter o comportamento de fallback.
- O tipo de conexão Publish Profile (PublishProfile) não funciona, porque 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 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 windows-latest agente ou se estiver usando um agente auto-hospedado. Para obter mais informações, consulte Não consigo implantar a 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 zip deploy ou run from package.

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, procure e selecione a assinatura na qual você deseja criar a função personalizada.

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

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

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

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

    Operation Description
    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, selecione a caixa Gravar e, em seguida, 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 Rever + criar e, em seguida, selecione 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 de autenticação básica

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

Para confirmar que os logs são enviados para o(s) serviço(s) selecionado(s), tente fazer 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"
  }
}

A Política do Azure pode ajudá-lo a aplicar padrões organizacionais e a avaliar a conformidade em escala. Você pode usar a Política do Azure para auditar qualquer aplicativo que ainda use 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 da autenticação básica no Serviço de Aplicativo:

As políticas correspondentes para as faixas horárias são as seguintes:

Perguntas mais 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 do seu aplicativo foi alterada e você não pode mais implantá-lo. Você mesmo desabilitou a autenticação básica no aplicativo ou a política da sua organização impõe que a autenticação básica esteja desabilitada para aplicativos do Serviço de Aplicativo.