Az - API Management

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Informations de base

Azure API Management (APIM) est un service entiĂšrement managĂ© qui propose une plateforme unifiĂ©e pour publier, sĂ©curiser, transformer, gĂ©rer et surveiller les API. Il permet aux organisations de centraliser leur stratĂ©gie d’API et d’assurer une gouvernance, des performances et une sĂ©curitĂ© cohĂ©rentes pour l’ensemble de leurs services. En servant de couche d’abstraction entre les services backend et les consommateurs d’API, APIM simplifie l’intĂ©gration et amĂ©liore la maintenabilitĂ© tout en fournissant des capacitĂ©s opĂ©rationnelles et de sĂ©curitĂ© essentielles.

Concepts clés

The API Gateway sert de point d’entrĂ©e unique pour tout le trafic API, gĂ©rant des fonctions telles que le routage des requĂȘtes vers les services backend, l’application de limites de dĂ©bit, la mise en cache des rĂ©ponses, et la gestion de l’authentification et de l’autorisation. Cette passerelle est entiĂšrement hĂ©bergĂ©e et gĂ©rĂ©e par Azure, garantissant haute disponibilitĂ© et scalabilitĂ©.

The Developer Portal fournit un environnement en libre-service oĂč les consommateurs d’API peuvent dĂ©couvrir les API disponibles, lire la documentation et tester les endpoints. Il facilite l’onboarding en proposant des outils interactifs et l’accĂšs aux informations de subscription.

The Management Portal (Management Plane) est utilisĂ© par les administrateurs pour configurer et maintenir le service APIM. Depuis cet endroit, les utilisateurs peuvent dĂ©finir des APIs et des opĂ©rations, configurer le contrĂŽle d’accĂšs, appliquer des politiques, gĂ©rer les utilisateurs et organiser les APIs en produits. Ce portail centralise l’administration et garantit une gouvernance cohĂ©rente des API.

Authentification et autorisation

Azure API Management supporte plusieurs mĂ©canismes d’authentification pour sĂ©curiser l’accĂšs aux API. Ceux-ci incluent les clĂ©s d’abonnement, les OAuth 2.0 tokens et les certificats client. APIM s’intĂšgre Ă©galement nativement avec Microsoft Entra ID, permettant la gestion des identitĂ©s au niveau entreprise et un accĂšs sĂ©curisĂ© aux API et aux services backend.

Politiques

Les politiques dans APIM permettent aux administrateurs de personnaliser le traitement des requĂȘtes et des rĂ©ponses Ă  diffĂ©rents niveaux de granularitĂ©, y compris le service, l’API, l’opĂ©ration ou le produit. GrĂące aux politiques, il est possible d’appliquer la validation de JWT, de transformer des payloads XML ou JSON, d’appliquer des limites de dĂ©bit, de restreindre les appels par adresse IP, ou de s’authentifier auprĂšs des services backend en utilisant des identitĂ©s gĂ©rĂ©es. Les politiques sont trĂšs flexibles et constituent l’une des forces principales de la plateforme API Management, permettant un contrĂŽle fin du comportement au runtime sans modifier le code backend.

Named Values

Le service propose un mĂ©canisme appelĂ© Named Values, qui permet de stocker des informations de configuration telles que des secrets, des API keys, ou d’autres valeurs requises par les politiques.

Ces valeurs peuvent ĂȘtre stockĂ©es directement dans APIM ou rĂ©fĂ©rencĂ©es de maniĂšre sĂ©curisĂ©e depuis Azure Key Vault. Named Values favorisent une gestion centralisĂ©e et sĂ©curisĂ©e des donnĂ©es de configuration et simplifient la rĂ©daction des politiques en autorisant des rĂ©fĂ©rences rĂ©utilisables plutĂŽt que des valeurs codĂ©es en dur.

Intégration réseau et sécurité

Azure API Management s’intĂšgre parfaitement aux environnements Virtual Network (VNet), permettant une connectivitĂ© privĂ©e et sĂ©curisĂ©e vers les systĂšmes backend.

Lorsqu’il est dĂ©ployĂ© Ă  l’intĂ©rieur d’un Virtual Network (VNet), APIM peut accĂ©der aux services internes sans les exposer publiquement. Le service permet Ă©galement la configuration de certificats personnalisĂ©s pour prendre en charge mutual TLS authentication avec les services backend, renforçant la sĂ©curitĂ© dans les scĂ©narios nĂ©cessitant une validation d’identitĂ© forte.

Ces fonctionnalités réseau rendent APIM adapté aux architectures cloud-native et hybrides.

ÉnumĂ©rer

Pour énumérer le service API Management :

# Lists all Named Values configured in the Azure API Management instance
az apim nv list --resource-group <resource-group> --service-name <service-name>

# Retrieves all policies applied at the API level in raw XML format
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/apis/<api-id>/policies/?api-version=2024-05-01&format=rawxml"

# Retrieves the effective policy for a specific API in raw XML format
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/apis/<api-id>/policies/policy?api-version=2024-05-01&format=rawxml"

# Gets the configuration details of the APIM service instance
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<apim>?api-version=2024-05-01"

# Lists all backend services registered in the APIM instance
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/backends?api-version=2024-05-01"

# Retrieves details of a specific backend service
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/backends/<backend-id>?api-version=2024-05-01"

# Gets general information about the APIM service
az rest --method GET \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>?api-version=2024-05-01"

# Calls an exposed API endpoint through the APIM gateway
curl https://<apim>.azure-api.net/<api-path>

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks