Autenticazione di Azure con credenziali utente

Questo articolo illustra in che modo la libreria di identità di Azure supporta l'autenticazione del token Microsoft Entra con le credenziali fornite dall'utente. Questo supporto è reso possibile tramite un set di implementazioni tokenCredential descritte in questo articolo.

Questo articolo illustra gli argomenti seguenti:

Per la risoluzione dei problemi di autenticazione delle credenziali utente, vedere Risolvere i problemi di autenticazione delle credenziali utente.

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:

  1. Passare a Microsoft Entra ID in portale di Azure e trovare la registrazione dell'app.
  2. Passare alla sezione Autenticazione .
  3. In URI reindirizzati suggeriti controllare l'URI che termina con /common/oauth2/nativeclient.
  4. In Tipo di client predefinito selezionare yes per Treat application as a public client.

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, ad esempio Key Vault.

È 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 dei segreti di Azure Key Vault per Java usando in DeviceCodeCredential un dispositivo IoT.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about 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

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .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 password nome utente

Consente UsernamePasswordCredential di autenticare un'applicazione client pubblica usando le credenziali utente che non richiedono l'autenticazione a più fattori. L'esempio seguente illustra l'autenticazione SecretClient dalla libreria client azure-security-keyvault-secrets usando .UsernamePasswordCredential L'utente non deve avere l'autenticazione a più fattori attivata.

/**
 * Authenticate with username, password.
 */
UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredentialBuilder()
    .clientId("<your app client ID>")
    .username("<your username>")
    .password("<your password>")
    .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(usernamePasswordCredential)
    .buildClient();

Per altre informazioni, vedere Microsoft Identity Platform e Credenziali della password del proprietario della risorsa OAuth 2.0.

Passaggi successivi

Questo articolo ha illustrato l'autenticazione con le credenziali utente. 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:

Se si verificano problemi relativi all'autenticazione delle credenziali utente, vedere Risolvere i problemi di autenticazione delle credenziali utente.

Dopo aver eseguito l'autenticazione master, vedere Configurare la registrazione in Azure SDK per Java per informazioni sulle funzionalità di registrazione fornite dall'SDK.