Condividi tramite


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:

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

Includere il azure-sdk-bom nel progetto per aggiungere una dipendenza dalla versione stabile della libreria. Nel frammento di codice seguente sostituire il segnaposto {bom_version_to_target} con il numero di versione. Per ulteriori informazioni sul BOM, consultare la sezione Aggiungere Azure SDK per Java a un progetto esistente di Introduzione ad Azure SDK e Apache Maven.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Includere quindi la dipendenza diretta nella dependencies sezione senza il tag di versione:

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
  </dependency>
</dependencies>

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 TokenCredential in azure-core, e puoi usarle per costruire client del servizio che possono autenticarsi con un 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 dimostra come autenticare SecretClient utilizzando la libreria client azure-security-keyvault-secrets con 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 seguente comando Azure CLI per ottenere gli ID di 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. È stato descritto DefaultAzureCredential 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: