Schnellstart: Aufrufen der Microsoft Graph-API über eine UWP-Anwendung (UWP = Universelle Windows-Plattform)

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 Benutzer*innen und Aufrufen von Microsoft Graph in einer App für Universelle Windows-Plattform

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, das zeigt, wie eine UWP-Anwendung (Universelle Windows-Plattform) Benutzer anmelden und ein Zugriffstoken abrufen kann, um die Microsoft Graph-API aufzurufen.

Eine Abbildung finden Sie unter Funktionsweise des Beispiels.

Voraussetzungen

Schritt 1: Konfigurieren der Anwendung

Damit das Codebeispiel in dieser Schnellstartanleitung funktioniert, müssen Sie den Umleitungs-URIhttps://login.microsoftonline.com/common/oauth2/nativeclient hinzufügen.

Already configured Ihre Anwendung ist mit diesen Attributen konfiguriert.

Schritt 2: Laden Sie das Visual Studio-Projekt herunter

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.

Schritt 4: Ausführen der Anwendung

Führen Sie die Beispielanwendung auf Ihrem lokalen Computer wie folgt aus:

  1. Wählen Sie auf der Symbolleiste von Visual Studio die richtige Plattform aus (voraussichtlich x64 oder x86, nicht ARM). Das Zielgerät sollte sich von Gerät in Lokaler Computer ändern.

  2. Wählen Sie Debuggen>Ohne Debuggen starten aus.

    Bei entsprechender Aufforderung müssen Sie unter Umständen zuerst den Entwicklermodus aktivieren und dann Ohne Debuggen starten erneut verwenden, um die App zu starten.

Wenn das Fenster der App angezeigt wird, können Sie die Schaltfläche Microsoft Graph-API aufrufen auswählen, Ihre Anmeldeinformationen eingeben und Ihre Einwilligung zu den Berechtigungen erteilen, die von der Anwendung angefordert werden. Wenn der Vorgang erfolgreich ist, zeigt die Anwendung einige Tokeninformationen und Daten an, die aus dem Aufruf der Microsoft Graph-API stammen.

Funktionsweise des Beispiels

Shows how the sample app generated by this quickstart works

MSAL.NET

MSAL (Microsoft.Identity.Client) ist die Bibliothek, mit der Benutzer angemeldet und Sicherheitstoken angefordert werden können. Mithilfe der Sicherheitstoken kann auf eine API zugegriffen werden, die durch Microsoft Identity Platform geschützt ist. 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

MSAL-Initialisierung

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

using Microsoft.Identity.Client;

Anschließend wird MSAL mit dem folgenden Code initialisiert:

public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                                                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/> nativeclient")
                                                    .Build();

Der Wert der ClientId ist die Anwendungs-ID (Client) der App, die Sie im Azure-Portal registriert haben. 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 in einer UWP-App: 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();

Der Parameter 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

Verwenden Sie die AcquireTokenSilent-Methode, um Token für den Zugriff auf geschützte Ressourcen nach der anfänglichen AcquireTokenInteractive-Methode abzurufen. 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.

var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
  • 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 das erste Benutzerkonto 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.