Az - API Management

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

Azure API Management (APIM), API’leri yayınlamak, güvence altına almak, dönüştürmek, yönetmek ve izlemek için eksiksiz yönetilen bir platform sunan bir hizmettir. Kuruluşların API stratejilerini merkezi hale getirmelerini ve tüm servisler boyunca tutarlı yönetişim, performans ve güvenliği sağlamalarını mümkün kılar. APIM, backend servisleri ile API tüketicileri arasında bir soyutlama katmanı olarak çalışarak entegrasyonu basitleştirir ve sürdürülebilirliği artırırken temel operasyonel ve güvenlik yetenekleri sağlar.

Temel Kavramlar

The API Gateway tüm API trafiği için tek giriş noktası olarak hizmet eder; istekleri backend servislerine yönlendirme, oran sınırlama (rate limiting) uygulama, yanıtları önbelleğe alma ve kimlik doğrulama ile yetkilendirme yönetimi gibi işlevleri gerçekleştirir. Bu gateway Azure tarafından tamamen host edilir ve yönetilir, yüksek erişilebilirlik ve ölçeklenebilirlik sağlar.

The Developer Portal API tüketicilerinin kullanılabilir API’leri keşfetmesine, dokümantasyonu okumasına ve endpoint’leri test etmesine olanak tanıyan self-servis bir ortam sağlar. İnteraktif araçlar ve abonelik bilgilerine erişim sunarak onboarding sürecini hızlandırır.

The Management Portal (Management Plane), yöneticilerin APIM servisinin yapılandırılması ve bakımını yapması için kullanılır. Buradan kullanıcılar API ve operasyonları tanımlayabilir, erişim kontrolü yapılandırabilir, politikalar uygulayabilir, kullanıcıları yönetebilir ve API’leri ürünler halinde organize edebilir. Bu portal yönetimi merkezileştirir ve tutarlı API yönetişimi sağlar.

Kimlik Doğrulama ve Yetkilendirme

Azure API Management, API erişimini güvence altına almak için çeşitli kimlik doğrulama mekanizmalarını destekler. Bunlar arasında subscription keys, OAuth 2.0 tokens ve client certificates bulunur. APIM ayrıca Microsoft Entra ID ile yerel entegrasyon sağlar; böylece kurumsal düzeyde kimlik yönetimi ve hem API’lere hem de backend servislerine güvenli erişim mümkün olur.

Policies

APIM’deki politikalar, yöneticilerin istek ve yanıt işlemesini hizmet, API, operasyon veya ürün düzeyinde özelleştirmesine izin verir. Politikalar aracılığıyla JWT token doğrulaması uygulamak, XML veya JSON payload’larını dönüştürmek, oran sınırlaması getirmek, çağrıları IP adresine göre kısıtlamak veya managed identities kullanarak backend servislerine kimlik doğrulaması yapmak mümkündür. Politikalar son derece esnektir ve API Management platformunun temel güçlü yönlerinden birini oluşturur; backend kodunu değiştirmeden çalışma zamanı davranışı üzerinde ince kontrollere olanak verir.

Named Values

Servis, Named Values adındaki bir mekanizma sağlar; bu mekanizma politikalar tarafından kullanılacak secret, API key veya diğer yapılandırma bilgilerini saklamaya imkan verir.

Bu değerler doğrudan APIM içinde depolanabilir veya güvenli bir şekilde Azure Key Vault’tan referanslanabilir. Named Values, yapılandırma verilerinin güvenli ve merkezi yönetimini teşvik eder ve politika yazımını, hardcoded değerler yerine tekrar kullanılabilir referanslarla basitleştirir.

Ağ ve Güvenlik Entegrasyonu

Azure API Management, virtual network ortamlarıyla sorunsuz entegrasyon sağlar ve backend sistemlere özel ve güvenli bağlantı kurulmasına imkan verir.

Bir Virtual Network (VNet) içinde dağıtıldığında, APIM dahili servislere bunları açık hale getirmeden erişebilir. Servis ayrıca backend servisleriyle mutual TLS authentication desteklemek için custom certificates yapılandırılmasına izin verir; bu, güçlü kimlik doğrulaması gerektiren senaryolarda güvenliği artırır.

Bu ağ özellikleri, APIM’i hem cloud-native hem de hybrid mimariler için uygun hale getirir.

Enumerate

To enumerate the API management service:

# 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

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin