Schnellstart: Anmelden von Benutzern und Aufrufen von Microsoft Graph in einer Windows Desktop-App

In dieser Schnellstartanleitung laden Sie ein Codebeispiel herunter und führen es aus. Dieses zeigt, wie eine WPF-Anwendung (Windows Presentation Foundation) Benutzer anmelden und ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen. Die erstellte Desktop-App verwendet den Autorisierungscodeflow, der mit dem PKCE-Standard (Proof Key for Code Exchange) gekoppelt ist.

Eine Abbildung finden Sie unter Funktionsweise des Beispiels.

Voraussetzungen

Registrieren und Herunterladen Ihrer Schnellstart-App

Die Schnellstartanwendung kann auf zwei Arten gestartet werden:

Option 1: Registrieren und automatisches Konfigurieren Ihrer App und anschließendes Herunterladen des Codebeispiels

  1. Wechseln Sie zur Schnellstartoption Microsoft Entra Admin Center – App-Registrierungen.
  2. Geben Sie einen Namen für Ihre Anwendung ein, und wählen Sie Registrieren aus.
  3. Befolgen Sie die Anweisungen, um Ihre neue Anwendung mit nur einem Klick herunterzuladen und automatisch zu konfigurieren.

Option 2: Registrieren und manuelles Konfigurieren Ihrer Anwendung und des Codebeispiels

Schritt 1: Anwendung registrieren

Tipp

Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.

Führen Sie die folgenden Schritte aus, um Ihre Anwendung zu registrieren und Ihrer Projektmappe manuell die Registrierungsinformationen Ihrer App hinzuzufügen:

  1. Melden Sie sich beim Microsoft Entra Admin Center an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol für Einstellungen im oberen Menü, um zum Mandanten zu wechseln, in dem Sie die Anwendung über das Menü Verzeichnisse + Abonnements registrieren möchten.
  3. Navigieren Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie Neue Registrierung aus.
  4. Geben Sie unter Name einen Namen für Ihre Anwendung ein (beispielsweise Win-App-calling-MsGraph). Benutzern Ihrer App wird wahrscheinlich dieser Namen angezeigt. Sie können ihn später ändern.
  5. Wählen Sie im Abschnitt Unterstützte Kontotypen die Option Konten in allen Organisationsverzeichnissen und persönliche Microsoft-Konten (z.B. Skype, Xbox, Outlook.com) aus.
  6. Wählen Sie Registrieren aus, um die Anwendung zu erstellen.
  7. Wählen Sie unter Verwalten die Option Authentifizierung aus.
  8. Wählen Sie Plattform hinzufügen>Mobilgerät- und Desktopanwendungen aus.
  9. Wählen Sie im Abschnitt Umleitungs-URIs die Option https://login.microsoftonline.com/common/oauth2/nativeclient aus, und fügen Sie ms-appx-web://microsoft.aad.brokerplugin/{client_id} in Benutzerdefinierte Umleitungs-URIs hinzu. Dabei ist {client_id} die Anwendungs-ID (Client) Ihrer Anwendung (dieselbe GUID, die im Kontrollkästchen msal{client_id}://auth angezeigt wird).
  10. Wählen Sie Konfigurierenaus.

Schritt 2: Herunterladen des Projekts

Herunterladen der WPF-Beispielanwendung

Tipp

Es wird empfohlen, das Archiv in ein Verzeichnis in der Nähe des Stammverzeichnisses Ihres Laufwerks zu extrahieren, um Fehler zu vermeiden, die durch Beschränkungen der Pfadlänge unter Windows verursacht werden.

Schritt 3: Konfigurieren des Projekts

  1. Extrahieren Sie die ZIP-Datei in einem lokalen Ordner in der Nähe des Datenträger-Stammverzeichnisses (beispielsweise C:\Azure-Samples).

  2. Öffnen Sie das Projekt in Visual Studio.

  3. Bearbeiten Sie App.Xaml.cs. Ersetzen Sie dabei die Werte der Felder ClientId und Tenant durch den folgenden Code:

    private static string ClientId = "Enter_the_Application_Id_here";
    private static string Tenant = "Enter_the_Tenant_Info_Here";
    

Hierbei gilt:

  • Enter_the_Application_Id_here ist die Anwendungs-ID (Client) für die von Ihnen registrierte Anwendung.

    Den Wert für Anwendungs-ID (Client) finden Sie im Microsoft Entra Admin Center auf der Seite Übersicht der App.

  • Enter_the_Tenant_Info_Here wird auf eine der folgenden Optionen festgelegt:

    • Unterstützt Ihre Anwendung Nur Konten in diesem Organisationsverzeichnis, ersetzen Sie diesen Wert durch die Mandanten-ID oder den Mandantennamen (etwa „contoso.microsoft.com“).

    • Unterstützt Ihre Anwendung Konten in einem beliebigen Organisationsverzeichnis, ersetzen Sie diesen Wert durch organizations.

    • Unterstützt Ihre Anwendung Konten in allen Organisationsverzeichnissen und persönliche Microsoft-Konten, ersetzen Sie diesen Wert durch common.

      Die Werte für Verzeichnis-ID (Mandant) und Unterstützte Kontotypen finden Sie im Microsoft Entra Admin Center auf der Seite Übersicht der App.

