Authentifizieren von Batch Management-Lösungen mit Microsoft Entra ID

Anwendungen, die den Azure Batch Management-Dienst aufrufen, werden mit der Microsoft Authentication Library (Microsoft Entra ID) authentifiziert. Microsoft Entra ID ist der mehrinstanzenfähige cloudbasierte Verzeichnis- und Identitätsverwaltungsdienst von Microsoft. Azure selbst verwendet Microsoft Entra ID für die Authentifizierung seiner Kunden, Dienstadministratoren und Organisationsbenutzer.

Über die Batch Management .NET-Bibliothek werden Typen zur Verwendung von Batch-Konten, -Kontoschlüsseln, -Anwendungen und -Anwendungspaketen verfügbar gemacht. Die Batch Management .NET-Bibliothek ist ein Azure-Ressourcenanbieterclient, der zusammen mit Azure Resource Manager zum programmgesteuerten Verwalten dieser Ressourcen verwendet wird. Microsoft Entra ID ist erforderlich, um Anforderungen zu authentifizieren, die über Azure-Ressourcenanbieterclients wie z. B. die Batch Management .NET-Bibliothek und über Azure Resource Manager übermittelt werden.

In diesem Artikel wird beschrieben, Microsoft Entra ID zum Authentifizieren von Anwendungen verwendet werden kann, für die die Batch Management .NET-Bibliothek genutzt wird. Es wird veranschaulicht, wie Sie Microsoft Entra zum Authentifizieren eines Administrators oder Co-Administrators eines Abonnements per integrierter Authentifizierung einsetzen können. Wir nutzen das AccountManagement-Beispielprojekt auf GitHub, um die Schritte der Verwendung von Microsoft Entra ID mit der Batch Management .NET-Bibliothek zu veranschaulichen.

Weitere Informationen zur Nutzung der Batch Management .NET-Bibliothek und des AccountManagement-Beispiels finden Sie unter Verwalten von Batch-Konten und -Kontingenten mit der Batch Management-Clientbibliothek für .NET.

Registrieren Ihrer Anwendung mit Microsoft Entra ID

Die Microsoft Authentication Library (MSAL) stellt eine programmgesteuerte Schnittstelle für Microsoft Entra ID bereit, die Sie in Ihren Anwendungen einsetzen können. Zum Aufrufen von MSAL aus Ihrer Anwendung müssen Sie Ihre Anwendung in einem Microsoft Entra-Mandanten registrieren. Beim Registrieren Ihrer Anwendung stellen Sie für Microsoft Entra ID Informationen zu Ihrer Anwendung bereit, einschließlich eines entsprechenden Namens im Microsoft Entra-Mandanten. Microsoft Entra ID stellt dann eine Anwendungs-ID bereit, die Sie verwenden, um Ihre Anwendung zur Laufzeit Microsoft Entra ID zuzuordnen. Weitere Informationen zur Anwendungs-ID finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID.

