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,dnfoupacman) - ❌ 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! ✨




JS
eu encontrei uma série de dificuldades em publicar uma api de forma segura. vou tentar seguir esses passos
DIO Community, JWT ou OAuth com certeza pode oferecer segurança aprimorada, principalmente para aplicativos ou sistemas onde isso é crucial como sistemas de pagamento online. Em um próximo artigo vou trazer essas informações e como implementar os testes, mas também podemos conferir o conteúdo em: https://web.dio.me/lab/api-de-pagamentos-segura-com-azure-api-management/learning/70542911-6a65-4bc4-b53b-10337150a4ad?back=/track/microsoft-azure-cloud-native
Excelente artigo, Janei! Você abordou de maneira clara e detalhada o processo de publicar uma API no Azure, utilizando o App Service, o API Management e a implementação da proteção com Subscription Key. Essas práticas são essenciais para garantir que a API seja segura e acessível apenas para usuários autorizados. O passo a passo ficou muito bem organizado, com explicações detalhadas sobre como criar e testar a API, além de dicas para evitar erros comuns, o que é uma ótima forma de guiar os iniciantes na plataforma Azure.
A explicação sobre como importar a API para o API Management e a proteção com Subscription Key é especialmente valiosa, pois dá uma base sólida para quem está começando a trabalhar com APIs e segurança no Azure. A dica de utilizar a Subscription Key para controle de acesso é simples, mas eficaz, garantindo que apenas clientes autorizados possam acessar os recursos da API.
Agora que você nos mostrou o básico para configurar uma API segura, como você sugere que as empresas escale isso em um ambiente de produção, considerando questões como autenticação JWT ou OAuth2?