Teilen über


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, das veranschaulicht, wie eine WPF-Anwendung (Windows Presentation Foundation) Benutzer anmelden und ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen. Die von Ihnen erstellten Desktop-App verwendet den Autorisierungscodefluss, der mit dem PKCE-Standard (Proof Key for Code Exchange) gekoppelt ist.

Siehe Wie das Beispiel funktioniert für eine Abbildung.

Voraussetzungen

Registrieren und Herunterladen Ihrer Schnellstart-App

Sie haben zwei Optionen, um Ihre Schnellstartanwendung zu starten:

Option 1: Registrieren Sie und konfigurieren Sie Ihre App automatisch und laden Sie dann Ihr Codebeispiel herunter.

  1. Wechseln Sie zum Microsoft Entra Admin Center – App-RegistrierungenSchnellstartumgebung.
  2. Geben Sie einen Namen für Ihre Anwendung ein, und wählen Sie Registrierenaus.
  3. Folgen Sie den Anweisungen, um Ihre neue Anwendung mit nur einem Klick herunterzuladen und automatisch zu konfigurieren.

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

Schritt 1: Registrieren Der Anwendung

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

  1. Melden Sie sich im Microsoft Entra Admin-Zentruman.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol 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). Benutzer Ihrer App sehen diesen Namen möglicherweise, und 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-URIshttps://login.microsoftonline.com/common/oauth2/nativeclient aus, und fügen Sie in benutzerdefinierte Umleitungs-URIsms-appx-web://microsoft.aad.brokerplugin/{client_id} hinzu, wobei {client_id} die Anwendungs-ID (Client-ID) Ihrer Anwendung ist (dieselbe GUID, die im Kontrollkästchen msal{client_id}://auth angezeigt wird).
  10. Wählen Sie Konfigurieren aus.

Schritt 2: Herunterladen des Projekts

Herunterladen der WPF-Beispielanwendung

Tipp

Um Fehler zu vermeiden, die durch Pfadlängenbeschränkungen in Windows verursacht werden, empfehlen wir, das Archiv zu extrahieren oder das Repository in ein Verzeichnis in der Nähe des Stamms Ihres Laufwerks zu klonen.

Schritt 3: Konfigurieren des Projekts

  1. Extrahieren Sie die ZIP-Datei in einen lokalen Ordner in der Nähe des Stammordners des Datenträgers, z. B. C:\Azure-Samples.

  2. Öffnen Sie das Projekt in Visual Studio.

  3. Bearbeiten Sie App.Xaml.cs, und ersetzen Sie 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";
    

Wo:

  • Enter_the_Application_Id_here – ist die Anwendungs-ID (Client-ID) für die Anwendung, die Sie registriert haben.

    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 - ist auf eine der folgenden Optionen festgelegt:

    • Wenn Ihre Anwendung Konten in diesem Organisationsverzeichnisunterstützt, ersetzen Sie diesen Wert durch die Mandanten-ID oder Mandantennamen (z. B. contoso.microsoft.com)

    • Wenn Ihre Anwendung Konten in einem beliebigen Organisationsverzeichnisunterstützt, ersetzen Sie diesen Wert durch organizations

    • Wenn Ihre Anwendung Konten in einem beliebigen Organisationsverzeichnis und persönlichen Microsoft-Kontenunterstützt, 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 Ihrer Anwendung wird angezeigt.

Wenn das Hauptfenster der App angezeigt wird, wählen Sie die Schaltfläche "Microsoft Graph-API aufrufen" aus. Sie werden aufgefordert, sich mit Ihrem Microsoft Entra-Konto (Geschäfts-, Schul- oder Unikonto) oder Microsoft-Konto (live.com, outlook.com) anzumelden.

Wenn Sie die Anwendung zum ersten Mal ausführen, werden Sie aufgefordert, die Zustimmung 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. Im Aufruf der Microsoft Graph-API sollten einige grundlegende Tokeninformationen und Benutzerdaten angezeigt werden.

Weitere Informationen

Funktionsweise des Beispiels

Diagramm, das zeigt, wie die von dieser Schnellstartanleitung generierte Beispiel-App funktioniert.

MSAL.NET

MSAL (Microsoft.Identity.Client) ist die Bibliothek, die verwendet wird, um Benutzer anzumelden und Token anzufordern, die für den Zugriff auf eine api verwendet werden, die von Microsoft Identity Platform geschützt ist. Sie können MSAL installieren, indem Sie den folgenden Befehl in der Package Manager-Konsole von Visual Studioausführen:

Install-Package Microsoft.Identity.Client -IncludePrerelease

MSAL-Initialisierung

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

using Microsoft.Identity.Client;

Initialisieren Sie DANN MSAL mithilfe des folgenden Codes:

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Wo: 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 einigen Situationen müssen Benutzer über ein Popupfenster gezwungen werden, mit der Microsoft Identity Platform zu interagieren, um ihre Anmeldeinformationen zu überprüfen oder ihre Zustimmung zu erteilen. Einige Beispiele sind:

  • Wenn sich Benutzer zum ersten Mal bei der Anwendung anmelden
  • Wenn Benutzer ihre Anmeldeinformationen möglicherweise erneut eingeben müssen, da das Kennwort abgelaufen ist
  • Wenn Ihre Anwendung Zugriff auf eine Ressource anfordert, der der Benutzer zustimmen muss
  • Wenn zweistufige Authentifizierung erforderlich ist
authResult = await app.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Wo: Beschreibung
_scopes Enthält die angeforderten Bereiche, z. B. { "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 verlangen, dass der Benutzer seine Anmeldeinformationen jedes Mal überprüft, wenn er auf eine Ressource zugreifen muss. Die meiste Zeit möchten Sie Tokenkäufe und -verlängerungen ohne Benutzerinteraktion. Sie können die AcquireTokenSilent-Methode verwenden, um Token für den Zugriff auf geschützte Ressourcen nach der ersten AcquireTokenInteractive Methode abzurufen:

var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Wo: Beschreibung
scopes Enthält die angeforderten Bereiche, z. B. { "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 einzelnen App).

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden oder mehr über Ihre Supportoptionen erfahren möchten, lesen Sie Hilfe und Support für Entwickler.

Nächste Schritte

Probieren Sie das Windows-Desktop-Lernprogramm aus, um eine vollständige schrittweise Anleitung zum Erstellen von Anwendungen und neuen Features zu erhalten, einschließlich einer vollständigen Erläuterung dieser Schnellstartanleitung.