Dela via


Autentisera Java-appar mot Azure-tjänster under lokal utveckling, genom att använda utvecklarkonton

Under lokal utveckling måste applikationer autentisera sig mot Azure för att få åtkomst till olika Azure-tjänster. Du kan autentisera lokalt med någon av följande metoder:

Den här artikeln beskriver hur du autentiserar med hjälp av ett utvecklarkonto med verktyg som stöds av Azure Identity-biblioteket. I den här artikel får du lära dig om:

  • Så här använder du Microsoft Entra grupper för att effektivt hantera behörigheter för flera utvecklarkonton.
  • Så här tilldelar du roller till utvecklarkonton för att begränsa behörigheter.
  • Logga in på lokala utvecklingsverktyg som stöds.
  • Autentisera med hjälp av ett utvecklarkonto från din appkod.

Utvecklarverktyg som stöds för autentisering

Under lokal utveckling kan en app autentiseras mot Azure med dina Azure-referenser. För att den här autentiseringen ska fungera måste du vara inloggad för att Azure från ett utvecklarverktyg, till exempel något av följande:

  • Azure CLI
  • Azure Developer CLI
  • Azure PowerShell
  • Visual Studio Code
  • IntelliJ IDEA

Det Azure identitetsbiblioteket kan identifiera att utvecklaren är inloggad från något av dessa verktyg. Biblioteket kan sedan hämta Microsoft Entra åtkomsttoken via verktyget för att autentisera appen till Azure som den inloggade användaren.

Den här metoden utnyttjar utvecklarens befintliga Azure konton för att effektivisera autentiseringsprocessen. Ett utvecklarkonto har dock sannolikt fler behörigheter än vad appen kräver, vilket innebär att appen överskrider de behörigheter som appen körs med i produktion. Alternativt kan du skapa tjänstehuvudkonton för applikationer för användning under lokal utveckling, som kan begränsas till att ha endast den åtkomst som appen behöver.

Skapa en Microsoft Entra grupp för lokal utveckling

Skapa en Microsoft Entra-grupp för att kapsla in de roller (behörigheter) som appen behöver i lokal utveckling i stället för att tilldela rollerna till enskilda tjänsthuvudobjekt. Den här metoden erbjuder följande fördelar:

  • Varje utvecklare har samma roller tilldelade på gruppnivå.
  • Om en ny roll behövs för appen behöver den bara läggas till i gruppen för appen.
  • Om en ny utvecklare ansluter till teamet skapas ett nytt huvudnamn för programtjänsten för utvecklaren och läggs till i gruppen, vilket säkerställer att utvecklaren har rätt behörighet att arbeta med appen.
  1. Gå till översiktssidan Microsoft Entra ID i Azure-portalen.

  2. Välj Alla grupper på den vänstra menyn.

  3. På sidan Grupper väljer du Ny grupp.

  4. På sidan Ny grupp fyller du i följande formulärfält:

    • Grupptyp: Välj Säkerhet.
    • Gruppnamn: Ange ett namn för gruppen som innehåller en referens till appens eller miljöns namn.
    • Gruppbeskrivning: Ange en beskrivning som förklarar syftet med gruppen.

    En skärmbild som visar hur du skapar en grupp i Azure portal.

  5. Välj länken Inga medlemmar har valts under Medlemmar för att lägga till medlemmar i gruppen.

  6. I den utfällbara panelen som öppnas söker du efter tjänstens huvudnamn som du skapade tidigare och väljer det från de filtrerade resultaten. Välj knappen Välj längst ned i panelen för att bekräfta ditt val.

  7. Välj Skapa längst ned på sidan Ny grupp för att skapa gruppen och återgå till sidan Alla grupper . Om du inte ser den nya gruppen i listan väntar du en stund och uppdaterar sidan.

Tilldela roller till gruppen

