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
- Visual Studio mit installierter Workload Entwicklung für die universelle Windows-Plattform
Registrieren und Herunterladen Ihrer Schnellstart-App
Die Schnellstartanwendung kann auf zwei Arten gestartet werden:
- [Express] Option 1: Registrieren und automatisches Konfigurieren Ihrer App und anschließendes Herunterladen des Codebeispiels
- [Manuell] Option 2: Registrieren und manuelles Konfigurieren Ihrer Anwendung und des Codebeispiels
Option 1: Registrieren und automatisches Konfigurieren Ihrer App und anschließendes Herunterladen des Codebeispiels
- Wechseln Sie zur Schnellstartoption Microsoft Entra Admin Center – App-Registrierungen.
- Geben Sie einen Namen für Ihre Anwendung ein, und wählen Sie Registrieren aus.
- 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:
- Melden Sie sich beim Microsoft Entra Admin Center an.
- 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.
- Navigieren Sie zu Identität>Anwendungen>App-Registrierungen, und wählen Sie Neue Registrierung aus.
- 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. - 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.
- Wählen Sie Registrieren aus, um die Anwendung zu erstellen.
- Wählen Sie unter Verwalten die Option Authentifizierung aus.
- Wählen Sie Plattform hinzufügen>Mobilgerät- und Desktopanwendungen aus.
- Wählen Sie im Abschnitt Umleitungs-URIs die Option
https://login.microsoftonline.com/common/oauth2/nativeclient
aus, und fügen Siems-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ästchenmsal{client_id}://auth
angezeigt wird). - 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
Extrahieren Sie die ZIP-Datei in einem lokalen Ordner in der Nähe des Datenträger-Stammverzeichnisses (beispielsweise C:\Azure-Samples).
Öffnen Sie das Projekt in Visual Studio.
Bearbeiten Sie App.Xaml.cs. Ersetzen Sie dabei die Werte der Felder
ClientId
undTenant
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
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.