Autenticare le app JavaScript nei servizi di Azure durante lo sviluppo locale usando account per sviluppatori

Quando si creano applicazioni cloud, gli sviluppatori devono eseguire il debug e il test delle applicazioni nella workstation locale. Quando un'applicazione viene eseguita nella workstation di uno sviluppatore durante lo sviluppo locale, deve comunque eseguire l'autenticazione a tutti i servizi di Azure usati dall'app. Questo articolo illustra come usare le credenziali di Azure di uno sviluppatore per autenticare l'app in Azure durante lo sviluppo locale.

Diagramma che mostra un'app di sviluppo locale che esegue il recupero di un'entità servizio da un file con estensione env e l'uso di tale identità per connettersi alle risorse di Azure.

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 dall'estensione Strumenti di Azure di Visual Studio Code, dall'interfaccia della riga di comando di Azure o da Azure PowerShell. Azure SDK per JavaScript è in grado di rilevare che lo sviluppatore ha eseguito l'accesso da uno di questi strumenti e quindi ottenere le credenziali necessarie dalla cache delle credenziali per autenticare l'app in Azure come utente connesso.

Questo approccio è più semplice da configurare per un team di sviluppo perché sfrutta gli account Azure esistenti degli sviluppatori. Tuttavia, l'account di uno sviluppatore avrà probabilmente più autorizzazioni rispetto a quelle richieste dall'applicazione, superando quindi le autorizzazioni eseguite dall'app nell'ambiente di produzione. In alternativa, è possibile creare entità servizio dell'applicazione da usare durante lo sviluppo locale definite con un ambito limitato al'accesso necessario per l'app.

1 - Creare un gruppo Microsoft Entra per lo sviluppo locale

Poiché ci sono quasi sempre più sviluppatori che lavorano su un'applicazione, è consigliabile creare prima un gruppo Di Entra di Microsoft per incapsulare i ruoli (autorizzazioni) necessari per l'app nello sviluppo locale. Questo offre i vantaggi seguenti:

  • Ogni sviluppatore ha la certezza di avere gli stessi ruoli assegnati perché i ruoli vengono assegnati a livello di gruppo.
  • Se è necessario un nuovo ruolo per l'app, deve essere aggiunto solo al gruppo Microsoft Entra per l'app.
  • Se un nuovo sviluppatore si aggiunge al team, deve semplicemente essere aggiunto al gruppo Microsoft Entra corretto per ottenere le autorizzazioni corrette per lavorare sull'app.

Se si dispone di un gruppo di Microsoft Entra esistente per il team di sviluppo, è possibile usare tale gruppo. In caso contrario, completare la procedura seguente per creare un gruppo di Microsoft Entra.

Istruzioni Schermata
Passare alla pagina MICROSOFT Entra ID nella portale di Azure digitando Microsoft Entra ID nella casella di ricerca nella parte superiore della pagina e quindi selezionando Microsoft Entra ID da in servizi. Screenshot che mostra come usare la barra di ricerca superiore nel portale di Azure per cercare e passare alla pagina Microsoft Entra ID.
Nella pagina Microsoft Entra ID, selezionare Gruppi dal menu a sinistra. Screenshot che mostra la posizione della voce di menu Gruppi nel menu a sinistra della pagina Directory predefinita di Microsoft Entra ID.
Nella pagina Tutti i gruppi, selezionare Nuovo gruppo. Screenshot che mostra la posizione del pulsante Nuovo gruppo nella pagina Tutti i gruppi.
Nella pagina Nuovo gruppo:
  1. Tipo di gruppo → Sicurezza.
  2. Nome gruppo → Un nome per il gruppo di sicurezza, in genere creato dal nome dell'applicazione. È anche utile includere una stringa come local-dev nel nome del gruppo per indicare lo scopo del gruppo.
  3. Descrizione del gruppo → Una descrizione dello scopo del gruppo.
  4. Selezionare il collegamento Nessun membro selezionato in Membri per aggiungere membri al gruppo.
Screenshot che mostra come creare un nuovo gruppo di Microsoft Entra. Il percorso del collegamento da selezionare per aggiungere membri a questo gruppo è evidenziato.
Nella finestra di dialogo Aggiungi membri:
  1. Usare la casella di ricerca per filtrare l'elenco di nomi utente nell'elenco.
  2. Scegliere uno o più utenti per lo sviluppo locale per questa app. Quando si sceglie un oggetto, l'oggetto viene spostato nell'elenco Elementi selezionati nella parte inferiore della finestra di dialogo.
  3. Al termine, scegliere il pulsante Seleziona.
Screenshot della finestra di dialogo Aggiungi membri che mostra come selezionare gli account sviluppatore da includere nel gruppo.
Nella pagina Nuovo gruppo, selezionare Crea per creare il gruppo.

Il gruppo verrà creato e si tornerà alla pagina Tutti i gruppi. La visualizzazione del gruppo potrebbe richiedere fino a 30 secondi e potrebbe essere necessario aggiornare la pagina a causa della memorizzazione nella cache nel portale di Azure.
Screenshot della pagina Nuovo gruppo che mostra come completare il processo selezionando il pulsante Crea.

2 - Assegnare ruoli al gruppo di Microsoft Entra