Führen Sie die Schritte im Abschnitt Adding an Application (Hinzufügen einer Anwendung) des Artikels Integrating applications with Azure Active Directory (Integrieren von Anwendungen in Microsoft Entra ID) aus, um die AccountManagement-Beispielanwendung zu registrieren. Geben Sie als Typ der Anwendung Systemeigene Clientanwendung an. Der OAuth 2.0-URI nach Industriestandard für den Umleitungs-URI ist urn:ietf:wg:oauth:2.0:oob. Für den Umleitungs-URI können Sie einen beliebigen gültigen URI angeben (z. B. http://myaccountmanagementsample), da dies kein echter Endpunkt sein muss.

Hinzufügen einer Anwendung

Nachdem Sie den Registrierungsprozess abgeschlossen haben, werden die Anwendungs-ID und die Objekt-ID (Dienstprinzipal) angezeigt, die für Ihre Anwendung aufgeführt sind.

Abgeschlossener Registrierungsprozess

Gewähren des Zugriffs auf Ihre Anwendung für die Azure Resource Manager-API

Als Nächstes müssen Sie den Zugriff auf Ihre Anwendung an die Azure Resource Manager-API delegieren. Der Microsoft Entra-Bezeichner für die Resource Manager-API lautet Windows Azure-Service-Verwaltungs-API.

Führen Sie im Azure-Portal die folgenden Schritte aus:

  1. Wählen Sie im linken Navigationsbereich des Azure-Portals Alle Dienste aus, klicken Sie auf App-Registrierungen und dann auf Hinzufügen.

  2. Suchen Sie in der Liste mit den App-Registrierungen nach dem Namen Ihrer Anwendung:

    Suchen nach Ihrem Anwendungsnamen

  3. Zeigen Sie das Blatt Einstellungen an. Wählen Sie im Abschnitt API-Zugriff die Option Erforderliche Berechtigungen.

  4. Klicken Sie auf Hinzufügen, um eine neue erforderliche Berechtigung hinzuzufügen.

  5. Geben Sie in Schritt 1 Windows Azure-Service-Verwaltungs-API ein, wählen Sie diese API in der Liste mit den Ergebnissen aus, und klicken Sie auf die Schaltfläche Auswählen.

  6. Aktivieren Sie in Schritt 2 das Kontrollkästchen neben Access Azure classic deployment model as organization users (Als Organisationsbenutzer auf das klassische Azure-Bereitstellungsmodell zugreifen), und klicken Sie auf die Schaltfläche Auswählen.

  7. Klicken Sie auf die Schaltfläche Fertig.

Auf dem Blatt Erforderliche Berechtigungen wird jetzt angezeigt, dass Berechtigungen für Ihre Anwendung sowohl für die MSAL- als auch für die Resource Manager-APIs gewährt werden. Berechtigungen für MSAL werden standardmäßig gewährt, wenn Sie Ihre App zum ersten Mal mit Microsoft Entra ID registrieren.

Delegieren von Berechtigungen für die Azure Resource Manager-API

Microsoft Entra Endpunkte

Um Ihre Batch Management-Lösungen mit Microsoft Entra ID authentifizieren zu können, benötigen Sie zwei bekannte Endpunkte.

  • Der allgemeine Microsoft Entra-Endpunkt bietet eine generische Schnittstelle für die Erfassung von Anmeldeinformationen, wenn wie bei der integrierten Authentifizierung kein bestimmter Mandant bereitgestellt wird:

    https://login.microsoftonline.com/common

  • Der Azure Resource Manager-Endpunkt wird verwendet, um ein Token zum Authentifizieren von Anforderungen für den Batch Management-Dienst abzurufen:

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

Die Beispielanwendung „AccountManagement“ definiert Konstanten für diese Endpunkte. Lassen Sie diese Konstanten unverändert:

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

Verweisen Sie auf Ihre Anwendungs-ID.

Ihre Clientanwendung verwendet die Anwendungs-ID (auch als Client-ID bezeichnet) zum Zugreifen auf Microsoft Entra ID zur Laufzeit. Nachdem Sie die Anwendung im Azure-Portal registriert haben, können Sie Ihren Code aktualisieren, damit die Anwendungs-ID verwendet wird, die von Microsoft Entra ID für Ihre registrierte Anwendung bereitgestellt wurde. Kopieren Sie Ihre Anwendungs-ID in der AccountManagement-Beispielanwendung aus dem Azure-Portal in die entsprechende Konstante:

// 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://video2.skills-academy.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

Kopieren Sie außerdem den Umleitungs-URI, den Sie während des Registrierungsprozesses angegeben haben. Der im Code angegebene Umleitungs-URI muss mit dem Umleitungs-URI übereinstimmen, den Sie beim Registrieren der Anwendung bereitgestellt haben.

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

Erwerben eines Microsoft Entra-Authentifizierungstokens

Nach dem Registrieren des AccountManagement-Beispiels im Microsoft Entra-Mandanten und Aktualisieren des Quellcodes des Beispiels mit Ihren Werten ist das Beispiel für die Authentifizierung mit Microsoft Entra ID bereit. Wenn Sie das Beispiel ausführen, wird für MSAL versucht, ein Authentifizierungstoken abzurufen. In diesem Schritt werden Sie zum Eingeben Ihrer Microsoft-Anmeldeinformationen aufgefordert:

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

Nach dem Angeben der Anmeldeinformationen kann die Beispielanwendung damit fortfahren, authentifizierte Anforderungen für den Batch Management-Dienst auszustellen.

Nächste Schritte