Condividi tramite


Autenticare le app Python ai servizi di Azure utilizzando la libreria di identità di Azure

Le app possono usare la libreria delle identità Azure per eseguire l'autenticazione a Microsoft Entra ID, che consente alle app di accedere ai servizi e alle risorse Azure. Questo requisito di autenticazione si applica se l'app viene distribuita in Azure, ospitata in locale o in esecuzione in locale in una workstation per sviluppatori. Le sezioni precedenti descrivono gli approcci consigliati per autenticare un'app per Microsoft Entra ID in ambienti diversi quando si usano le librerie client Azure SDK.

L'autenticazione basata su token tramite Microsoft Entra ID è l'approccio consigliato per l'autenticazione delle app da Azure, anziché usare stringhe di connessione o opzioni basate su chiavi. La libreria di identità Azure fornisce classi che supportano l'autenticazione basata su token e consentono alle app di eseguire l'autenticazione per Azure risorse indipendentemente dal fatto che l'app venga eseguita in locale, in Azure o in un server locale.

Vantaggi dell'autenticazione basata su token

L'autenticazione basata su token offre i vantaggi seguenti rispetto alle stringhe di connessione:

  • L'autenticazione basata su token garantisce che solo le app specifiche destinate ad accedere alla risorsa Azure possano farlo, mentre chiunque o qualsiasi app con un connection string possa connettersi a una risorsa Azure.
  • L'autenticazione basata su token consente di limitare ulteriormente Azure accesso alle risorse solo alle autorizzazioni specifiche necessarie per l'app. Questo segue il principio dei privilegi minimi. Al contrario, un connection string concede diritti completi alla risorsa Azure.
  • Quando si usa un'identità managed identity per l'autenticazione basata su token, Azure gestisce automaticamente le funzioni amministrative, pertanto non è necessario preoccuparsi di attività come la protezione o la rotazione dei segreti. In questo modo l'app è più sicura perché non sono presenti connection string o segreti dell'applicazione che possono essere compromessi.
  • La libreria di identità Azure acquisisce e gestisce automaticamente i token Microsoft Entra.

L'uso delle stringhe di connessione deve essere limitato agli scenari in cui l'autenticazione basata su token non è un'opzione, app di verifica iniziali o prototipi di sviluppo che non accedono a dati sensibili o di produzione. Quando possibile, usare le classi di autenticazione basate su token disponibili nella libreria delle identità di Azure per eseguire l'autenticazione per Azure risorse.

Autenticazione in ambienti diversi

Il tipo specifico di autenticazione basata su token che un'app deve usare per eseguire l'autenticazione per Azure risorse dipende dalla posizione in cui viene eseguita l'app. Il diagramma seguente fornisce indicazioni per diversi scenari e ambienti:

Diagramma che mostra le strategie di autenticazione basate su token consigliate per un'app a seconda della posizione in cui è in esecuzione.

Quando un'app è:

  • Hosted in Azure: l'app deve eseguire l'autenticazione per Azure risorse usando un'identità gestita. Questa opzione è illustrata in modo più dettagliato in autenticazione negli ambienti server.
  • Esecuzione locale durante lo sviluppo: l'app può eseguire l'autenticazione per Azure usando un account sviluppatore, un broker o un'entità principal. Ogni opzione viene illustrata in modo più dettagliato nell'autenticazione durante lo sviluppo locale.
  • Ospitato in locale: l'app deve eseguire l'autenticazione per le risorse Azure usando un principal del servizio applicativo o un'identità gestita nel caso di Azure Arc. I flussi di lavoro locali vengono illustrati in modo più dettagliato in Autenticazione per le app ospitate in locale.

Autenticazione per le app ospitate Azure

Quando l'app è ospitata in Azure, può usare le identità gestite per l'autenticazione per Azure risorse senza dover gestire le credenziali. Esistono due tipi di identità gestite: assegnate dall'utente e assegnate dal sistema.

Usare un'identità gestita assegnata dall'utente

Un'identità gestita assegnata dall'utente viene creata come risorsa autonoma Azure. Può essere assegnato a una o più risorse Azure, consentendo a tali risorse di condividere la stessa identità e le stesse autorizzazioni. Per eseguire l'autenticazione usando un'identità gestita assegnata dall'utente, creare l'identità, assegnarla alla risorsa Azure e quindi configurare l'app per usare questa identità per l'autenticazione specificando l'ID client, l'ID risorsa o l'ID oggetto.

Usare un'identità gestita assegnata dal sistema

Un'identità gestita assegnata dal sistema è abilitata direttamente in una risorsa Azure. L'identità è associata al ciclo di vita della risorsa e viene eliminata automaticamente quando la risorsa viene eliminata. Per eseguire l'autenticazione usando un'identità gestita assegnata dal sistema, abilitare l'identità nella risorsa Azure e quindi configurare l'app per l'uso di questa identità per l'autenticazione.

Autenticazione durante lo sviluppo locale

Durante lo sviluppo locale, è possibile eseguire l'autenticazione alle risorse di Azure usando le credenziali dello sviluppatore o un principale del servizio. In questo modo è possibile testare la logica di autenticazione dell'app senza distribuirla in Azure.

Usare le credenziali per sviluppatori

È possibile usare le proprie credenziali di Azure per eseguire l'autenticazione per Azure risorse durante lo sviluppo locale. Questa operazione viene in genere eseguita usando uno strumento di sviluppo, ad esempio Azure CLI o Visual Studio Code, che può fornire all'app i token necessari per accedere ai servizi di Azure. Questo metodo è pratico, ma deve essere usato solo a scopo di sviluppo.

Usare un broker

L'autenticazione negoziata raccoglie le credenziali utente usando il broker di autenticazione di sistema per autenticare un'app. Un broker di autenticazione di sistema viene eseguito nel computer di un utente e gestisce gli handshake di autenticazione e la manutenzione dei token per tutti gli account connessi.

Usare un'entità servizio

Un principale del servizio viene creato in un tenant Microsoft Entra per rappresentare un'app e da usare per l'autenticazione alle risorse di Azure. È possibile configurare l'applicazione per utilizzare le credenziali dell'account principale del servizio durante lo sviluppo locale. Questo metodo è più sicuro rispetto all'uso delle credenziali dello sviluppatore e si avvicina al modo in cui l'app eseguirà l'autenticazione nell'ambiente di produzione. Tuttavia, è ancora meno ideale rispetto all'uso di un'identità gestita a causa della necessità di segreti.

Autenticazione per le app ospitate in locale

Per le app ospitate in locale, è possibile usare un'entità servizio per eseguire l'autenticazione alle risorse di Azure. Ciò comporta la creazione di un'entità servizio in Microsoft Entra ID, l'assegnazione delle autorizzazioni necessarie e la configurazione dell'app per l'uso delle credenziali. Questo metodo consente all'app locale di accedere in modo sicuro ai servizi Azure.