Schritt 4: Ausführen der Anwendung

Wählen Sie zum Erstellen und Ausführen der Beispielanwendung in Visual Studio das Menü Debuggen>Debuggen starten aus, oder drücken Sie F5. Das Hauptfenster (MainWindow) Ihrer Anwendung wird angezeigt.

Wählen Sie im Hauptfenster der App die Schaltfläche „Microsoft Graph-API aufrufen“ aus. Sie werden aufgefordert, sich mit Ihrem Microsoft Entra-Konto (Geschäfts-, Schul- oder Unikonto) oder einem Microsoft-Konto (live.com, outlook.com) anzumelden.

Bei der ersten Ausführung der Anwendung werden Sie aufgefordert, Ihre Einwilligung zu erteilen, damit die Anwendung auf Ihr Benutzerprofil zugreifen und Sie anmelden kann. Nachdem Sie den angeforderten Berechtigungen zugestimmt haben, zeigt die Anwendung an, dass Sie sich erfolgreich angemeldet haben. Es sollten einige grundlegende Tokeninformationen und Benutzerdaten angezeigt werden, die durch den Aufruf der Microsoft Graph-API abgerufen wurden.

Weitere Informationen

Funktionsweise des Beispiels

Diagram showing how the sample app generated by this quickstart works.

MSAL.NET

MSAL (Microsoft.Identity.Client) ist die Bibliothek zum Anmelden von Benutzern und Anfordern von Token, die für den Zugriff auf eine durch Microsoft Identity Platform geschützte API verwendet wird. Sie können MSAL installieren, indem Sie den folgenden Befehl in der Paket-Manager-Konsole von Visual Studio ausführen:

Install-Package Microsoft.Identity.Client -IncludePrerelease

MSAL-Initialisierung

Sie können den Verweis auf MSAL hinzufügen, indem Sie den folgenden Code hinzufügen:

using Microsoft.Identity.Client;

Initialisieren Sie MSAL anschließend mit dem folgenden Code:

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Hierbei gilt: Beschreibung
ClientId Die Anwendungs-ID (Client) der Anwendung, die im Microsoft Entra Admin Center registriert ist. Sie finden diesen Wert auf der Seite Übersicht der App im Microsoft Entra Admin Center.

Anfordern von Token

MSAL verfügt über zwei Methoden zum Abrufen von Token: AcquireTokenInteractive und AcquireTokenSilent.

Interaktives Abrufen eines Benutzertokens

In bestimmten Situationen müssen Benutzer über ein Popupfenster mit Microsoft Identity Platform interagieren, um entweder ihre Anmeldeinformationen zu bestätigen oder ihre Zustimmung zu geben. Beispiele hierfür sind:

  • Erstmaliges Anmelden von Benutzern bei der Anwendung.
  • Benutzer müssen ihre Anmeldeinformationen erneut eingeben, weil das Kennwort abgelaufen ist.
  • Ihre Anwendung fordert Zugriff auf eine Ressource an, dem der Benutzer zustimmen muss.
  • Zweistufige Authentifizierung ist erforderlich.
authResult = await app.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Hierbei gilt: BESCHREIBUNG
_scopes Enthält die angeforderten Bereiche (etwa { "user.read" } für Microsoft Graph oder { "api://<Application ID>/access_as_user" } für benutzerdefinierte Web-APIs).

Automatisches Abrufen eines Benutzertokens

Sie möchten nicht, dass der Benutzer seine Anmeldeinformationen jedes Mal überprüfen muss, wenn er auf eine Ressource zugreifen muss. Meistens wünschen Sie sich den Abruf und die Erneuerung von Token ohne jegliche Benutzerinteraktion. Sie können die AcquireTokenSilent-Methode verwenden, um Token für den Zugriff auf geschützte Ressourcen nach der anfänglichen AcquireTokenInteractive-Methode abzurufen:

var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Hierbei gilt: BESCHREIBUNG
scopes Enthält die angeforderten Bereiche (etwa { "user.read" } für Microsoft Graph oder { "api://<Application ID>/access_as_user" } für benutzerdefinierte Web-APIs).
firstAccount Gibt den ersten Benutzer im Cache an. (MSAL unterstützt mehrere Benutzer in einer App.)

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.

Nächste Schritte

Probieren Sie das Windows Desktop-Tutorial aus, um eine vollständige Schritt-für-Schritt-Anleitung zum Erstellen von Anwendungen und neuen Features zu erhalten, einschließlich einer vollständigen Erläuterung dieses Schnellstarts.