Successivamente, è necessario determinare i ruoli (autorizzazioni) necessari per l'app in base alle risorse e assegnare tali ruoli all'app. In questo esempio i ruoli vengono assegnati al gruppo di Microsoft Entra creato nel passaggio 1. I ruoli possono essere assegnati a una risorsa, a gruppo di risorse o a una sottoscrizione. Questo esempio illustra come assegnare ruoli nell'ambito del gruppo di risorse perché la maggior parte delle applicazioni raggruppa tutte le risorse di Azure in un singolo gruppo di risorse.

Istruzioni Schermata
Individuare il gruppo di risorse per l'applicazione cercando il nome del gruppo di risorse usando la casella di ricerca nella parte superiore del portale di Azure.

Passare al gruppo di risorse selezionando il nome del gruppo di risorse nell'intestazione Gruppi di risorse della finestra di dialogo.
Screenshot che mostra come usare la casella di ricerca superiore nel portale di Azure per individuare e passare al gruppo di risorse a cui assegnare ruoli (autorizzazioni).
Nella pagina del gruppo di risorse selezionare Controllo di accesso (IAM) nel menu a sinistra. Screenshot della pagina del gruppo di risorse che mostra la posizione della voce di menu Controllo di accesso (IAM).
Nella pagina Controllo di accesso (IAM):
  1. Selezionare la scheda Assegnazioni di ruolo.
  2. Selezionare + Aggiungi nel menu in alto e quindi Aggiungi assegnazione di ruolo nel menu a discesa risultante.
Screenshot che mostra come passare alla scheda Assegnazioni di ruolo e alla posizione del pulsante usato per aggiungere assegnazioni di ruolo a un gruppo di risorse.
Nella pagina Aggiungi assegnazione di ruolo sono elencati tutti i ruoli che è possibile assegnare per il gruppo di risorse.
  1. Usare la casella di ricerca per filtrare l'elenco in modo da renderlo più gestibile. Questo esempio illustra come filtrare i ruoli di BLOB del servizio di archiviazione.
  2. Selezionare il ruolo che si vuole assegnare.
    Selezionare Avanti per passare alla schermata successiva.
Screenshot che mostra come filtrare e selezionare le assegnazioni di ruolo da aggiungere al gruppo di risorse.
La pagina Aggiungi assegnazione di ruolo successiva consente di specificare a quale utente assegnare il ruolo.
  1. Selezionare Utente, gruppo o servizio principale in Assegnazione dell'accesso a .
  2. Selezionare + Selezionare membri in Membri
Viene aperta una finestra di dialogo sul lato destro del portale di Azure.
Screenshot che mostra il pulsante di opzione da selezionare per assegnare un ruolo a un gruppo Microsoft Entra e il collegamento usato per selezionare il gruppo a cui assegnare il ruolo.
Nella finestra di dialogo Seleziona membri:
  1. La casella di testo Seleziona può essere usata per filtrare l'elenco di utenti e gruppi nella sottoscrizione. Se necessario, digitare i primi caratteri del gruppo di Microsoft Entra di sviluppo locale creato per l'app.
  2. Selezionare il gruppo Microsoft Entra di sviluppo locale associato all'applicazione.
Selezionare Seleziona nella parte inferiore della finestra di dialogo per continuare.
Screenshot che mostra come filtrare e selezionare il gruppo Microsoft Entra per l'applicazione nella finestra di dialogo Seleziona membri.
Il gruppo Microsoft Entra viene ora visualizzato come selezionato nella schermata Aggiungi assegnazione di ruolo.

Selezionare Rivedi e assegna per passare alla pagina finale e quindi Rivedi e assegna di nuovo per completare il processo.
Screenshot che mostra la pagina Aggiungi assegnazione di ruolo completata e il percorso del pulsante Rivedi e assegna usato per completare il processo.

3 - Accedere ad Azure usando VS Code, l'interfaccia della riga di comando di Azure o Azure PowerShell

Aprire un terminale nella workstation per sviluppatori e accedere ad Azure da Azure PowerShell.

Connect-AzAccount

4 - Implementare DefaultAzureCredential nell'applicazione

Per autenticare gli oggetti client di Azure SDK in Azure, l'applicazione deve usare la DefaultAzureCredential classe del @azure/identity pacchetto. In questo scenario, DefaultAzureCredential verificherà in sequenza se lo sviluppatore ha eseguito l'accesso ad Azure usando l'estensione strumenti di Azure di VS Code, l'interfaccia della riga di comando di Azure o Azure PowerShell. Se lo sviluppatore ha eseguito l'accesso ad Azure usando uno di questi strumenti, le credenziali usate per accedere allo strumento verranno usate dall'app per l'autenticazione in Azure.

Per iniziare, aggiungere il pacchetto di @azure/identità all'applicazione.

npm install @azure/identity

Successivamente, per qualsiasi codice JavaScript che crea un oggetto client azure SDK nell'app, è necessario:

  1. Importare la DefaultAzureCredential classe dal @azure/identity modulo.
  2. Creare un oggetto DefaultAzureCredential.
  3. Passare l'oggetto al costruttore dell'oggetto DefaultAzureCredential client di Azure SDK.

Un esempio è illustrato nel segmento di codice seguente.

import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';

// Acquire a credential object
const tokenCredential = DefaultAzureCredential();

const blobServiceClient = BlobServiceClient(
        `https://${accountName}.blob.core.windows.net`,
        tokenCredential
);

DefaultAzureCredential rileverà automaticamente il meccanismo di autenticazione configurato per l'app e otterrà i token necessari per autenticare l'app in Azure. Se un'applicazione usa più client SDK, è possibile usare lo stesso oggetto credenziale con ogni oggetto client SDK.