Autenticazione di Azure con Java e Identità di Azure
Questo articolo offre una panoramica della libreria di identità di Azure per Java, 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:
- Autenticazione di Azure in ambienti di sviluppo Java, che abilita:
- Autenticazione IDEA IntelliJ, con le informazioni di accesso recuperate da Azure Toolkit for IntelliJ.
- Autenticazione dell'interfaccia della riga di comando di Azure, con le informazioni di accesso salvate nell'interfaccia della riga di comando di Azure
- Autenticazione dell'interfaccia della riga di comando per sviluppatori di Azure, con le informazioni di accesso salvate nell'interfaccia della riga di comando per sviluppatori di Azure
- Autenticazione di Azure PowerShell, con le informazioni di accesso salvate in Azure PowerShell
- Autenticazione di applicazioni ospitate in Azure, che abilita:
DefaultAzureCredential
- Autenticazione dell'identità gestita
- Autenticazione con entità servizio, che abilita:
- Autenticazione del segreto client
- Autenticazione con certificato client
- Autenticazione con credenziali utente, che abilita:
- Autenticazione interattiva del browser
- Autenticazione con codice del dispositivo
- Autenticazione con nome utente/password
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 di 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 DefaultAzureCredential di 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
: