Οι δοκιμές που διαχειρίζονται ταυτότητες σε ένα τοπικό περιβάλλον δεν είναι απλή, επειδή οι διαχειριζόμενες ταυτότητες έχουν σχεδιαστεί κυρίως για χρήση εντός των πόρων Azure. Ωστόσο, υπάρχουν τρόποι για την προσομοίωση ή την μιμή τους διαχειριζόμενες ταυτότητες σε τοπικό επίπεδο:
1. Εγγραφή στο Azure Arc: Μπορείτε να εγγραφείτε στο τοπικό σας μηχάνημα στο Azure Arc, το οποίο σας επιτρέπει να αντιστοιχίσετε μια διαχειριζόμενη ταυτότητα στο μηχάνημά σας. Αυτό μπορεί να είναι είτε μια διαχειριζόμενη ταυτότητα που έχει προσβληθεί είτε από το χρήστη. Μόλις εγγραφείτε, μπορείτε να δοκιμάσετε τις διαχειριζόμενες ταυτότητες τοπικά, αναθέτοντας τα απαραίτητα δικαιώματα στη διαχειριζόμενη ταυτότητα [1].
2. Η εξομοίωση της διαχειριζόμενης ταυτότητας σε τοπικό επίπεδο: μια άλλη προσέγγιση είναι να μιμηθεί την υπηρεσία Azure Managed Identity σε τοπικό επίπεδο εκτελώντας μια υπηρεσία μεταδεδομένων Mock Instance. Αυτό συνεπάγεται την προσομοίωση του API Token για την επιστροφή ενός διακριτικού πρόσβασης, συνήθως χρησιμοποιώντας τα διαπιστευτήρια Azure CLI. Αυτή η μέθοδος σάς επιτρέπει να δοκιμάσετε κώδικα που χρησιμοποιεί διαχειριζόμενες ταυτότητες χωρίς να τις έχετε στην τοπική μηχανή σας [3].
3. Χρησιμοποιώντας το DefaultaZureCredential: Για τα περισσότερα σενάρια ανάπτυξης, συνιστάται η χρήση `defaultazurecredential`. Αυτή η πιστοποίηση προσπαθεί αυτόματα διάφορες μεθόδους ελέγχου ταυτότητας, όπως το Visual Studio, το Azure CLI και το Azure AD ολοκληρωμένο έλεγχο ταυτότητας, για την επαλήθευση της εφαρμογής σας σε τοπικό επίπεδο. Παρόλο που δεν χρησιμοποιεί άμεσα τις διαχειριζόμενες ταυτότητες, παρέχει μια παρόμοια εμπειρία απρόσκοπτης ταυτότητας [5] [7].
Συνοπτικά, ενώ οι ίδιες οι ταυτότητες δεν μπορούν να χρησιμοποιηθούν απευθείας σε ένα τοπικό περιβάλλον, μπορείτε είτε να τις μιμήσετε είτε να χρησιμοποιήσετε εναλλακτικές μεθόδους ελέγχου ταυτότητας όπως το `defaultazurecredential 'για την τοπική ανάπτυξη.
Αναφορές:
[1] https://www.foxdeploy.com/blog/how-to-migrate-an-azure-function-app-to-us-a-maged-identity.html
[2] https://stackoverflow.com/questions/67845857/can-a-user-assigned-ganaged-identity-be-wocally
[3] https://gist.github.com/maskati/e0d74330dcf15848b043825cf6b2f8b7
[4] https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview-for-dovelopers
[5] https://www.reddit.com/r/azure/comments/1cilud6/managed_identities_and_local_developer_experience/
[6] https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/how-manage-user-assigned-ganaged-identies
[7] https://stackoverflow.com/questions/75930046/how-to-run-azure-function-locally-using-user-assigned-ganaged-identity-configura
[8] https://www.codemag.com/article/2107041/eliminate-secrets-from-your-pplications-with-azure-managed-identity
[9] https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity