Autenticazione di Azure con Java e Identità di Azure

Questo articolo offre una panoramica della libreria java di identità di Azure, che fornisce il supporto per l'autenticazione dei token di Microsoft Entra in Azure SDK per Java. Questa libreria fornisce un set di TokenCredential implementazioni che è possibile usare per costruire client Azure SDK che supportano l'autenticazione del token Microsoft Entra.

La libreria di identità di Azure supporta attualmente:

Seguire questi collegamenti per altre informazioni sulle specifiche di ognuno di questi approcci di autenticazione. Nel resto di questo articolo vengono presentati i soggetti comunemente usati DefaultAzureCredential e correlati.

Aggiungere le dipendenze Maven

Per aggiungere la dipendenza Maven, includere il codice XML seguente nel file pom.xml del progetto. Sostituire {version_number} con il numero di versione stabile più recente, come illustrato nella pagina della libreria di identità di Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{version_number}</version>
</dependency>

Concetti chiave

Esistono due concetti chiave per comprendere la libreria di identità di Azure: il concetto di credenziale e l'implementazione più comune di tale credenziale, DefaultAzureCredential.

Una credenziale è una classe che contiene o può ottenere i dati necessari per l'autenticazione delle richieste da parte di un client del servizio. I client di servizio in Azure SDK accettano le credenziali quando vengono costruiti e i client del servizio usano tali credenziali per autenticare le richieste al servizio.

La libreria di identità di Azure è incentrata sull'autenticazione OAuth con MICROSOFT Entra ID e offre varie classi di credenziali che possono acquisire un token Microsoft Entra per autenticare le richieste di servizio. Tutte le classi di credenziali in questa libreria sono implementazioni della classe astratta in azure-core ed è possibile usarle per costruire client del servizio che possono eseguire l'autenticazione TokenCredential con .TokenCredential

DefaultAzureCredential è appropriato per la maggior parte degli scenari in cui l'applicazione deve essere eseguita in definitiva nel cloud di Azure. DefaultAzureCredential combina le credenziali comunemente usate per l'autenticazione durante la distribuzione, con le credenziali usate per l'autenticazione in un ambiente di sviluppo. Per altre informazioni, inclusi esempi che usano DefaultAzureCredential, vedere la sezione Credenziali predefinite di Azure in Autenticazione di applicazioni Java ospitate in Azure.

Esempi

Come indicato in Usare Azure SDK per Java, le librerie di gestione differiscono leggermente. Uno dei modi in cui differiscono è che esistono librerie per l'utilizzo dei servizi di Azure, denominate librerie client e librerie per la gestione dei servizi di Azure, denominate librerie di gestione. Nelle sezioni seguenti è disponibile una rapida panoramica dell'autenticazione nelle librerie client e di gestione.

Autenticare le librerie client di Azure

L'esempio seguente illustra l'autenticazione SecretClient dalla libreria client azure-security-keyvault-secrets usando DefaultAzureCredential.

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(new DefaultAzureCredentialBuilder().build())
  .buildClient();

Autenticare le librerie di gestione di Azure

Le librerie di gestione di Azure usano le stesse API delle credenziali delle librerie client di Azure, ma richiedono anche un ID sottoscrizione di Azure per gestire le risorse di Azure in tale sottoscrizione.

È possibile trovare gli ID sottoscrizione nella pagina Sottoscrizioni nel portale di Azure. In alternativa, usare il comando seguente dell'interfaccia della riga di comando di Azure per ottenere gli ID sottoscrizione:

az account list --output table

È possibile impostare l'ID sottoscrizione nella AZURE_SUBSCRIPTION_ID variabile di ambiente. AzureProfile seleziona questo ID come ID sottoscrizione predefinito durante la creazione di un'istanza Manager nell'esempio seguente:

AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE))
    .withDefaultSubscription();

DefaultAzureCredential usato in questo esempio autentica un'istanza AzureResourceManager usando DefaultAzureCredential. È anche possibile usare altre implementazioni delle credenziali dei token offerte nella libreria di identità di Azure al posto di DefaultAzureCredential.

Risoluzione dei problemi

Per indicazioni, vedere Risolvere i problemi di autenticazione di Identità di Azure.

Passaggi successivi

Questo articolo ha introdotto la funzionalità identità di Azure disponibile in Azure SDK per Java. DefaultAzureCredential Descritto come comune e appropriato in molti casi. Gli articoli seguenti descrivono altri modi per eseguire l'autenticazione usando la libreria di identità di Azure e forniscono altre informazioni su DefaultAzureCredential: