Schnellstart: Anmelden von Benutzer*innen und Aufrufen von Microsoft Graph in einer App für Universelle Windows-Plattform
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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Visual Studio
Hinweis
MSAL.NET ab Version 4.61.0 bietet keine Unterstützung für die Universelle Windows-Plattform (UWP), Xamarin Android und Xamarin iOS. Es wird empfohlen, Ihre UWP-Anwendungen zu modernen Frameworks wie WinUI zu migrieren. Weitere Informationen zur Einstellung finden Sie unter Ankündigung der bevorstehenden Einstellung von MSAL.NET für Xamarin und UWP.
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 zum Herunterladen und automatischen Konfigurieren der neuen Anwendung.
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 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
UWP-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 die Option Registrieren aus, um die Anwendung zu erstellen, und notieren Sie sich die Anwendungs-ID (Client) zur Verwendung in einem späteren Schritt.
- Wählen Sie unter Verwalten die Option Authentifizierung aus.
- Wählen Sie Plattform hinzufügen>Mobilgerät- und Desktopanwendungen aus.
- Wählen Sie unter Umleitungs-URIs die Option
https://login.microsoftonline.com/common/oauth2/nativeclient
aus. - Wählen Sie Konfigurierenaus.
Schritt 2: Herunterladen des Projekts
Herunterladen der UWP-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 das ZIP-Archiv in einem lokalen Ordner in der Nähe des Stammverzeichnisses Ihres Laufwerks. Beispiel: C:\Azure-Samples.
Öffnen Sie das Projekt in Visual Studio. Installieren Sie die Workload Entwicklung für die universelle Windows-Plattform und alle individuellen SDK-Komponenten, wenn Sie dazu aufgefordert werden.
Ändern Sie in MainPage.Xaml.cs den Wert der Variablen
ClientId
in die Anwendungs-ID (Client) der Anwendung, die Sie weiter oben registriert haben.private const string ClientId = "Enter_the_Application_Id_here";
Sie finden die Anwendungs-ID (Client-ID) im Bereich Übersicht im Microsoft Entra Admin Center (Identität>Anwendungen>App-Registrierungen>{Ihre App-Registrierung}).
Erstellen Sie ein neues selbstsigniertes Testzertifikat für das Paket, und wählen Sie es aus:
- Doppelklicken Sie im Projektmappen-Explorer auf die Datei Package.appxmanifest.
- Wählen Sie Verpackung>Zertifikat auswählen...>Erstellen... aus.
- Geben Sie ein Kennwort ein, und wählen Sie anschließend OK aus. Ein Zertifikat mit dem Namen Native_UWP_V2_TemporaryKey.pfx wird erstellt.
- Wählen Sie OK aus, um das Dialogfeld Zertifikat auswählen zu schließen. Vergewissern Sie sich anschließend, dass Native_UWP_V2_TemporaryKey.pfx im Projektmappen-Explorer angezeigt wird.
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt Native_UWP_V2, und wählen Sie Eigenschaften aus.
- Wählen Sie Signieren und dann die von Ihnen erstellte PFX-Datei in der Dropdownliste Schlüsseldatei mit starkem Namen auswählen aus.
Schritt 4: Ausführen der Anwendung
Führen Sie die Beispielanwendung auf Ihrem lokalen Computer wie folgt aus:
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.
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
MSAL.NET
MSAL (Microsoft.Identity.Client) ist die Bibliothek, mit der Benutzer angemeldet und Sicherheitstoken angefordert werden können. Die Sicherheitstoken werden für den Zugriff auf eine API verwendet, 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-ID) der App, die Sie im Microsoft Entra Admin Center registriert haben. 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 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 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 PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await 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.