Schnellstart: Abrufen eines Tokens und Aufrufen der Microsoft Graph-API über eine Windows Desktop-Anwendung
Willkommen! Dies ist wahrscheinlich nicht die Seite, die Sie erwartet haben. Während wir an einer Korrektur arbeiten, sollten Sie über diesen Link zum richtigen Artikel gelangen:
Schnellstart: Anmelden von Benutzern und Aufrufen von Microsoft Graph in einer Windows Desktop-App
Wir entschuldigen uns für die Unannehmlichkeiten und bitten Sie um Geduld, während wir an einer Lösung arbeiten.
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.
Eine Abbildung finden Sie unter Funktionsweise des Beispiels.
Schritt 1: Konfigurieren Ihrer Anwendung im Azure-Portal
Damit das Codebeispiel in dieser Schnellstartanleitung funktioniert, müssen Sie https://login.microsoftonline.com/common/oauth2/nativeclient
und ms-appx-web://microsoft.aad.brokerplugin/{client_id}
als Umleitungs-URI hinzufügen.
Ihre Anwendung ist mit diesen Attributen konfiguriert.
Schritt 2: Herunterladen des Visual Studio-Projekts
Führen Sie das Projekt mit Visual Studio 2019 aus.
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: Ihre App ist konfiguriert und betriebsbereit
Wir haben das Projekt mit Werten Ihrer App-Eigenschaften konfiguriert. Es ist nun ausführungsbereit.
Hinweis
Enter_the_Supported_Account_Info_Here
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) für die im Azure-Portal registrierte Anwendung. Dieser Wert befindet sich im Azure-Portal auf der Seite Übersicht der App. |
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.PublicClientApp.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.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.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.