Bestäm sedan vilka roller (behörigheter) din app behöver på vilka resurser och tilldela dessa roller till den Microsoft Entra grupp som du skapade. Grupper kan tilldelas en roll på resurs-, resursgrupps- eller prenumerationsnivå. Det här exemplet visar hur du tilldelar roller i resursgruppens omfång, eftersom de flesta appar grupperar alla sina Azure resurser i en enda resursgrupp.

  1. I Azure-portalen går du till sidan Overview i resursgruppen som innehåller din app.

  2. Välj Åtkomstkontroll (IAM) i det vänstra navigeringsfältet.

  3. På sidan Åtkomstkontroll (IAM) väljer du + Lägg till och väljer sedan Lägg till rolltilldelning i den nedrullningsbara menyn. Sidan Lägg till rolltilldelning innehåller flera flikar för att konfigurera och tilldela roller.

  4. På fliken Roll använder du sökrutan för att hitta den roll som du vill tilldela. Välj rollen och välj sedan Nästa.

  5. På fliken Medlemmar:

    • För värdet Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn .
    • För värdet Medlemmar väljer du + Välj medlemmar för att öppna den utfällbara panelen Välj medlemmar .
    • Sök efter den Microsoft Entra grupp som du skapade tidigare och välj den från de filtrerade resultaten. Välj Välj för att välja gruppen och stäng den utfällbara panelen.
    • Välj Granska + tilldela längst ned på fliken Medlemmar .

    En skärmbild som visar hur du tilldelar en roll till Microsoft Entra group.

  6. På fliken Granska + tilldela väljer du Granska + tilldela längst ned på sidan.

Logga in på Azure med hjälp av utvecklarverktyg

Logga sedan in på Azure med något av de utvecklarverktyg som du kan använda för att utföra autentisering i utvecklingsmiljön. Det konto som du autentiserar bör också finnas i den Microsoft Entra grupp som du skapade och konfigurerade tidigare.

Utvecklare som använder Visual Studio Code kan autentisera sig med sitt utvecklarkonto direkt i redigeraren via mellanhanden. Appar som använder DefaultAzureCredential eller VisualStudioCodeCredential sedan kan använda det här kontot för att autentisera appbegäranden via en sömlös upplevelse med enkel inloggning.

  1. I Visual Studio Code går du till panelen Extensions och installerar tillägget Azure Resources. Med det här tillägget kan du visa och hantera Azure resurser direkt från Visual Studio Code. Den använder också den inbyggda Visual Studio Code Microsoft-autentiseringsprovidern för att autentisera med Azure.

    Screenshot som visar Azure Resources extension.

  2. Öppna kommandopaletten i Visual Studio Code och sök sedan efter och välj Azure: Logga in.

    Screenshot som visar hur du loggar in på Azure i Visual Studio Code.

    Tips/Råd

    Öppna kommandopaletten med Ctrl+Shift+P på Windows/Linux eller Cmd+Shift+P på macOS.

Autentisera mot Azure-tjänster från din app

I Azure Identity Library finns implementeringar av TokenCredential som stöder olika scenarier och Microsoft Entra autentiseringsflöden. Följande steg visar hur du använder DefaultAzureCredential eller en specifik autentiseringsuppgift för utvecklingsverktyg när du arbetar med användarkonton lokalt.

Implementera koden

  1. Lägg till azure-identity-beroendet i din pom.xml-fil:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
    </dependency>
    
  2. Välj en av implementeringarna för autentiseringsuppgifter baserat på ditt scenario.

Använda en specifik autentiseringsuppgift för ditt utvecklingsverktyg

Skicka en TokenCredential-instans som motsvarar ett specifikt utvecklingsverktyg till Azure-tjänstklientkonstruktorn, till exempel AzureCliCredential.

import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

AzureCliCredential credential = new AzureCliCredentialBuilder().build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Varje verktygsautentiseringsuppgifter följer samma mönster. Ersätt autentiseringstypen och dess motsvarande byggare efter behov:

  • AzureCliCredential / AzureCliCredentialBuilder
  • AzureDeveloperCliCredential / AzureDeveloperCliCredentialBuilder
  • AzurePowerShellCredential / AzurePowerShellCredentialBuilder
  • IntelliJCredential / IntelliJCredentialBuilder
  • VisualStudioCodeCredential / VisualStudioCodeCredentialBuilder

Använda en tillgänglig autentiseringsuppgift för användning i alla utvecklingsverktyg

Använd en DefaultAzureCredential instans som är optimerad för alla lokala utvecklingsverktyg. Det här exemplet kräver att miljövariabeln AZURE_TOKEN_CREDENTIALS är inställd på dev. Mer information finns i Exkludera en kategori av autentiseringsuppgifter.

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
    .build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Nästa steg

Den här artikeln beskriver autentisering under utvecklingen med hjälp av autentiseringsuppgifter som är tillgängliga på datorn. 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 i utvecklingsmiljön kan du läsa Felsöka autentisering i utvecklingsmiljön.

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