Autenticazione di Azure in ambienti di sviluppo Java
Questo articolo offre una panoramica del supporto della libreria di identità di Azure per l'autenticazione del token Microsoft Entra. Questo supporto abilita l'autenticazione per le applicazioni in esecuzione in locale nei computer per sviluppatori tramite un set di TokenCredential
implementazioni.
Questo articolo illustra gli argomenti seguenti:
- Credenziali del codice del dispositivo
- Credenziali interattive del browser
- Credenziali dell'interfaccia della riga di comando di Azure
- Credenziali intelliJ
Per la risoluzione dei problemi di autenticazione dell'ambiente di sviluppo, vedere Risolvere i problemi di autenticazione dell'ambiente di sviluppo.
Credenziali del codice del dispositivo
La credenziale del codice del dispositivo autentica in modo interattivo un utente nei dispositivi con interfaccia utente limitata. Funziona richiedendo all'utente di visitare un URL di accesso in un computer abilitato al browser quando l'applicazione tenta di eseguire l'autenticazione. L'utente immette quindi il codice del dispositivo indicato nelle istruzioni insieme alle credenziali di accesso. Al termine dell'autenticazione, l'applicazione che ha richiesto l'autenticazione viene autenticata correttamente nel dispositivo in cui è in esecuzione.
Per altre informazioni, vedere Microsoft Identity Platform e il flusso di concessione delle autorizzazioni per dispositivi OAuth 2.0.
Abilitare le applicazioni per il flusso di codice del dispositivo
Per autenticare un utente tramite il flusso del codice del dispositivo, seguire questa procedura:
- Passare a Microsoft Entra ID nel portale di Azure e trovare la registrazione dell'app.
- Passare alla sezione Autenticazione .
- In URI reindirizzati suggeriti controllare l'URI che termina con
/common/oauth2/nativeclient
. - In Tipo di client predefinito selezionare Sì per Considera applicazione come client pubblico.
Questi passaggi consentono all'applicazione di eseguire l'autenticazione, ma non dispone ancora dell'autorizzazione necessaria per accedere all'ID Microsoft Entra o accedere alle risorse per conto dell'utente. Per risolvere questo problema, passare a Autorizzazioni API e abilitare Microsoft Graph e le risorse a cui si vuole accedere.
È anche necessario essere l'amministratore del tenant per concedere il consenso all'applicazione quando si accede per la prima volta.
Se non è possibile configurare l'opzione del flusso di codice del dispositivo nell'ID Microsoft Entra, potrebbe essere necessario che l'app sia multi-tenant. Per rendere l'app multi-tenant, passare al pannello Autenticazione e quindi selezionare Account in qualsiasi directory organizzativa. Selezionare quindi sì per Considera applicazione come client pubblico.
Autenticare un account utente con il flusso del codice del dispositivo
L'esempio seguente illustra l'autenticazione SecretClient
dalla libreria client azure-security-keyvault-secrets usando in DeviceCodeCredential
un dispositivo IoT.
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
.challengeConsumer(challenge -> {
// lets user know of the challenge
System.out.println(challenge.getMessage());
}).build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(deviceCodeCredential)
.buildClient();
Credenziali interattive del browser
Questa credenziale autentica in modo interattivo un utente con il browser di sistema predefinito e offre un'esperienza di autenticazione senza problemi consentendo di usare le proprie credenziali per autenticare l'applicazione.
Abilitare le applicazioni per il flusso OAuth 2 interattivo del browser
Per usare InteractiveBrowserCredential
, è necessario registrare un'applicazione in Microsoft Entra ID con autorizzazioni per accedere per conto di un utente. Seguire i passaggi precedenti per il flusso del codice del dispositivo per registrare l'applicazione. Come accennato in precedenza, un amministratore del tenant deve concedere il consenso all'applicazione prima che qualsiasi account utente possa accedere.
È possibile notare che in InteractiveBrowserCredentialBuilder
è necessario un URL di reindirizzamento. Aggiungere l'URL di reindirizzamento alla sottosezione URI di reindirizzamento nella sezione Autenticazione dell'applicazione Microsoft Entra registrata.
Autenticare un account utente in modo interattivo nel browser
L'esempio seguente illustra l'autenticazione SecretClient
dalla libreria client azure-security-keyvault-secrets usando .InteractiveBrowserCredential
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
.clientId("<your client ID>")
.redirectUrl("http://localhost:8765")
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(interactiveBrowserCredential)
.buildClient();
Credenziali dell'interfaccia della riga di comando di Azure
Le credenziali dell'interfaccia della riga di comando di Azure eseguono l'autenticazione in un ambiente di sviluppo con l'utente o l'entità servizio abilitata nell'interfaccia della riga di comando di Azure. Usa l'interfaccia della riga di comando di Azure in base a un utente che ha già eseguito l'accesso e usa l'interfaccia della riga di comando per autenticare l'applicazione in Base all'ID Microsoft Entra.
Accedere all'interfaccia della riga di comando di Azure per AzureCliCredential
Accedere come utente con il comando seguente dell'interfaccia della riga di comando di Azure :
az login
Accedere come entità servizio usando il comando seguente:
az login \
--service-principal \
--username <client-ID> \
--password <client-secret> \
--tenant <tenant-ID>
Se l'account o l'entità servizio ha accesso a più tenant, verificare che il tenant o la sottoscrizione desiderata sia nello stato "Abilitato" nell'output del comando seguente:
az account list
Prima di usare AzureCliCredential
nel codice, eseguire il comando seguente per verificare che l'account sia stato configurato correttamente.
az account get-access-token
Potrebbe essere necessario ripetere questo processo dopo un determinato periodo di tempo, a seconda della validità del token di aggiornamento nell'organizzazione. In genere, il periodo di validità del token di aggiornamento è di alcune settimane a pochi mesi.
AzureCliCredential
richiede di eseguire di nuovo l'accesso.
Autenticare un account utente con l'interfaccia della riga di comando di Azure
L'esempio seguente illustra l'autenticazione SecretClient
dalla libreria client azure-security-keyvault-secrets usando in una workstation con l'interfaccia della riga di comando di Azure installata e eseguita l'accessoAzureCliCredential
.
AzureCliCredential cliCredential = new AzureCliCredentialBuilder().build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(cliCredential)
.buildClient();
Credenziali intelliJ
La credenziale IntelliJ esegue l'autenticazione in un ambiente di sviluppo con l'account in Azure Toolkit for IntelliJ. Usa le informazioni utente che hanno eseguito l'accesso nell'IDE di IntelliJ e le usa per autenticare l'applicazione in Base all'ID Microsoft Entra.
Accedere ad Azure Toolkit for IntelliJ for IntelliJCredential
Per eseguire l'accesso, seguire questa procedura:
- Nella finestra di IntelliJ aprire > impostazioni > file.
- Cercare "Azure Toolkit for IntelliJ" nel marketplace. Installare e riavviare l'IDE.
- Trovare la nuova voce di menu Strumenti > per l'accesso ad Azure >
-
L'account di accesso del dispositivo consente di accedere come account utente. Seguire le istruzioni per accedere al
login.microsoftonline.com
sito Web con il codice del dispositivo. IntelliJ richiede di selezionare le sottoscrizioni. Selezionare la sottoscrizione con le risorse a cui si vuole accedere.
Autenticare un account utente con IntelliJ IDEA
L'esempio seguente illustra l'autenticazione SecretClient
dalla libreria client azure-security-keyvault-secrets usando in IntelliJCredential
una workstation in cui è installato IntelliJ IDEA e l'utente ha eseguito l'accesso con un account Azure al Toolkit di Azure per IntelliJ.
IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(intelliJCredential)
.buildClient();
Passaggi successivi
Questo articolo ha illustrato l'autenticazione durante lo sviluppo usando le credenziali disponibili nel computer. Questa forma di autenticazione è uno dei diversi modi in cui è possibile eseguire l'autenticazione in Azure SDK per Java. Gli articoli seguenti descrivono altri modi:
- Autenticazione di applicazioni ospitate in Azure
- Autenticazione con entità servizio
- Autenticazione con credenziali utente
Se si verificano problemi relativi all'autenticazione dell'ambiente di sviluppo, vedere Risolvere i problemi di autenticazione dell'ambiente di sviluppo.
Dopo aver eseguito l'autenticazione master, vedere Configurare la registrazione in Azure SDK per Java per informazioni sulle funzionalità di registrazione fornite dall'SDK.