Autentisera Batch Management-lösningar med Microsoft Entra ID

Program som anropar Azure Batch Management-tjänsten autentiseras med Microsoft Entra ID, Microsoft molnbaserad katalog- och identitetshanteringstjänst för flera klienter. Azure använder Microsoft Entra ID för att autentisera sina kunder, tjänstadministratörer och organisationsanvändare.

Det rekommenderade sättet att autentisera Batch-hanteringsappar är att använda klientbiblioteket Azure Identity tillsammans med Azure. ResourceManager.Batch hanteringsbibliotek. I Azure Identity-biblioteket finns tokenbaserade autentiseringsklasser (till exempel DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential och InteractiveBrowserCredential) som fungerar konsekvent oavsett om appen körs lokalt, på Azure eller lokalt. En översikt över rekommenderade autentiseringsstrategier finns i Authenticate .NET apps to Azure services using the Azure Identity library.

Biblioteket Azure.ResourceManager.Batch visar typer för hantering av Batch-konton, kontonycklar, program och programpaket. Det är en Azure resursproviderklient och fungerar tillsammans med Azure Resource Manager för att hantera dessa resurser programmatiskt. Microsoft Entra ID krävs för att autentisera begäranden som görs via alla Azure resursproviderklienter, inklusive det här biblioteket.

Note

Det äldre Microsoft.Azure.Management.Batch-paketet och ADAL-baserade kodmönster (AuthenticationContext.AcquireToken) är inaktuella. Ny kod ska använda Azure.ResourceManager.Batch med Azure.Identity autentiseringsuppgifter.

Mer information om hur du använder Batch Management .NET-biblioteket finns i Hantera Batch-konton och kvoter med Batch Management-klientbiblioteket för .NET.

Registrera ett program (valfritt)

Om du behöver registrera en separat Microsoft Entra program beror på vilken typ av autentiseringsuppgifter du använder:

  • Om du använder DefaultAzureCredential och loggar in via ett utvecklarverktyg (Azure CLI, Azure PowerShell, Visual Studio eller Visual Studio Code), eller om appen körs på en Azure resurs med en hanterad identitet, behöver du inte registrera ett separat program. Autentiseringsuppgifterna använder den identitet som redan har konfigurerats i den miljön.
  • Om din app autentiserar sig som ett tjänsthuvudnamn (till exempel med ClientSecretCredential eller ClientCertificateCredential) måste du registrera en applikation i din Microsoft Entra-klientorganisation.

Om du vill registrera ett program följer du stegen i Quickstart: Registrera ett program med Microsofts identitetsplattform. När registreringen är klar tillhandahåller Microsoft Entra ID ett program-ID (klient-ID) som du använder under körning. Mer information finns i Program- och tjänsthuvudnamnsobjekt i Microsoft Entra-ID.

Tilldela Azure RBAC-behörigheter

När du har bestämt vilken identitet din app använder (ett utvecklarkonto, en hanterad identitet eller ett huvudnamn för tjänsten) tilldelar du den identiteten Azure rollbaserad åtkomstkontrollbehörighet (RBAC) som krävs för resursgruppen eller prenumerationen där du hanterar Batch-konton. Vanliga inbyggda roller är Contributor, Azure Batch Account Contributor och Reader.

Anvisningar finns i Tilldela Azure roller med hjälp av Azure-portalen.

Autentisera med Azure-identitetsbiblioteket

Med Azure.Identity och Azure.ResourceManager.Batch behöver du inte manuellt referera till Microsoft Entra slutpunkter, resurs-URI:er eller omdirigerings-URI:er – autentiseringsuppgifterna hanterar tokenanskaffning, cachelagring och uppdatering automatiskt.

  1. Installera nödvändiga NuGet-paket:

    dotnet add package Azure.Identity
    dotnet add package Azure.ResourceManager.Batch
    
  2. Lägg till följande using instruktioner i koden:

    using Azure.Identity;
    using Azure.ResourceManager;
    using Azure.ResourceManager.Batch;
    
  3. Skapa en autentiseringsuppgift och skicka den till ArmClient. Använd klienten för att räkna upp eller hantera Batch-konton.

    Recommended: DefaultAzureCredential – fungerar lokalt med inloggningar med utvecklarverktyg (Azure CLI, Visual Studio, Visual Studio Code) och använder hanterad identitet automatiskt när appen körs på Azure:

    ArmClient arm = new ArmClient(new DefaultAzureCredential());
    
    SubscriptionResource subscription = await arm.GetDefaultSubscriptionAsync();
    await foreach (BatchAccountResource account in subscription.GetBatchAccountsAsync())
    {
        Console.WriteLine(account.Data.Name);
    }
    

    Interaktiv (integrerad) inloggning – uppmanar en användare att logga in via systemwebbläsaren. Använd detta när din app måste autentisera en specifik användare interaktivt:

    var credential = new InteractiveBrowserCredential(
        new InteractiveBrowserCredentialOptions
        {
            TenantId = "<tenant-id>",
            ClientId = "<application-id>",      // optional; required only if you registered your own app
            RedirectUri = new Uri("http://localhost")
        });
    
    ArmClient arm = new ArmClient(credential);
    

    Tjänstens huvudnamn (klienthemlighet) – används för obevakade appar som autentiserar med en appregistreringshemlighet:

    var credential = new ClientSecretCredential(
        tenantId: "<tenant-id>",
        clientId: "<application-id>",
        clientSecret: "<client-secret>");
    
    ArmClient arm = new ArmClient(credential);
    

    Hanterad identitet – används när appen körs på en Azure resurs (till exempel en virtuell dator, App Service eller Container App) som har en systemtilldelad eller användartilldelad hanterad identitet:

    // System-assigned managed identity
    var credential = new ManagedIdentityCredential();
    
    // Or, user-assigned managed identity
    // var credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>");
    
    ArmClient arm = new ArmClient(credential);
    

Autentiseringsuppgiften mellanlagrar och förnyar tokenar på ett transparent sätt, så att du kan hålla ArmClient och Batch Management-resurser aktiva under hela appens livstid.

Nästa steg