Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Durante lo sviluppo locale, le applicazioni devono eseguire l'autenticazione in Azure per accedere a vari servizi di Azure. Due approcci comuni per l'autenticazione locale sono l'uso di un'entità servizio o l'uso di un account per sviluppatore. Questo articolo illustra come usare un account per sviluppatore. Nelle sezioni seguenti si apprenderà:
- Come usare i gruppi di Microsoft Entra per gestire in modo efficiente le autorizzazioni per più account per sviluppatori
- Come assegnare ruoli agli account per sviluppatori per le autorizzazioni di ambito
- Come accedere agli strumenti di sviluppo locali supportati
- Come eseguire l'autenticazione usando un account sviluppatore dal codice dell'app
Affinché un'app esegua l'autenticazione in Azure durante lo sviluppo locale usando le credenziali di Azure dello sviluppatore, lo sviluppatore deve accedere ad Azure da uno degli strumenti di sviluppo seguenti:
- Azure CLI
- CLI per sviluppatori di Azure
- Azure PowerShell
La libreria di identità di Azure può rilevare che lo sviluppatore ha eseguito l'accesso da uno di questi strumenti. La libreria può quindi ottenere il token di accesso di Microsoft Entra tramite lo strumento per autenticare l'app in Azure come utente connesso.
Questo approccio sfrutta gli account Azure esistenti dello sviluppatore per semplificare il processo di autenticazione. Tuttavia, l'account di uno sviluppatore ha probabilmente più autorizzazioni rispetto a quelle richieste dall'app, quindi supera le autorizzazioni eseguite dall'app nell'ambiente di produzione. In alternativa, è possibile creare principali di servizio dell'applicazione da usare durante lo sviluppo locale, che possono essere limitati per avere solo l'accesso necessario dall'app.
Creare un gruppo Microsoft Entra per lo sviluppo locale
Creare un gruppo Microsoft Entra per incapsulare i ruoli (autorizzazioni) necessari per lo sviluppo locale dell'app, anziché assegnare i ruoli a singoli oggetti principali del servizio. Questo approccio offre i vantaggi seguenti:
- Ogni sviluppatore ha gli stessi ruoli assegnati a livello di gruppo.
- Se è necessario un nuovo ruolo per l'app, è sufficiente aggiungerlo al gruppo per l'app.
- Se un nuovo sviluppatore si aggiunge al team, viene creata una nuova entità servizio dell'applicazione per lo sviluppatore e aggiunta al gruppo, assicurando che lo sviluppatore disponga delle autorizzazioni appropriate per lavorare sull'app.
Passare alla pagina di panoramica di Microsoft Entra ID nel portale di Azure.
Selezionare Tutti i gruppi dal menu a sinistra.
Nella pagina Gruppi selezionare Nuovo gruppo.
Nella pagina Nuovo gruppo compilare i campi modulo seguenti:
- Tipo di gruppo: selezionare Sicurezza.
- Nome gruppo: immettere un nome per il gruppo che include un riferimento al nome dell'app o dell'ambiente.
- Descrizione gruppo: immettere una descrizione che spiega lo scopo del gruppo.
Selezionare il collegamento Nessun membro selezionato in Membri per aggiungere membri al gruppo.
Nel pannello fluttuante che si apre, cercare il service principal creato in precedenza e selezionarlo nei risultati filtrati. Scegliere il pulsante Seleziona nella parte inferiore del pannello per confermare la selezione.
Selezionare Crea nella parte inferiore della pagina Nuovo gruppo per creare il gruppo e tornare alla pagina Tutti i gruppi . Se il nuovo gruppo non è elencato, attendere un attimo e aggiornare la pagina.
Assegnare ruoli al gruppo
Successivamente, determinare i ruoli (autorizzazioni) necessari per l'app in base alle risorse e assegnare tali ruoli al gruppo Microsoft Entra creato. Ai gruppi può essere assegnato un ruolo nell'ambito della risorsa, del gruppo di risorse o della sottoscrizione. Questo esempio illustra come assegnare ruoli nell'ambito del gruppo di risorse, poiché la maggior parte delle app raggruppa tutte le risorse di Azure in un singolo gruppo di risorse.
Nel portale di Azure passare alla pagina Panoramica del gruppo di risorse che contiene l'app.
Selezionare Controllo di Accesso (IAM) dalla navigazione a sinistra.
Nella pagina Controllo di accesso (IAM) selezionare + Aggiungi e quindi scegliere Aggiungi assegnazione di ruolo dal menu a discesa. Nella pagina Aggiungi assegnazione di ruolo sono disponibili diverse schede per configurare e assegnare ruoli.
Nella scheda Ruolo usare la casella di ricerca per individuare il ruolo da assegnare. Selezionare il ruolo e quindi scegliere Avanti.
Nella scheda Membri :
- Per il valore Assegna l'accesso a, selezionare Utente, gruppo o entità servizio.
- Per il valore Membri scegliere + Seleziona membri per aprire il pannello a comparsa Seleziona membri .
- Cercare il gruppo Microsoft Entra creato in precedenza e selezionarlo nei risultati filtrati. Scegliere Seleziona per selezionare il gruppo e chiudere il pannello a comparsa.
- Selezionare Rivedi e assegna nella parte inferiore della scheda Membri .
Nella scheda Rivedi e assegna selezionare Rivedi e assegna nella parte inferiore della pagina.
Accedere ad Azure con gli strumenti per sviluppatori
Accedere quindi ad Azure usando uno dei diversi strumenti di sviluppo che possono essere usati per eseguire l'autenticazione nell'ambiente di sviluppo. L'account autenticato deve esistere anche nel gruppo Microsoft Entra creato e configurato in precedenza.
Gli sviluppatori possono usare l'interfaccia della riga di comando di Azure per eseguire l'autenticazione con Microsoft Entra ID. Le app che usano DefaultAzureCredential o AzureCliCredential possono quindi usare questo account per autenticare le richieste di app durante l'esecuzione in locale.
Per eseguire l'autenticazione con l'interfaccia della riga di comando di Azure, eseguire il az login comando . In un sistema con un Web browser predefinito, l'interfaccia della riga di comando di Azure avvia il browser per autenticare l'utente.
az login
Per i sistemi senza un Web browser predefinito, il comando az login usa il flusso di autenticazione del codice del dispositivo. L'utente può anche forzare l'interfaccia della riga di comando di Azure a usare il flusso del codice del dispositivo anziché avviare un browser specificando l'argomento --use-device-code.
az login --use-device-code
Eseguire l'autenticazione ai servizi di Azure dall'app
La libreria di identità di Azure fornisce varie credenziali, ovvero implementazioni di adattate al supporto di diversi scenari e flussi di TokenCredential autenticazione di Microsoft Entra. I passaggi successivi illustrano come usare DefaultAzureCredential quando si lavora con gli account utente in locale.
Implementare il codice
DefaultAzureCredential è una sequenza ordinata e mirata di meccanismi per autenticarsi in Microsoft Entra ID. Ogni meccanismo di autenticazione è una classe derivata dalla classe TokenCredential ed è nota come credenziale. In fase di esecuzione tenta DefaultAzureCredential di eseguire l'autenticazione usando la prima credenziale. Se tale credenziale non riesce ad acquisire un token di accesso, viene tentata la credenziale successiva nella sequenza e così via finché non viene ottenuto un token di accesso correttamente. In questo modo, l'app può usare credenziali diverse in ambienti diversi senza scrivere codice specifico dell'ambiente.
Per usare DefaultAzureCredential, aggiungere i pacchetti di @azure/identity all'applicazione. In un terminale di propria scelta passare alla directory del progetto dell'applicazione ed eseguire il comando seguente:
npm install @azure/identity
È possibile accedere ai servizi di Azure usando classi client specializzate dalle varie librerie client di Azure SDK. Queste classi e i propri servizi personalizzati devono essere registrati in modo che possano essere accessibili in tutta l'app. Completare i passaggi a livello di codice seguenti per creare una classe client e DefaultAzureCredential:
- Importare il pacchetto
@azure/identity. - Creare il client del servizio di Azure e passarvi una nuova istanza di
DefaultAzureCredential.
import { DefaultAzureCredential } from "@azure/identity";
import { SomeAzureServiceClient } from "@azure/arm-some-service";
const client = new SomeAzureServiceClient(new DefaultAzureCredential());