Como Publicar e Proteger uma API no Azure com API Management e Subscription Key
Publicar uma API na nuvem e protegê-la adequadamente é uma etapa fundamental para desenvolvedores que trabalham com microsserviços, aplicações web ou integrações de sistemas. O Azure oferece uma maneira simples e poderosa de fazer isso através do App Service e do API Management (APIM).
Neste artigo, vamos explorar um passo a passo didático para:
- Criar e publicar uma API no Azure
- Importá-la no API Management
- Aplicar proteção com Subscription Key (chave de subscrição)
Este guia foi feito pensando em quem está iniciando na plataforma Azure. Vamos focar em boas práticas e evitar armadilhas comuns.
✨ Visão Geral da Arquitetura
- App Service: hospeda sua API
- API Management: atua como gateway, adicionando proteção, monitoramento e versões
- Subscription Key: chave obrigatória para acessar a API através do APIM
1. Criar uma API local em .NET 8
Começamos com um projeto simples em .NET 8 (Minimal API):
mkdir WeatherApi && cd WeatherApi
dotnet new webapi --no-https --framework net8.0
No Program.cs
, mantenha o endpoint /weatherforecast
:
app.MapGet("/weatherforecast", () =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast(
DateTime.Now.AddDays(index),
Random.Shared.Next(-20, 55),
"Sunny"
))
.ToArray();
return forecast;
});
Compile e teste localmente:
dotnet run
Acesse no navegador:
http://localhost:5000/weatherforecast
2. Fazer deploy no Azure (App Service)
Requisitos:
- Conta no Azure (Free Tier funciona)
- Azure CLI instalado (
az --version
) - Login feito:
az login
Deploy com um comando:
az webapp up \
--name weather-api-demo \
--resource-group MeuGrupo \
--runtime "dotnet:8" \
--location centralus
Se ocorrer erro de cota na região (ex: "quota 0 instances"), tentecentralus
,southcentralus
,westus2
, etc.
A URL gerada será parecida com:
https://weather-api-demo.azurewebsites.net/weatherforecast
3. Importar a API no API Management
3.1 Criar o API Management (se ainda não existir)
az apim create \
--name meu-apim \
--resource-group MeuGrupo \
--publisher-name "Dev" \
--publisher-email "dev@exemplo.com"
3.2 Importar a API
No portal do Azure:
- Acesse o recurso API Management
- Menu lateral > APIs > + Add API
- Escolha a opção "Create from Azure resource"
- Selecione App Service e vincule seu Web App
4. Proteger a API com Subscription Key
Por padrão, o API Management já protege suas APIs com chave de subscrição.
Verificar configuração:
- Acesse sua API no APIM
- Clique no produto (ex: Starter)
- Marque "Require subscription"
Obter uma chave de subscrição:
- Acesse Subscriptions > Starter > Crie uma subscrição
- Copie a primary key
Testar com Postman:
GET https://meu-apim.azure-api.net/weather/weatherforecast
Ocp-Apim-Subscription-Key: <sua-chave>
Sem essa chave, o acesso é negado com código 401 Unauthorized
5. Dicas para evitar erros comuns
- ❌ Erro de região sem quota: troque a região no
az webapp up
- ❌ Erro de SDK .NET: instale com
dotnet-sdk-8.0
(Linux: viaapt
,dnf
oupacman
) - ❌ Erro 401 no APIM: sempre envie a Subscription Key correta
- ❌ Problemas no portal: atualize a página e verifique permissões da conta
✅ Conclusão
Agora você tem uma API publicada no Azure, exposta de forma segura através do API Management, com controle de acesso básico via Subscription Key.
Essa abordagem é ideal para testes, protótipos e ambientes de aprendizado. Em produção, considere também autenticação JWT ou OAuth2 com Azure AD.
Se você quiser um repositório com exemplos, README, imagens e código .NET, comente aqui ou mande mensagem! ✨