Udostępnij za pośrednictwem


Uwierzytelnianie rozwiązań do zarządzania usługą Batch za pomocą usługi Active Directory

Aplikacje wywołujące uwierzytelnianie usługi Azure Batch Management za pomocą biblioteki Microsoft Authentication Library (Microsoft Entra ID). Microsoft Entra ID to wielodostępna usługa zarządzania katalogami i tożsamościami firmy Microsoft. Sama platforma Azure używa identyfikatora Entra firmy Microsoft do uwierzytelniania swoich klientów, administratorów usług i użytkowników organizacji.

Biblioteka .NET zarządzania usługą Batch udostępnia typy do pracy z kontami usługi Batch, kluczami kont, aplikacjami i pakietami aplikacji. Biblioteka .NET zarządzania usługą Batch jest klientem dostawcy zasobów platformy Azure i jest używana razem z usługą Azure Resource Manager do programowego zarządzania tymi zasobami. Identyfikator Entra firmy Microsoft jest wymagany do uwierzytelniania żądań wysyłanych za pośrednictwem dowolnego klienta dostawcy zasobów platformy Azure, w tym biblioteki .NET zarządzania usługą Batch oraz za pośrednictwem usługi Azure Resource Manager.

W tym artykule zapoznamy się z użyciem identyfikatora Entra firmy Microsoft do uwierzytelniania z aplikacji korzystających z biblioteki .NET zarządzania usługą Batch. Pokazujemy, jak używać identyfikatora Entra firmy Microsoft do uwierzytelniania administratora subskrypcji lub współadministratora przy użyciu zintegrowanego uwierzytelniania. Użyjemy przykładowego projektu AccountManagement dostępnego w usłudze GitHub, aby przejść przez proces korzystania z identyfikatora Entra firmy Microsoft z biblioteką .NET zarządzania usługą Batch.

Aby dowiedzieć się więcej na temat korzystania z biblioteki .NET zarządzania usługą Batch i przykładu AccountManagement, zobacz Zarządzanie kontami i limitami przydziału przy użyciu biblioteki klienta zarządzania usługą Batch dla platformy .NET.

Rejestrowanie aplikacji przy użyciu identyfikatora Entra firmy Microsoft

Biblioteka Microsoft Authentication Library (MSAL) udostępnia interfejs programowy identyfikator entra firmy Microsoft do użycia w aplikacjach. Aby wywołać bibliotekę MSAL z aplikacji, musisz zarejestrować aplikację w dzierżawie firmy Microsoft Entra. Podczas rejestrowania aplikacji należy podać identyfikator Entra firmy Microsoft zawierający informacje o aplikacji, w tym nazwę w dzierżawie firmy Microsoft Entra. Identyfikator Entra firmy Microsoft udostępnia następnie identyfikator aplikacji używany do skojarzenia aplikacji z identyfikatorem Entra firmy Microsoft w czasie wykonywania. Aby dowiedzieć się więcej na temat identyfikatora aplikacji, zobacz Application and service principal objects in Microsoft Entra ID (Obiekty aplikacji i jednostki usługi w identyfikatorze Entra firmy Microsoft).

