Azure-autentisering med användarautentiseringsuppgifter

Den här artikeln beskriver hur Azure Identity-biblioteket stöder Microsoft Entra-tokenautentisering med användarangivna autentiseringsuppgifter. Det här stödet möjliggörs genom en uppsättning TokenCredential-implementeringar som beskrivs i den här artikeln.

Den här artikeln beskriver följande ämnen:

Felsökning av problem med autentisering av användarautentiseringsuppgifter finns i Felsöka autentisering med användarautentiseringsuppgifter.

Autentiseringsuppgifter för enhetskod

Enhetskodens autentiseringsuppgifter autentiserar interaktivt en användare på enheter med begränsat användargränssnitt. Det fungerar genom att uppmana användaren att besöka en inloggnings-URL på en webbläsaraktiverad dator när programmet försöker autentisera. Användaren anger sedan enhetskoden som anges i anvisningarna tillsammans med deras inloggningsuppgifter. Vid lyckad autentisering autentiseras programmet som begärde autentisering på den enhet som körs på.

Mer information finns i Microsofts identitetsplattform och beviljandeflödet för OAuth 2.0-enhetsauktorisering.

Aktivera program för enhetskodflöde

Använd följande steg för att autentisera en användare via enhetskodflödet:

  1. Gå till Microsoft Entra-ID i Azure-portalen och leta reda på din appregistrering.
  2. Gå till avsnittet Autentisering .
  3. Under Föreslagna omdirigerade URI:er kontrollerar du den URI som slutar med /common/oauth2/nativeclient.
  4. Under Standardklienttyp väljer du yes för Treat application as a public client.

De här stegen gör det möjligt för programmet att autentisera, men det har fortfarande inte behörighet att logga in dig på Microsoft Entra-ID eller komma åt resurser för din räkning. Du kan åtgärda det här problemet genom att gå till API-behörigheter och aktivera Microsoft Graph och de resurser som du vill komma åt, till exempel Key Vault.

Du måste också vara administratör för din klientorganisation för att bevilja ditt program medgivande när du loggar in för första gången.

Om du inte kan konfigurera alternativet för enhetskodflöde i ditt Microsoft Entra-ID kan det kräva att din app är flera klientorganisationer. Om du vill göra din app till flera klientorganisationer går du till panelen Autentisering och väljer sedan Konton i valfri organisationskatalog. Välj sedan Ja för Behandla programmet som offentlig klient.

Autentisera ett användarkonto med enhetskodflöde

I följande exempel visas autentisera SecretClient från Azure Key Vault Secret-klientbiblioteket för Java med hjälp av DeviceCodeCredential på en IoT-enhet.

/**
 * 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();

Autentiseringsuppgifter för interaktiv webbläsare

Den här autentiseringsuppgiften autentiserar en användare interaktivt med standardwebbläsaren och ger en smidig autentiseringsupplevelse genom att låta dig använda dina egna autentiseringsuppgifter för att autentisera ditt program.

Aktivera program för OAuth 2-flöde för interaktiv webbläsare

Om du vill använda InteractiveBrowserCredentialmåste du registrera ett program i Microsoft Entra-ID med behörighet att logga in för en användares räkning. Följ föregående steg för enhetskodflöde för att registrera ditt program. Som tidigare nämnts måste en administratör för din klientorganisation bevilja medgivande till ditt program innan något användarkonto kan logga in.

Du kanske märker i InteractiveBrowserCredentialBuilder, en omdirigerings-URL krävs. Lägg till omdirigerings-URL:en till underavsnittet Omdirigerings-URI:er under avsnittet Autentisering i ditt registrerade Microsoft Entra-program.

Autentisera ett användarkonto interaktivt i webbläsaren

I följande exempel visas hur du autentiserar SecretClient från klientbiblioteket azure-security-keyvault-secrets med hjälp av 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();

Autentiseringsuppgifter för användarnamn

Hjälper till att autentisera UsernamePasswordCredential ett offentligt klientprogram med hjälp av användarautentiseringsuppgifter som inte kräver multifaktorautentisering. I följande exempel visas hur du autentiserar SecretClient från klientbiblioteket azure-security-keyvault-secrets med hjälp av UsernamePasswordCredential. Användaren får inte ha multifaktorautentisering aktiverat.

/**
 * 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();

Mer information finns i Microsofts identitetsplattform och autentiseringsuppgifter för OAuth 2.0-resursägares lösenord.

Nästa steg

I den här artikeln beskrivs autentisering med användarautentiseringsuppgifter. Den här typen av autentisering är ett av flera sätt som du kan autentisera i Azure SDK för Java. Följande artiklar beskriver andra sätt:

Om du stöter på problem som rör autentisering med användarautentiseringsuppgifter kan du läsa Felsöka autentisering med användarautentiseringsuppgifter.

När du har bemästrat autentiseringen kan du läsa Konfigurera loggning i Azure SDK för Java för information om de loggningsfunktioner som tillhandahålls av SDK:t.