Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Muitas aplicações têm mais do que um único componente. Por exemplo, pode ter um frontend que é acessível publicamente e liga-se a uma API de backend ou a uma aplicação web. Os recursos do backend podem ligar-se a uma base de dados, conta de armazenamento, cofre de chaves, outra máquina virtual ou uma combinação destes recursos. Esta arquitetura é a base de uma aplicação de nível N. É importante que aplicações como esta sejam concebidas para proteger os recursos de backend ao máximo.
Este tutorial descreve como implementar uma aplicação segura N-tier com uma aplicação web frontend que se liga a outra aplicação web isolada na rede. Todo o tráfego é isolado na sua Rede Virtual do Azure através da utilização da integração com a Rede Virtual e de pontos finais privados. Para obter orientações mais abrangentes que incluam outros cenários, consulte:
Neste tutorial, você:
- Criar uma rede virtual e sub-redes para integração de redes virtuais de Serviços de Aplicações
- Criar zonas DNS privadas e endpoints privados
- Configurar a integração da rede virtual no App Service
- Desativar a autenticação básica no serviço de aplicação
- Efetuar a implementação contínua numa aplicação Web de back-end fortemente protegida
Pré-requisitos
O tutorial utiliza duas aplicações de exemplo Node.js alojadas no GitHub. Se você ainda não tem uma conta no GitHub, crie uma conta gratuitamente.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Para concluir este tutorial:
Use o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
Revê a arquitetura do cenário
Este tutorial demonstra como configurar uma arquitetura ilustrada no diagrama seguinte. O cenário representa uma das possíveis configurações N-tier no App Service. Você pode usar os conceitos abordados neste tutorial para criar aplicativos de N camadas mais complexos.
A arquitetura possui uma rede virtual que contém duas sub-redes. Uma sub-rede está integrada com a aplicação web frontend, e a outra sub-rede tem um endpoint privado para a aplicação web backend. A rede virtual bloqueia todo o tráfego de rede de entrada, exceto o tráfego que tem como alvo a aplicação frontend integrada.
Uma aplicação web frontend está integrada na rede virtual e acessível a partir da internet pública.
Uma aplicação web de backend é acessível apenas através do endpoint privado na rede virtual.
Um endpoint privado integra-se com a aplicação web do backend e torna a aplicação acessível através de um endereço IP privado.
Uma zona DNS privada permite resolver um nome DNS para o endereço IP do endpoint privado.
Nota
Para configurar integração de rede virtual e endpoints privados, precisa do nível Basic de Serviço de Aplicações do Azure ou de um nível superior. O nível Gratuito não suporta esses recursos.
O cenário neste tutorial apresenta o seguinte comportamento:
- O tráfego público para a aplicação de backend é bloqueado.
- O tráfego de saída do App Service é encaminhado para a rede virtual e pode alcançar a aplicação de back-end.
- O App Service pode efetuar a resolução de DNS para a aplicação de back-end.
Crie as duas aplicações web
Precisas de duas aplicações web do App Service, uma para o frontend e outra para o backend. As aplicações podem correr na mesma região. Para configurar integração com redes virtuais e trabalhar com endpoints privados, use pelo menos o nível Basic de Serviço de Aplicações do Azure. Depois configuras a integração da rede virtual e outras definições.
Cria um grupo de recursos para gerir todos os recursos deste tutorial.
Defina o
<resource-group>marcador para o nome do seu novo grupo de recursos, comozava-resources. Defina o marcador de posição<region-location>para a região do seu novo grupo de recursos, por exemplo,eastus.# Define variables for the resource group name and region location resourceGroupName=<resource-group> regionLocation=<region-location> # Create the resource group az group create --name $resourceGroupName --location $regionLocationPara mais informações, consulte a referência do comando az group create.
Crie um plano de App Service para os seus recursos.
Defina o marcador de posição
<app-service-plan>com o nome do seu novo plano do App Service, comozava-app-service-plan.O exemplo do tutorial define o
--skuparâmetro paraP1V3(Premium V3). Pode usar este valor ou especificar um SKU diferente. O SKU deve suportar as funcionalidades de rede necessárias para este tutorial. Selecione o nível Básico ou superior.# Define a variable for the App Service plan name appServicePlanName=<app-service-plan> # Create the App Service plan az appservice plan create --name $appServicePlanName --resource-group $resourceGroupName --is-linux --location $regionLocation --sku P1V3Para mais informações, consulte a referência do comando az appservice plan create.
Crie as aplicações web de front-end e back-end.
O exemplo do tutorial cria duas aplicações de Node.js exemplo, onde a versão da linguagem de runtime é
NODE:24-lts. Se preferires usar as tuas próprias aplicações, define o valor dos--runtimeparâmetros<language-version>em conformidade. Pode executar oaz webapp list-runtimescomando para a lista de runtimes disponíveis:az webapp list-runtimesDefina o
<frontend-app-name>marcador para o nome da sua nova aplicação web frontend, comozava-frontend-app. O nome deve ser globalmente único e consistir em caracteres válidos (a-z,0-9,-). Da mesma forma, defina o marcador de posição<backend-app-name>com o nome da sua nova aplicação Web de back-end, tal comozava-backend-app.# Define variables for the App Service web app names frontendAppName=<frontend-app-name> backendAppName=<backend-app-name> # Create the web apps az webapp create --name $frontendAppName --resource-group $resourceGroupName --plan $appServicePlanName --runtime "NODE:24-lts" az webapp create --name $backendAppName --resource-group $resourceGroupName --plan $appServicePlanName --runtime "NODE:24-lts"Para mais informações, consulte a referência do comando az webapp create.
Criar a infraestrutura de rede
A infraestrutura de rede virtual consiste nos seguintes recursos:
- Uma instância de Rede Virtual do Azure
- Uma sub-rede para a integração da rede virtual do App Service
- Outra sub-rede para o endpoint privado
- Uma zona Azure DNS Privado
- Um endpoint privado
Crie uma rede virtual do Azure.
Defina o
<virtual-network-name>marcador para o nome da sua nova rede virtual, comozava-virtual-network. O nome tem de ser globalmente exclusivo.# Define a variable for the virtual network name virtualNetworkName=<virtual-network-name> # Create the virtual network az network vnet create --resource-group $resourceGroupName --location $regionLocation --name $virtualNetworkName --address-prefixes 10.0.0.0/16Para mais informações, consulte a referência do comando az network vnet create.
Crie uma sub-rede para a integração da rede virtual do App Service.
Defina o
<network-integration-subnet>marcador para o nome da sua nova sub-rede que suporta integração com redes virtuais, comozava-integration-subnet.Para o Serviço de Aplicativo, recomenda-se que a sub-rede de integração de rede virtual tenha um bloco CIDR de
/26, no mínimo./24é mais do que suficiente.--delegations Microsoft.Web/serverfarmsespecifica que a sub-rede está delegada para a integração de rede virtual do App Service.# Define a variable for the integration subnet name networkIntegrationSubnet=<network-integration-subnet> # Create the subnet for virtual network integration az network vnet subnet create --resource-group $resourceGroupName --vnet-name $virtualNetworkName --name $networkIntegrationSubnet \ --address-prefixes 10.0.0.0/24 --delegations Microsoft.Web/serverfarms \ --disable-private-endpoint-network-policies falsePara mais informações, consulte a referência do comando az network vnet subnet create.
Crie outra sub-rede para os endpoints privados.
Defina o
<private-endpoint-subnet>marcador para o nome da sua nova sub-rede que suporta o endpoint privado, comozava-endpoint-subnet.# Define a variable for the private endpoint subnet name privateEndpointSubnet=<private-endpoint-subnet> # Create the subnet for the private endpoint az network vnet subnet create --resource-group $resourceGroupName --vnet-name $virtualNetworkName --name $privateEndpointSubnet \ --address-prefixes 10.0.1.0/24 \ --disable-private-endpoint-network-policies truePara sub-redes de pontos finais privados, deve desativar as políticas de rede de pontos finais privados definindo o sinalizador
--disable-private-endpoint-network-policiescomotrue. Para mais informações, consulte os parâmetros opcionais para o comando criar subrede vnet da rede az .Nota
A
--private-endpoint-network-policiesbandeira pode em breve substituir a--disable-private-endpoint-network-policiesbandeira.Cria a zona Azure DNS Privado.
Defina o marcador de posição
<private-zone-name>para o nome da sua nova zona de DNS Privado, comozava-private.azurewebsites.net.# Define a variable for the Private DNS zone privateDNSZone=<private-zone-name> # Create the Private DNS zone az network private-dns zone create --resource-group $resourceGroupName --name $privateDNSZonePara mais informações, consulte a referência do comando az network vnet subnet create. Para mais informações sobre como configurar a zona de DNS Privado, consulte configuração da zona DNS do serviço Azure.
Nota
Se criares o endpoint privado no portal Azure, uma zona Azure DNS Privado é criada automaticamente para a tua configuração. Para garantir a consistência processual neste tutorial, cria a zona DNS Privado e o private endpoint em separado, utilizando a CLI do Azure.
Liga a zona DNS Privado à rede virtual.
Defina o
<dns-link-name>marcador para o nome do seu novo link DNS, comozava-private-link.# Define a variable for the DNS link name dnsLinkName=<dns-link-name> # Create the link between the Private DNS zone and the virtual network az network private-dns link vnet create --resource-group $resourceGroupName --name $dnsLinkName --zone-name $privateDNSZone \ --virtual-network $virtualNetworkName --registration-enabled FalsePara mais informações, consulte a referência do comando az network private-dns link vnet create.
Na sub-rede do ponto final privado da sua rede virtual, crie um ponto final privado para a sua aplicação Web de back-end.
Defina o marcador de posição
<private-endpoint-name>para o nome do novo ponto final privado da sua aplicação Web de back-end, comozava-backend-endpoint. Defina o<service-connection-name>marcador para o nome da nova ligação de serviço, comozava-backend-connection.# Define variables for the private endpoint and service connection privateEndpointName=<private-endpoint-name> serviceConnectionName=<service-connection-name> # Get the resource ID of the backend web app resourceId=$(az webapp show --resource-group $resourceGroupName --name $backendAppName --query id --output tsv) # Create the private endpoint for the backend web app by using the resource ID az network private-endpoint create --resource-group $resourceGroupName --name $privateEndpointName --location $regionLocation \ --connection-name $serviceConnectionName --private-connection-resource-id $resourceId \ --group-id sites --vnet-name $virtualNetworkName --subnet $privateEndpointSubnetPara mais informações, consulte a referência do comando az network private-endpoint create.
Associe o ponto final privado à zona de DNS privado com um grupo de zonas DNS para o ponto final privado da aplicação Web de back-end.
Defina o marcador de posição
<dns-zone-group-name>com o nome do seu novo grupo de zonas DNS, comozava-dns-zone-group. O grupo de zonas DNS ajuda na atualização automática da zona DNS Privado quando o endpoint privado é atualizado.# Define a variable for the DNS Zone group dnsZoneGroupName=<dns-zone-group-name> # Link the private endpoint to the Private DNS az network private-endpoint dns-zone-group create --resource-group $resourceGroupName --endpoint-name $privateEndpointName \ --name $dnsZoneGroupName --private-dns-zone $privateDNSZone --zone-name $privateDNSZonePara mais informações, consulte a referência do comando az network private-endpoint dns-zone-group create.
Confirme que o acesso direto ao seu endpoint privado está negado.
Quando cria um endpoint privado para uma aplicação de Serviços de Aplicações, o acesso público fica implicitamente desativado. Se tentar aceder à sua aplicação web backend usando o URL predefinido, o seu acesso é negado.
Num navegador, introduza o URL predefinido da sua aplicação web backend, como
<backend-app-name>.azurewebsites.net.A mensagem do navegador indica que o acesso direto está negado:
Para obter mais informações sobre restrições de acesso ao Serviço de Aplicativo com pontos de extremidade privados, consulte Restrições de acesso do Serviço de Aplicativo do Azure.
Configurar a integração de rede virtual
Depois de criar a infraestrutura de rede virtual, pode configurar a integração da rede virtual na sua aplicação web frontend. A integração de rede virtual permite que o tráfego de saída flua diretamente para a rede virtual. Por predefinição, apenas o tráfego IP local definido no espaço de endereços privados RFC-1918 > Private Address Space é encaminhado para a rede virtual. Este nível de encaminhamento é o que precisas para ativar endpoints privados.
Ative a integração de rede virtual na sua aplicação web frontend. O comando seguinte assume que a sub-rede e a aplicação web estão localizadas no mesmo grupo de recursos.
az webapp vnet-integration add --resource-group $resourceGroupName --name $frontendAppName --vnet $virtualNetworkName --subnet $networkIntegrationSubnet
Para mais informações, consulte a documentação de referência do comando az webapp vnet-integration add.
Para encaminhar todo o tráfego para a rede virtual, veja Gerenciar encaminhamento de integração de rede virtual. O encaminhamento de todo o tráfego também pode ser usado se quiser encaminhar o tráfego da internet através da sua rede virtual, como através de um Rede Virtual do Azure NAT ou Azure Firewall.
Permitir a implementação na aplicação web de backend
Como a sua aplicação web backend não é acessível publicamente, deve permitir que a sua ferramenta de implementação contínua chegue à sua aplicação, tornando o site SCM acessível publicamente a partir da internet. O próprio aplicativo Web principal pode continuar a negar todo o tráfego.
Habilite o acesso público para o aplicativo Web back-end.
az webapp update --resource-group $resourceGroupName --name $backendAppName --set publicNetworkAccess=EnabledDefina a ação de regra incomparável para o aplicativo Web principal para negar todo o tráfego.
Essa configuração nega acesso público ao aplicativo Web principal, embora a configuração geral de acesso ao aplicativo esteja definida para permitir acesso público.
az resource update --resource-group $resourceGroupName --name $backendAppName --namespace Microsoft.Web \ --resource-type sites --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=DenyDefina a ação de regra incomparável para o site do SCM para permitir todo o tráfego.
az resource update --resource-group $resourceGroupName --name $backendAppName --namespace Microsoft.Web \ --resource-type sites --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Restrição do acesso FTP e SCM
Como o seu site de SCM backend é acessível ao público, precisa de o proteger com melhor segurança.
Desative o acesso FTP tanto para a aplicação Web do frontend como para a do backend:
az resource update --resource-group $resourceGroupName --name ftp --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $resourceGroupName --name ftp --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=falseDesative o acesso básico de autenticação às portas WebDeploy e aos sites SCM/ferramentas avançadas para ambas as aplicações web:
az resource update --resource-group $resourceGroupName --name scm --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<frontend-app-name> --set properties.allow=false az resource update --resource-group $resourceGroupName --name scm --namespace Microsoft.Web \ --resource-type basicPublishingCredentialsPolicies --parent sites/<backend-app-name> --set properties.allow=false
Quando desativa a autenticação básica no App Service, limita o acesso aos endpoints FTP e SCM a utilizadores registados com o Microsoft Entra ID. Esta ação protege ainda mais as suas aplicações. Para mais informações sobre como desativar a autenticação básica, incluindo como testar e monitorizar logins, consulte Desabilitar a autenticação básica no App Service.
Configurar implementação contínua com GitHub Actions
Para este procedimento, precisa de duas aplicações prontas para implementar nas suas aplicações de front-end e back-end do App Service. Para aceder às aplicações web, precisas de um principal de serviço e implementação contínua com GitHub Actions.
Obtenha aplicações web para testes de implementação
Os repositórios Azure Samples no GitHub fornecem aplicações Node.js exemplos para implementação.
No navegador, aceda à aplicação de exemplo Node.js Backend sample app.
Faz um fork no repositório do GitHub para teres a tua própria cópia para fazer alterações. Este exemplo constrói uma aplicação 'Hello World'. Implementas esta aplicação na tua aplicação web de backend.
Repita o mesmo processo para a aplicação de exemplo Node.js Frontend.
Faz um fork no repositório do GitHub para teres a tua própria cópia para fazer alterações. Este exemplo constrói uma aplicação web que recolhe e exibe o conteúdo de uma URL. Implementas esta aplicação na tua aplicação frontend web.
Configurar o principal de serviço
Precisa de um princípio de serviço para a sua aplicação web frontend e para a aplicação web backend.
Crie um principal de serviço.
Defina o marcador de posição
<service-principal-name>como o nome do seu novo principal de serviço, por exemplozava-service-principal.Substitua os outros valores dos parâmetros
<placeholder>pelas informações dos seus próprios recursos.# Define a variable for the service principal name servicePrincipalName=<service-principal-name> # Link the private endpoint to the Private DNS az ad sp create-for-rbac --name <service-principal-name> --role contributor --scopes \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<frontend-app-name> \ /subscriptions/<subscription-ID>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<backend-app-name>A saída é um objeto JSON com as credenciais de atribuição de função que fornecem acesso aos seus aplicativos do Serviço de Aplicativo.
{ "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "displayName": "<service-principal-name>", "password": "0Aa!1Bb!2Cc!3Dd!4Ee!5Ff!6Gg!7Hh!8Ii!9Jj!", "tenantId": "aaaabbbb-6666-cccc-7777-dddd8888eeee" }O JSON inclui a palavra-passe do seu principal de serviço, que só é visível neste momento.
Tip
É uma boa prática conceder acesso mínimo. Neste exemplo, o âmbito está limitado apenas às aplicações, não a todo o grupo de recursos.
Copie o objeto JSON para que tenha um registo do nome principal de serviço.
Forneça as suas credenciais de principal de serviço à operação de iniciar sessão no Azure como parte do seu fluxo de trabalho do GitHub Actions.
Guarda as credenciais como segredos do GitHub que são referenciados no teu fluxo de trabalho.
Num navegador, vai ao repositório bifurcado da tua aplicação de backend Node.js no GitHub.
Vai a Definições>Segurança>Segredos e variáveis>Ações.
Selecione Novo segredo de repositório e crie um segredo para cada uma das seguintes definições.
Usa os valores da tua saída JSON.
Definições Valor Example AZURE_CLIENT_ID <application/client-id>00001111-aaaa-2222-bbbb-3333cccc4444AZURE_TENANT_ID <tenant-id>aaaabbbb-6666-cccc-7777-dddd8888eeeeAZURE_SUBSCRIPTION_ID <subscription-id>cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6aRepete este processo para o repositório forked da tua aplicação frontend Node.js na GitHub.
Configurar implementação contínua com GitHub Actions
Pode configurar uma implementação contínua com o GitHub Actions.
No portal Azure, vá para a página Descrição geral da sua aplicação Web de front-end.
No menu à esquerda, selecione Centro de Implantação (Deployment>Deployment Center).
No separador Settings, defina a opção Source para GitHub:
Se você estiver implantando a partir do GitHub pela primeira vez, selecione Autorizar e siga os prompts de autorização. Se você quiser implantar a partir do repositório de um usuário diferente, selecione Alterar conta.
Depois de autorizar a sua conta de Azure com GitHub, selecione Organization, Repository e Branch para configurar o CI/CD. Se não conseguires encontrar uma organização ou repositório, talvez precises de ativar mais permissões no GitHub. Para mais informações, consulte Gerir o acesso dos utilizadores aos repositórios da sua organização.
Definições Valor Organização <your-GitHub-organization>Repositório <forked-repository-name>Filial principal Selecione Guardar.
Repita este processo para a sua aplicação web backend e para o repositório forked correspondente.
Validar ligações e acesso à aplicação
Agora está pronto para verificar as conexões e o acesso às suas aplicações web de front-end e back-end.
Tente aceder diretamente à sua aplicação Web de back-end utilizando o respetivo URL,
https://<backend-app-name>.azurewebsites.net.Deverá ver a seguinte mensagem do navegador:
Se conseguires aceder à aplicação, verifica a tua configuração:
Confirma que o endpoint privado está corretamente configurado.
Confirme que as restrições de acesso à sua aplicação estão definidas para negar todo o tráfego à aplicação web principal.
Agora tente aceder diretamente à sua aplicação web de frontend utilizando o respetivo URL,
https://<frontend-app-name>.azurewebsites.net.Quando a ligação é bem-sucedida, vê a página seguinte:
Na caixa do URL, introduza o URL da sua aplicação web backend,
https://<backend-app-name>.azurewebsites.net, e selecione Buscar.Se configurares as ligações corretamente, a página atualiza-se para mostrar o conteúdo da mensagem da aplicação web de backend:
Todo o tráfego de saída da aplicação web frontend passa pela rede virtual. A sua aplicação Web de front-end está a ligar-se de forma segura à sua aplicação Web de back-end através do ponto final privado.
Se algo estiver errado com as suas ligações, verá a mensagem Erro 403 - Proibido na saída.
Estabelecer uma sessão SSH e abrir um shell remoto
Valide que a aplicação web de frontend está a aceder à aplicação web de backend através da ligação privada, utilizando SSH para aceder a uma instância de frontend.
Estabeleça uma sessão SSH no contentor web da sua aplicação e abra um shell remoto no seu navegador:
az webapp ssh --resource-group $resourceGroupName --name $frontendAppNamePara mais informações, consulte a referência do comando az webapp ssh.
Depois de a linha de comandos abrir no seu navegador, confirme que a sua aplicação Web de back-end está acessível utilizando o endereço IP privado da sua aplicação Web de back-end.
Nos comandos seguintes, substitua os valores dos
<placeholder>parâmetros pela informação do seu próprio recurso.Executar o comando
nslookup:nslookup <backend-app-name>.azurewebsites.netExecute novamente o
curlcomando para validar o conteúdo do site:curl https://<backend-app-name>.azurewebsites.net
O
nslookupcomando deve ser resolvido para o endereço IP privado da sua aplicação web de backend. O endereço IP privado deve ser um endereço da sua rede virtual.Pode confirmar o seu endereço IP privado no portal Azure. Aceda à página Definições>Rede da sua aplicação Web de back-end.
Repita os mesmos comandos
nslookupecurlnoutro terminal (que não seja uma sessão de SSH nas suas instâncias de front-end).
O
nslookupcomando devolve o IP público da aplicação web do backend. Como o acesso público à aplicação web do backend está desativado, se tentar aceder ao IP público, recebe um erro de acesso negado. Este erro significa que o site não está acessível a partir da internet pública, que é o comportamento pretendido.O
nslookupcomando não resolve para o IP privado porque o endereço só pode ser resolvido dentro da rede virtual através da zona DNS privada. Apenas a aplicação web frontend está dentro da rede virtual. Se tentar executar ocurlcomando na aplicação web backend a partir do terminal externo, o HTML devolvido contém a mensagem de Erro 403, Proibido - A aplicação web que tentou aceder bloqueou o seu acesso. Alguns terminais também mostram o mesmo HTML da página de erro devolvida quando tenta aceder diretamente à aplicação web do backend.
Limpeza de recursos
Nos passos anteriores, criou os recursos do Azure num grupo de recursos. Se achar que não vai precisar destes recursos no futuro, execute o seguinte comando no Cloud Shell para eliminar o grupo de recursos.
Substitua o valor do <placeholder> parâmetro pela informação do seu próprio recurso:
az group delete --name <resource-group>
Este comando pode demorar vários minutos a concluir.
Perguntas mais frequentes
Neste tutorial, implementaste uma infraestrutura básica para suportar uma aplicação web segura de nível N. O App Service oferece funcionalidades que podem ajudar a garantir que está a executar aplicações que seguem as melhores práticas e recomendações de segurança.
Esta secção contém respostas a perguntas frequentes que podem ajudá-lo a proteger ainda mais as suas aplicações e a implementar e gerir os seus recursos de acordo com as melhores práticas.
Implementar com métodos diferentes do principal de serviço
Neste tutorial, desativaste a autenticação básica. Não podes autenticar com o site SCM do backend usando um nome de utilizador e palavra-passe, ou usando um perfil de publicação. No entanto, em vez de se autenticar com uma identidade de serviço, pode utilizar credenciais do OpenID Connect.
Configurar a implementação do GitHub Actions no App Service
O Azure gera automaticamente um ficheiro de workflow no teu repositório. Novos commits no repositório e ramo selecionados são implementados continuamente na sua aplicação de Serviços de Aplicação. Podes acompanhar os commits e implementações no separador Logs na GitHub.
Um arquivo de fluxo de trabalho padrão que usa um perfil de publicação para autenticar no Serviço de Aplicativo é adicionado ao repositório do GitHub. Você pode visualizar este arquivo indo para o <repo-name>/.github/workflows/ diretório.
Confirme o acesso público seguro ao site SCM de backend
Quando bloqueia o acesso FTP e SCM, pode garantir que apenas os principais suportados por Microsoft Entra podem aceder ao endpoint SCM, mesmo que este seja acessível publicamente. Esta configuração ajuda a tranquilizá-lo de que a sua aplicação web backend continua segura.
Implementar sem um site SCM de back-end aberto
Se está preocupado em permitir o acesso público ao site SCM, ou tem restrições de política, considere outras opções de implementação de Serviços de Aplicações, como correr a partir de um pacote ZIP.
Implemente esta arquitetura com um modelo
Os recursos que criaste neste tutorial podem ser implementados usando um modelo do Azure Resource Manager (template ARM) ou Bicep. A aplicação ligada a um ficheiro Bicep de uma aplicação Web de back-end permite-lhe criar uma solução de aplicação segura em N camadas.
Para aprender a implementar modelos ARM e Bicep, consulte Implementação de ficheiros Bicep através do CLI do Azure.