Az - API Management
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Basic Information
Azure API Management (APIM) είναι μια πλήρως διαχειριζόμενη υπηρεσία που προσφέρει μια ενιαία πλατφόρμα για τη δημοσίευση, την ασφάλιση, τη μετατροπή, τη διαχείριση και την παρακολούθηση των API. Επιτρέπει σε οργανισμούς να κεντροποιήσουν τη στρατηγική API τους και να διασφαλίσουν συνεπή διακυβέρνηση, απόδοση και ασφάλεια σε όλες τις υπηρεσίες τους. Λειτουργώντας ως επίπεδο αφαίρεσης μεταξύ backend υπηρεσιών και καταναλωτών API, το APIM απλοποιεί την ενσωμάτωση και βελτιώνει τη συντηρησιμότητα ενώ παρέχει βασικές λειτουργίες λειτουργίας και ασφάλειας.
Core Concepts
Το API Gateway λειτουργεί ως το μοναδικό σημείο εισόδου για όλη την κίνηση API, αναλαμβάνοντας λειτουργίες όπως δρομολόγηση αιτημάτων προς backend υπηρεσίες, επιβολή ορίων ρυθμού, caching απαντήσεων και διαχείριση authentication και authorization. Αυτό το gateway φιλοξενείται και διαχειρίζεται πλήρως από την Azure, εξασφαλίζοντας υψηλή διαθεσιμότητα και κλιμάκωση.
Το Developer Portal παρέχει ένα περιβάλλον self-service όπου οι καταναλωτές API μπορούν να ανακαλύψουν διαθέσιμα API, να διαβάσουν τεκμηρίωση και να δοκιμάσουν endpoints. Βοηθά στην απλοποίηση της εισαγωγής προσφέροντας διαδραστικά εργαλεία και πρόσβαση σε πληροφορίες συνδρομής.
Το Management Portal (Management Plane) χρησιμοποιείται από διαχειριστές για τη ρύθμιση και τη συντήρηση της υπηρεσίας APIM. Από εδώ, οι χρήστες μπορούν να ορίζουν APIs και operations, να ρυθμίζουν τον έλεγχο πρόσβασης, να εφαρμόζουν policies, να διαχειρίζονται χρήστες και να οργανώνουν τα APIs σε προϊόντα. Αυτό το portal κεντροποιεί τη διαχείριση και διασφαλίζει συνεπή διακυβέρνηση API.
Authentication and Authorization
Το Azure API Management υποστηρίζει διάφορους μηχανισμούς authentication για την προστασία της πρόσβασης στα API. Αυτοί περιλαμβάνουν subscription keys, OAuth 2.0 tokens και client certificates. Το APIM επίσης ενσωματώνεται εγγενώς με την Microsoft Entra ID, επιτρέποντας διαχείριση ταυτοτήτων σε επιχειρησιακό επίπεδο και ασφαλή πρόσβαση τόσο στα APIs όσο και στις backend υπηρεσίες.
Policies
Τα policies στο APIM επιτρέπουν στους διαχειριστές να προσαρμόζουν την επεξεργασία αιτημάτων και απαντήσεων σε διάφορα επίπεδα, συμπεριλαμβανομένου του service, API, operation ή product επιπέδου. Μέσω των policies, είναι δυνατή η επιβολή JWT token validation, η μετατροπή XML ή JSON payloads, η εφαρμογή rate limiting, ο περιορισμός κλήσεων κατά διεύθυνση IP, ή η authentication απέναντι σε backend υπηρεσίες χρησιμοποιώντας managed identities. Τα policies είναι πολύ ευέλικτα και αποτελούν ένα από τα βασικά πλεονεκτήματα της πλατφόρμας API Management, επιτρέποντας λεπτομερή έλεγχο της συμπεριφοράς χρόνου εκτέλεσης χωρίς τροποποίηση του backend κώδικα.
Named Values
Η υπηρεσία παρέχει έναν μηχανισμό που ονομάζεται Named Values, ο οποίος επιτρέπει την αποθήκευση πληροφοριών ρύθμισης όπως μυστικά, API keys ή άλλων τιμών που απαιτούνται από policies.
Αυτές οι τιμές μπορούν να αποθηκευτούν απευθείας μέσα στο APIM ή να αναφέρονται με ασφάλεια από το Azure Key Vault. Τα Named Values προάγουν τη ασφαλή και κεντροποιημένη διαχείριση των δεδομένων ρύθμισης και απλοποιούν τη συγγραφή policies επιτρέποντας επαναχρησιμοποιήσιμες αναφορές αντί για hardcoded τιμές.
Networking and Security Integration
Το Azure API Management ενσωματώνεται ομαλά με virtual network environments, επιτρέποντας ιδιωτική και ασφαλή συνδεσιμότητα προς τα backend συστήματα.
Όταν αναπτυχθεί μέσα σε ένα Virtual Network (VNet), το APIM μπορεί να έχει πρόσβαση σε εσωτερικές υπηρεσίες χωρίς να τις εκθέτει δημόσια. Η υπηρεσία επιτρέπει επίσης τη ρύθμιση custom certificates για την υποστήριξη του mutual TLS authentication με backend υπηρεσίες, βελτιώνοντας την ασφάλεια σε σενάρια όπου απαιτείται ισχυρή επαλήθευση ταυτότητας.
Αυτές οι δικτυακές δυνατότητες καθιστούν το APIM κατάλληλο τόσο για cloud-native όσο και για hybrid architectures.
Καταγραφή
Για να καταγράψετε την υπηρεσία 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
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

