Autenticare le app .NET nei servizi di Azure durante lo sviluppo locale usando gli 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 VS Code, dall'interfaccia della riga di comando di Azure o da Azure PowerShell. Azure SDK per .NET è 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, pertanto il superamento delle autorizzazioni che l'app verrà eseguita con nell'ambiente di produzione. In alternativa, è possibile creare entità servizio dell'applicazione da usare durante lo sviluppo locale che possono essere definite come ambito per avere solo l'accesso necessario per l'app.
1 - Creare un gruppo di Azure AD per lo sviluppo locale
Poiché esistono quasi sempre più sviluppatori che lavorano su un'applicazione, è consigliabile creare prima un gruppo di Azure AD 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 di Azure AD per l'app.
- Se un nuovo sviluppatore si aggiunge al team, è sufficiente aggiungerlo al gruppo di Azure AD corretto per ottenere le autorizzazioni corrette per lavorare nell'app.
Se si dispone di un gruppo di Azure AD esistente per il team di sviluppo, è possibile usare tale gruppo. In caso contrario, completare la procedura seguente per creare un gruppo di Azure AD.
2 - Assegnare i ruoli al gruppo Azure AD
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 verranno assegnati al gruppo di Azure Active Directory 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 i ruoli a livello di gruppo di risorse perché la maggior parte delle applicazioni raggruppa tutte le risorse di Azure in un unico gruppo di risorse.
3 - Accedere ad Azure con gli strumenti .NET
Successivamente è necessario accedere ad Azure usando una delle diverse opzioni di strumenti .NET. L'account a cui si accede deve esistere anche nel gruppo di Azure Active Directory creato e configurato in precedenza.
- Visual Studio
- Estensione Strumenti di Azure di VISUAL Studio Code
- Interfaccia della riga di comando di Azure
- Azure PowerShell
Nel menu in alto di Visual Studio passare a Strumenti>Opzioni per aprire la finestra di dialogo opzioni. Nella barra di ricerca in alto a sinistra digitare Azure per filtrare le opzioni. In Autenticazione del servizio di Azure, scegliere Selezione account.
Selezionare il menu a discesa in Scegliere un account e scegliere di aggiungere un account Microsoft. Verrà aperta una finestra che richiede di selezionare un account. Immettere le credenziali per l'account Azure desiderato e quindi selezionare la conferma.
4 - Implementare DefaultAzureCredential nell'applicazione
DefaultAzureCredential
supporta più metodi di autenticazione e determina il metodo di autenticazione usato in fase di esecuzione. In questo modo, l'app può usare metodi di autenticazione diversi in ambienti diversi senza implementare codice specifico dell'ambiente.
L'ordine e le posizioni in cui DefaultAzureCredential
cerca le credenziali sono disponibili in DefaultAzureCredential.
Per implementare DefaultAzureCredential
, aggiungere prima di tutto il pacchetto Azure.Identity
e facoltativamente i pacchetti Microsoft.Extensions.Azure
all'applicazione. A tale scopo, è possibile usare la riga di comando o Gestione pacchetti NuGet.
Aprire l'ambiente terminale desiderato nella directory del progetto dell'applicazione e immettere il comando seguente.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
I servizi di Azure sono in genere accessibili usando le classi client corrispondenti dall'SDK. Queste classi e i propri servizi personalizzati devono essere registrati nel file Program.cs
in modo da poter essere accessibili tramite l'inserimento delle dipendenze in tutta l'app. All'interno di Program.cs
, seguire questa procedura per configurare correttamente il servizio e DefaultAzureCredential
.
- Includere gli spazi dei nomi
Azure.Identity
eMicrosoft.Extensions.Azure
con un'istruzione using. - Registrare il servizio di Azure usando i metodi helper pertinenti.
- Passare un'istanza dell'oggetto
DefaultAzureCredential
al metodoUseCredential
.
Un esempio è illustrato nel segmento di codice seguente.
using Microsoft.Extensions.Azure;
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
x.UseCredential(new DefaultAzureCredential());
});
In alternativa, è anche possibile usare DefaultAzureCredential
nei servizi più direttamente senza l'aiuto di altri metodi di registrazione di Azure, come illustrato di seguito.
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Quando il codice precedente viene eseguito nella workstation locale durante lo sviluppo locale, cercherà nelle variabili di ambiente un'entità servizio dell'applicazione o in Visual Studio, VS Code, nell'interfaccia della riga di comando di Azure o in Azure PowerShell un set di credenziali per sviluppatori, che possono essere usate per autenticare l'app nelle risorse di Azure durante lo sviluppo locale.
Quando distribuito in Azure, lo stesso codice può anche autenticare l'app in altre risorse di Azure. DefaultAzureCredential
può recuperare automaticamente le impostazioni dell'ambiente e le configurazioni dell'identità gestita per l'autenticazione automatica in altri servizi.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per