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.
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.
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.
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:
- Importare la
DefaultAzureCredential
classe dal@azure/identity
modulo. - Creare un oggetto
DefaultAzureCredential
. - 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.