I test le identità gestite in un ambiente locale non sono semplici perché le identità gestite sono progettate principalmente per l'uso all'interno delle risorse di Azure. Tuttavia, ci sono modi per simulare o emulare le identità gestite a livello locale:
1. Iscrizione all'arco di Azure: è possibile iscrivere la macchina locale in Azure ARC, che consente di assegnare un'identità gestita alla macchina. Questa può essere un'identità gestita assegnata dal sistema o assegnata dall'utente. Una volta iscritti, è possibile testare le identità gestite a livello locale assegnando le autorizzazioni necessarie all'identità gestita [1].
2. Emulare l'identità gestita a livello locale: un altro approccio è quello di emulare il servizio di identità gestito azzurro a livello locale eseguendo un servizio di metadati di istanza finta. Ciò comporta la simulazione dell'API token per restituire un token di accesso, in genere utilizzando credenziali di Azure CLI. Questo metodo consente di testare il codice che utilizza le identità gestite senza effettivamente averle sulla macchina locale [3].
3. Utilizzo di defaultAzureCredential: per la maggior parte degli scenari di sviluppo, si consiglia l'utilizzo di `defaultazureCredential`. Questa credenziale prova automaticamente vari metodi di autenticazione, tra cui Visual Studio, Azure CLI e Azure AD Integrated Authentication, per autenticare l'applicazione a livello locale. Pur non utilizzando direttamente le identità gestite, fornisce un'esperienza di autenticazione senza soluzione di continuità [5] [7].
In sintesi, mentre le identità gestite stesse non possono essere utilizzate direttamente in un ambiente locale, è possibile emularli o utilizzare metodi di autenticazione alternativi come `DefaultAzureCredential` per lo sviluppo locale.
Citazioni:
[1] https://www.foxdeploy.com/blog/how-to-migrate-an-azure-function-app-to-use-a-managed-Identity.html
[2] https://stackoverflow.com/questions/67845857/can-a-user-assigned-managed-Identity-be-used-locally
[3] https://gist.github.com/maskati/e0d74330dcf15848b043825cf6b2f8b7
[4] https://learn.microsoft.com/en-us/entra/identaty/managed-identaties-azure-resources/overview-for-developers
[5] https://www.reddit.com/r/azure/comments/1cilud6/managed_idendaties_and_local_developer_experience/
[6] https://learn.microsoft.com/en-us/entra/identaty/managed-identitities-azure-resources/how-manage-user-assigned-managed-identities
[7] https://stackoverflow.com/questions/75930046/how-to-razure-function--locally-using-user-assigned-managed-identity-configura
[8] https://www.codemag.com/article/2107041/eliminate-secrets-from-your-applications-with-azure-managed-Identity
[9] https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity