Autentisera Batch Management-lösningar med Microsoft Entra-ID
Program som anropar Azure Batch Management-tjänsten autentiseras med Microsoft Authentication Library (Microsoft Entra-ID). Microsoft Entra ID är Microsofts molnbaserade katalog- och identitetshanteringstjänst för flera klientorganisationer. Själva Azure använder Microsoft Entra-ID för autentisering av sina kunder, tjänstadministratörer och organisationsanvändare.
Batch Management .NET-biblioteket visar typer för att arbeta med Batch-konton, kontonycklar, program och programpaket. Batch Management .NET-biblioteket är en Azure-resursproviderklient och används 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 valfri Azure-resursproviderklient, inklusive Batch Management .NET-biblioteket och via Azure Resource Manager.
I den här artikeln utforskar vi hur du använder Microsoft Entra-ID för att autentisera från program som använder Batch Management .NET-biblioteket. Vi visar hur du använder Microsoft Entra-ID för att autentisera en prenumerationsadministratör eller medadministratör med integrerad autentisering. Vi använder exempelprojektet AccountManagement , som är tillgängligt på GitHub, för att gå igenom med hjälp av Microsoft Entra-ID med Batch Management .NET-biblioteket.
Mer information om hur du använder Batch Management .NET-biblioteket och AccountManagement-exemplet finns i Hantera Batch-konton och kvoter med Batch Management-klientbiblioteket för .NET.
Registrera ditt program med Microsoft Entra-ID
Microsoft Authentication Library (MSAL) tillhandahåller ett programmatiskt gränssnitt till Microsoft Entra-ID för användning i dina program. Om du vill anropa MSAL från ditt program måste du registrera ditt program i en Microsoft Entra-klientorganisation. När du registrerar ditt program anger du Microsoft Entra-ID med information om ditt program, inklusive ett namn för det i Microsoft Entra-klientorganisationen. Microsoft Entra-ID tillhandahåller sedan ett program-ID som du använder för att associera ditt program med Microsoft Entra-ID vid körning. Mer information om program-ID finns i Objekt för program och tjänstens huvudnamn i Microsoft Entra-ID.
Om du vill registrera exempelprogrammet AccountManagement följer du stegen i avsnittet Lägga till ett program i Integrera program med Microsoft Entra-ID. Ange internt klientprogram för programtypen. Branschstandarden OAuth 2.0 URI för omdirigerings-URI :n är urn:ietf:wg:oauth:2.0:oob
. Du kan dock ange en giltig URI (till exempel http://myaccountmanagementsample
) för omdirigerings-URI:n eftersom den inte behöver vara en verklig slutpunkt.
När du har slutfört registreringsprocessen visas program-ID:t och objekt-ID:t (tjänstens huvudnamn) i listan för ditt program.
Ge Azure Resource Manager-API:et åtkomst till ditt program
Därefter måste du delegera åtkomst till ditt program till Azure Resource Manager-API:et. Microsoft Entra-identifieraren för Resource Manager-API:et är Windows Azure Service Management API.
Följ dessa steg i Azure-portalen:
I det vänstra navigeringsfönstret i Azure-portalen väljer du Alla tjänster, klickar på Appregistreringar och klickar på Lägg till.
Sök efter namnet på ditt program i listan över appregistreringar:
Visa bladet Inställningar. I avsnittet API-åtkomst väljer du Nödvändiga behörigheter.
Klicka på Lägg till för att lägga till en ny behörighet som krävs.
I steg 1 anger du Windows Azure Service Management API, väljer det API:et i resultatlistan och klickar på knappen Välj .
I steg 2 markerar du kryssrutan bredvid Access Azure classic deployment model as organization users (Åtkomst till den klassiska distributionsmodellen i Azure som organisationsanvändare) och klickar på knappen Välj .
Klicka på knappen Klar .
Bladet Nödvändiga behörigheter visar nu att behörigheter till ditt program beviljas till både MSAL- och Resource Manager-API:erna. Behörigheter beviljas msal som standard när du först registrerar din app med Microsoft Entra-ID.
Microsoft Entra-slutpunkter
För att kunna autentisera dina Batch Management-lösningar med Microsoft Entra-ID behöver du två välkända slutpunkter.
Den vanliga Microsoft Entra-slutpunkten tillhandahåller ett allmänt gränssnitt för insamling av autentiseringsuppgifter när en specifik klient inte tillhandahålls, som vid integrerad autentisering:
https://login.microsoftonline.com/common
Azure Resource Manager-slutpunkten används för att hämta en token för autentisering av begäranden till Batch-hanteringstjänsten:
https://management.core.windows.net/
Exempelprogrammet AccountManagement definierar konstanter för dessa slutpunkter. Lämna konstanterna oförändrade:
// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";
Referera till ditt program-ID
Klientprogrammet använder program-ID :t (kallas även klient-ID) för att få åtkomst till Microsoft Entra-ID vid körning. När du har registrerat ditt program i Azure-portalen uppdaterar du koden så att den använder det program-ID som tillhandahålls av Microsoft Entra-ID:t för ditt registrerade program. I exempelprogrammet AccountManagement kopierar du ditt program-ID från Azure-portalen till rätt konstant:
// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";
Kopiera även den omdirigerings-URI som du angav under registreringsprocessen. Omdirigerings-URI:n som anges i koden måste matcha den omdirigerings-URI som du angav när du registrerade programmet.
// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";
Skaffa en Microsoft Entra-autentiseringstoken
När du har registrerat Exemplet AccountManagement i Microsoft Entra-klientorganisationen och uppdaterat källkodsexemplet med dina värden är exemplet redo att autentiseras med hjälp av Microsoft Entra-ID. När du kör exemplet försöker MSAL hämta en autentiseringstoken. I det här steget uppmanas du att ange dina Microsoft-autentiseringsuppgifter:
// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
ClientId,
new Uri(RedirectUri),
PromptBehavior.Auto);
När du har angett dina autentiseringsuppgifter kan exempelprogrammet fortsätta att utfärda autentiserade begäranden till Batch-hanteringstjänsten.
Nästa steg
- Mer information om hur du kör exempelprogrammet AccountManagement finns i Hantera Batch-konton och kvoter med Batch Management-klientbiblioteket för .NET.
- Mer information om Microsoft Entra-ID finns i Microsoft Entra-dokumentationen.
- Djupgående exempel som visar hur du använder MSAL finns i Azure Code Samples-biblioteket .
- Information om hur du autentiserar Batch-tjänstprogram med Microsoft Entra-ID finns i Autentisera Batch-tjänstlösningar med Active Directory.