Aby zarejestrować przykładową aplikację AccountManagement, wykonaj kroki opisane w sekcji Dodawanie aplikacji w temacie Integrowanie aplikacji z identyfikatorem Entra firmy Microsoft. Określ natywną aplikację kliencą dla typu aplikacji. Standardowy identyfikator URI uwierzytelniania OAuth 2.0 dla identyfikatora URI przekierowania to urn:ietf:wg:oauth:2.0:oob. Można jednak określić dowolny prawidłowy identyfikator URI (na http://myaccountmanagementsampleprzykład ) dla identyfikatora URI przekierowania, ponieważ nie musi być prawdziwym punktem końcowym.

Adding an application

Po zakończeniu procesu rejestracji zobaczysz identyfikator aplikacji i identyfikator obiektu (jednostki usługi) wyświetlony dla aplikacji.

Completed registration process

Udzielanie aplikacji dostępu do interfejsu API usługi Azure Resource Manager

Następnie musisz delegować dostęp do aplikacji do interfejsu API usługi Azure Resource Manager. Identyfikator entra firmy Microsoft dla interfejsu API usługi Resource Manager to interfejs API zarządzania usługami platformy Windows Azure.

Wykonaj następujące kroki w witrynie Azure Portal:

  1. W okienku nawigacji po lewej stronie witryny Azure Portal wybierz pozycję Wszystkie usługi, kliknij pozycję Rejestracje aplikacji i kliknij przycisk Dodaj.

  2. Wyszukaj nazwę aplikacji na liście rejestracji aplikacji:

    Search for your application name

  3. Wyświetl blok Ustawienia. W sekcji Dostęp do interfejsu API wybierz pozycję Wymagane uprawnienia.

  4. Kliknij przycisk Dodaj , aby dodać nowe wymagane uprawnienie.

  5. W kroku 1 wprowadź interfejs API zarządzania usługami platformy Windows Azure, wybierz ten interfejs API z listy wyników, a następnie kliknij przycisk Wybierz .

  6. W kroku 2 zaznacz pole wyboru obok pozycji Dostęp do klasycznego modelu wdrażania platformy Azure jako użytkowników organizacji, a następnie kliknij przycisk Wybierz .

  7. Kliknij przycisk Gotowe.

Blok Wymagane uprawnienia pokazuje teraz, że uprawnienia do aplikacji są przyznawane zarówno interfejsom API biblioteki MSAL, jak i usłudze Resource Manager. Uprawnienia do biblioteki MSAL są domyślnie przyznawane podczas pierwszego rejestrowania aplikacji przy użyciu identyfikatora Entra firmy Microsoft.

Delegate permissions to the Azure Resource Manager API

Punkty końcowe usługi Microsoft Entra

Aby uwierzytelnić rozwiązania do zarządzania usługą Batch przy użyciu identyfikatora Entra firmy Microsoft, potrzebne są dwa dobrze znane punkty końcowe.

  • Wspólny punkt końcowy firmy Microsoft zapewnia ogólny interfejs zbierania poświadczeń, gdy nie podano określonej dzierżawy, tak jak w przypadku zintegrowanego uwierzytelniania:

    https://login.microsoftonline.com/common

  • Punkt końcowy usługi Azure Resource Manager służy do uzyskiwania tokenu na potrzeby uwierzytelniania żądań do usługi zarządzania batch:

    https://management.core.windows.net/

Przykładowa aplikacja AccountManagement definiuje stałe dla tych punktów końcowych. Pozostaw te stałe bez zmian:

// 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/";

Odwołanie do identyfikatora aplikacji

Aplikacja kliencka używa identyfikatora aplikacji (nazywanego również identyfikatorem klienta) w celu uzyskania dostępu do identyfikatora Entra firmy Microsoft w czasie wykonywania. Po zarejestrowaniu aplikacji w witrynie Azure Portal zaktualizuj kod, aby użyć identyfikatora aplikacji dostarczonego przez firmę Microsoft Entra ID dla zarejestrowanej aplikacji. W przykładowej aplikacji AccountManagement skopiuj identyfikator aplikacji z witryny Azure Portal do odpowiedniej stałej:

// 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>";

Skopiuj również identyfikator URI przekierowania określony podczas procesu rejestracji. Identyfikator URI przekierowania określony w kodzie musi być zgodny z identyfikatorem URI przekierowania podanym podczas rejestrowania aplikacji.

// 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";

Uzyskiwanie tokenu uwierzytelniania entra firmy Microsoft

Po zarejestrowaniu przykładu AccountManagement w dzierżawie firmy Microsoft Entra i zaktualizowaniu przykładowego kodu źródłowego przy użyciu wartości przykład jest gotowy do uwierzytelniania przy użyciu identyfikatora Entra firmy Microsoft. Po uruchomieniu przykładu biblioteka MSAL próbuje uzyskać token uwierzytelniania. W tym kroku zostanie wyświetlony monit o podanie poświadczeń firmy Microsoft:

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

Po podaniu poświadczeń przykładowa aplikacja może kontynuować wystawianie uwierzytelnionych żądań do usługi zarządzania batch.

Następne kroki