Az - API Management
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Основна інформація
Azure API Management (APIM) — це повністю керований сервіс, який пропонує єдину платформу для публікації, захисту, трансформації, управління та моніторингу API. Він дозволяє організаціям централізувати свою API-стратегію та забезпечувати послідовне управління, продуктивність і безпеку для всіх їхніх сервісів. Діючи як шар абстракції між бекенд-сервісами та споживачами API, APIM спрощує інтеграцію і підвищує підтримуваність, надаючи при цьому необхідні операційні та безпекові можливості.
Основні концепції
The API Gateway слугує єдиною точкою входу для всього API-трафіку, виконуючи такі функції, як маршрутизація запитів до бекенд-сервісів, застосування обмежень швидкості, кешування відповідей та керування автентифікацією й авторизацією. Цей шлюз повністю хоститься і управляється Azure, що гарантує високу доступність і масштабованість.
The Developer Portal надає середовище самообслуговування, де споживачі API можуть знаходити доступні API, читати документацію та тестувати кінцеві точки. Це спрощує процес підключення, надаючи інтерактивні інструменти й доступ до інформації про підписки.
The Management Portal (Management Plane) використовується адміністраторами для налаштування та підтримки сервісу APIM. З цього порталу користувачі можуть визначати API й операції, налаштовувати контроль доступу, застосовувати Policies, керувати користувачами та організовувати API у продукти. Цей портал централізує адміністрування та забезпечує послідовне управління API.
Аутентифікація та авторизація
Azure API Management підтримує кілька механізмів аутентифікації для захисту доступу до API. Серед них — subscription keys, OAuth 2.0 tokens та client certificates. APIM також нативно інтегрується з Microsoft Entra ID, забезпечуючи управління ідентичностями корпоративного рівня та безпечний доступ як до API, так і до бекенд-сервісів.
Policies
Policies в APIM дозволяють адміністраторам налаштовувати обробку запитів і відповідей на різних рівнях деталізації, включаючи рівні service, API, operation або product. Через policies можна виконувати JWT token validation, перетворювати XML або JSON payloads, застосовувати обмеження швидкості, обмежувати виклики за IP-адресою або автентифікуватися проти бекенд-сервісів за допомогою managed identities. Policies є надзвичайно гнучкими і становлять одну з ключових переваг платформи API Management, дозволяючи тонке керування поведінкою в рантаймі без зміни бекенд-коду.
Named Values
Сервіс надає механізм під назвою Named Values, який дозволяє зберігати інформацію конфігурації, таку як secrets, API keys або інші значення, необхідні для policies.
Ці значення можна зберігати безпосередньо в APIM або безпечно посилатися на них з Azure Key Vault. Named Values сприяють безпечному та централізованому управлінню конфігураційними даними та спрощують написання policies, дозволяючи використовувати повторно застосовувані посилання замість захардкожених значень.
Мережі та інтеграція безпеки
Azure API Management безшовно інтегрується з virtual network environments, забезпечуючи приватне та безпечне підключення до бекенд-систем.
При розгортанні всередині Virtual Network (VNet) APIM може отримувати доступ до internal services, не роблячи їх публічно доступними. Сервіс також дозволяє налаштовувати custom certificates для підтримки mutual TLS authentication з бекенд-сервісами, підвищуючи безпеку в сценаріях, де необхідна строга валідація ідентичності.
Ці networking features роблять APIM придатним як для cloud-native, так і для hybrid architectures.
Перелічення
Щоб перерахувати сервіс APIM:
# 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:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud

