Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Durante lo sviluppo locale, le applicazioni devono eseguire l'autenticazione per Azure per accedere a vari servizi Azure. È possibile eseguire l'autenticazione in locale usando uno degli approcci seguenti:
- Usare un account per sviluppatore con uno degli strumenti di sviluppo supportati dalla libreria di identità Azure. Per ulteriori informazioni, consultare Autenticare le applicazioni Java ai servizi di Azure durante lo sviluppo locale utilizzando account sviluppatore.
- Usare un'entità servizio.
Questo articolo spiega come usare un principale del servizio applicativo. Per ulteriori informazioni sui principal di servizio, vedere Applicazione e oggetti degli entità servizio in Microsoft Entra ID. Contenuto dell'articolo:
- Come registrare un'applicazione con Microsoft Entra per creare un'entità servizio.
- Come usare i gruppi di Microsoft Entra per gestire in modo efficiente le autorizzazioni.
- Come assegnare ruoli alle autorizzazioni di ambito.
- Come eseguire l'autenticazione usando un'entità servizio dal codice dell'app.
L'uso di principali servizio dedicati consente di seguire il principio dei privilegi minimi quando si accede alle risorse di Azure. Puoi limitare le autorizzazioni ai requisiti specifici dell'app durante lo sviluppo per impedire l'accesso accidentale alle risorse Azure destinate ad altre app o servizi. Questo approccio consente anche di evitare problemi quando si sposta l'app nell'ambiente di produzione assicurandosi che non sia con privilegi elevati nell'ambiente di sviluppo.
Un diagramma che illustra come un'app Java locale usa un'entità servizio per connettersi a risorse di Azure.
Quando si registra l'app in Azure, viene creato un service principal dell'applicazione. Per lo sviluppo locale, è necessario:
- Creare una registrazione dell'applicazione separata per ogni sviluppatore che lavora sull'applicazione in modo che ogni sviluppatore abbia una propria entità servizio dell'applicazione e senza dover condividere le credenziali.
- Creare una registrazione dell'app separata per ogni app per limitare le autorizzazioni dell'app solo a ciò che è necessario.
Durante lo sviluppo locale, impostare le variabili di ambiente con l'identità dell'entità servizio dell'applicazione. La libreria di identità Azure legge queste variabili di ambiente per autenticare l'app nelle risorse Azure necessarie.
Registrare l'app in Azure
Gli oggetti entità servizio dell'applicazione vengono creati tramite una registrazione dell'app in Azure usando il portale di Azure o interfaccia della riga di comando di Azure.
Nel portale di Azure usare la barra di ricerca per passare alla pagina Registrazioni app.
Nella pagina Registrazioni app selezionare + Nuova registrazione.
Nella pagina Registrare un'applicazione:
- Per il campo Nome immettere un valore descrittivo che include il nome dell'app e l'ambiente di destinazione.
- Per i tipi di account supportati , selezionare Account solo in questa directory organizzativa (solo Microsoft Customer Led - tenant singolo), o l'opzione che più risponde alle proprie necessità.
Selezionare Registra per registrare l'app e creare l'entità servizio.
Uno screenshot
Nella pagina registrazione app per l'app copiare l'ID applicazione (client) e ID directory (tenant) e incollarli in un percorso temporaneo per usarli in un secondo momento nelle configurazioni del codice dell'app.
Selezionare Aggiungi un certificato o un segreto per configurare le credenziali per l'app.
Nella pagina Certificati & segreti, seleziona + Nuovo segreto del client.
Nel pannello a comparsa Aggiungi un client segreto che si apre:
- Per la Descrizione, immettere un valore current.
- Per il valore Scadenza di , lasciare il valore predefinito consigliato di 180 giorni.
- Selezionare Aggiungere per aggiungere il segreto.
Nella pagina certificati & segreti copiare la proprietà valore del segreto client da usare in un passaggio futuro.
Annotazioni
Il valore del segreto client viene visualizzato una sola volta dopo la creazione della registrazione dell'app. È possibile aggiungere altri segreti client senza invalidare questo segreto client, ma non è possibile visualizzare di nuovo questo valore.
Creare un gruppo di Microsoft Entra per lo sviluppo locale
Creare un gruppo Microsoft Entra per incapsulare i ruoli (autorizzazioni) necessari per l'app nello sviluppo locale, piuttosto che assegnare i ruoli a singoli oggetti principali del servizio. Questo approccio offre i vantaggi seguenti:
- Ogni sviluppatore ha gli stessi ruoli assegnati a livello di gruppo.
- Se è necessario un nuovo ruolo per l'app, è sufficiente aggiungerlo al gruppo per l'app.
- Se un nuovo sviluppatore si aggiunge al team, viene creata una nuova entità servizio dell'applicazione per lo sviluppatore e aggiunta al gruppo, assicurando che lo sviluppatore disponga delle autorizzazioni appropriate per lavorare sull'app.
Passare alla pagina di panoramica Microsoft Entra ID nel portale di Azure.
Selezionare Tutti i gruppi dal menu a sinistra.
Nella pagina Gruppi selezionare Nuovo gruppo.
Nella pagina Nuovo gruppo, compila i seguenti campi del modulo:
- Tipo di gruppo: selezionare Sicurezza.
- Nome gruppo: immettere un nome per il gruppo che include un riferimento al nome dell'app o dell'ambiente.
- Descrizione gruppo: immettere una descrizione che spiega lo scopo del gruppo.
Uno screenshot che mostra come creare un gruppo nel portale di Azure.
Selezionare il collegamento Nessun membro selezionato in Membri per aggiungere membri al gruppo.
Nel pannello fluttuante che si apre, cercare il service principal creato in precedenza e selezionarlo nei risultati filtrati. Scegliere il pulsante Seleziona nella parte inferiore del pannello per confermare la selezione.
Selezionare Crea nella parte inferiore della pagina Nuovo gruppo per creare il gruppo e tornare alla pagina Tutti i gruppi . Se il nuovo gruppo non è elencato, attendere un attimo e aggiornare la pagina.
Assegnare ruoli al gruppo
Determinare quindi i ruoli (autorizzazioni) necessari per le risorse necessarie per l'app e assegnare tali ruoli al gruppo di Microsoft Entra creato. Ai gruppi può essere assegnato un ruolo nell'ambito della risorsa, del gruppo di risorse o della sottoscrizione. Questo esempio illustra come assegnare ruoli nell'ambito del gruppo di risorse, poiché la maggior parte delle app raggruppa tutte le risorse Azure in un singolo gruppo di risorse.
Nel portale di Azure passare alla pagina Panoramica del gruppo di risorse che contiene l'app.
Selezionare Access control (IAM) dal menu di navigazione a sinistra.
Nella pagina Controllo di accesso (IAM) selezionare + Aggiungi e quindi scegliere Aggiungi assegnazione di ruolo dal menu a discesa. Nella pagina Aggiungi assegnazione di ruolo sono disponibili diverse schede per configurare e assegnare ruoli.
Nella scheda Ruolo usare la casella di ricerca per individuare il ruolo da assegnare. Selezionare il ruolo e quindi scegliere Avanti.
Nella scheda Membri :
- Per il valore Assegna l'accesso a, selezionare Utente, gruppo o entità servizio.
- Per il valore Membri scegliere + Seleziona membri per aprire il pannello a comparsa Seleziona membri .
- Cercare il gruppo di Microsoft Entra creato in precedenza e selezionarlo nei risultati filtrati. Scegliere Selezionare per selezionare il gruppo e chiudere il pannello a comparsa.
- Selezionare Rivedi e assegna nella parte inferiore della scheda Membri .
Nella scheda Rivedi e assegna selezionare Rivedi e assegna nella parte inferiore della pagina.
Impostare le variabili di ambiente dell'app
In fase di esecuzione, alcune credenziali della libreria Azure Identity
Indipendentemente dall'approccio scelto, configurare le seguenti variabili di ambiente per un service principal:
-
AZURE_CLIENT_ID: usato per identificare l'app registrata in Azure. -
AZURE_TENANT_ID: ID del tenant di Microsoft Entra. - : credenziali segrete generate per l'app.
- Bash
- Visual Studio Code
- IntelliJ IDEA
Aggiungi le righe seguenti al tuo file o . Sostituire i valori segnaposto con i valori effettivi della registrazione dell'app:
export AZURE_CLIENT_ID="<your-client-id>"
export AZURE_TENANT_ID="<your-tenant-id>"
export AZURE_CLIENT_SECRET="<your-client-secret>"
Dopo aver modificato il file, eseguire o applicare le modifiche alla sessione corrente.
Autenticarsi ai servizi di Azure dalla tua app
La libreria Azure Identity fornisce varie credentials: implementazioni di TokenCredential che supportano diversi scenari e flussi di autenticazione Microsoft Entra. I passaggi seguenti illustrano come usare ClientSecretCredential quando si usano principali del servizio localmente e in produzione.
Implementare il codice
Aggiungere la dipendenza al file:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
È possibile accedere ai servizi Azure usando classi client specializzate dalle varie librerie client di Azure SDK. Per qualsiasi codice Java che crea un oggetto client Azure SDK nell'app, seguire questa procedura:
- Importare la classe dal pacchetto.
- Creare un oggetto usando con , e .
- Passare l'istanza di
ClientSecretCredentialal metodocredentialdel generatore di oggetti client Azure SDK.
Un esempio di questo approccio è illustrato nel segmento di codice seguente:
import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.BlobServiceClientBuilder;
String tenantId = System.getenv("AZURE_TENANT_ID");
String clientId = System.getenv("AZURE_CLIENT_ID");
String clientSecret = System.getenv("AZURE_CLIENT_SECRET");
ClientSecretCredential credential = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build();
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<account-name>.blob.core.windows.net")
.credential(credential)
.buildClient();
Passaggi successivi
Questo articolo ha illustrato l'autenticazione tramite un'entità servizio. Questa forma di autenticazione è uno dei molti modi in cui è possibile eseguire l'autenticazione nel Azure SDK per Java. Gli articoli seguenti descrivono altri modi per eseguire l'autenticazione:
- Autenticare le app Java ai servizi di Azure durante lo sviluppo locale utilizzando account sviluppatore
- Autenticare le app Java ospitate su Azure alle risorse di Azure utilizzando un'identità gestita assegnata dal sistema
- Autentica le app Java ospitate su Azure alle risorse di Azure utilizzando un'identità gestita assegnata dall'utente
Se si verificano problemi relativi all'autenticazione dell'entità servizio, vedere Risolvere i problemi di autenticazione dell'entità servizio.
Dopo l'autenticazione master, vedere Configurare la registrazione nella Azure SDK per Java per informazioni sulle funzionalità di registrazione fornite dall'SDK.
