Szybki start: logowanie użytkowników i wywoływanie programu Microsoft Graph w aplikacji platforma uniwersalna systemu Windows
W tym przewodniku Szybki start pobierzesz i uruchomisz przykładowy kod, który pokazuje, jak aplikacja platforma uniwersalna systemu Windows (UWP) może logować użytkowników i uzyskiwać token dostępu w celu wywołania interfejsu API programu Microsoft Graph.
Zobacz Jak działa przykład, aby zapoznać się z ilustracją.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Program Visual Studio
Uwaga
MSAL.NET w wersji 4.61.0 lub nowszej nie zapewniają obsługi platforma uniwersalna systemu Windows (UWP), Xamarin Android i Xamarin iOS. Zalecamy migrację aplikacji platformy UNIWERSALNEJ systemu Windows do nowoczesnych struktur, takich jak WINUI. Przeczytaj więcej o wycofaniu w temacie Ogłaszanie nadchodzącego wycofania MSAL.NET dla platform Xamarin i platformy UWP.
Rejestrowanie i pobieranie aplikacji Szybki start
Istnieją dwie opcje uruchamiania aplikacji Szybki start:
- [Ekspresowe] Opcja 1. Zarejestrowanie i automatyczne skonfigurowanie aplikacji, a następnie pobranie przykładowego kodu
- [Ręczne] Opcja 2. Zarejestrowanie i ręczne skonfigurowanie aplikacji oraz przykładowego kodu
Opcja 1. Zarejestrowanie i automatyczne skonfigurowanie aplikacji, a następnie pobranie przykładowego kodu
- Przejdź do centrum administracyjnego usługi AMicrosoft Entra — Rejestracje aplikacji przewodnik Szybki start.
- Wprowadź nazwę aplikacji i wybierz pozycję Zarejestruj.
- Postępuj zgodnie z instrukcjami, aby pobrać i automatycznie skonfigurować nową aplikację.
Opcja 2. Zarejestrowanie i ręczne skonfigurowanie aplikacji oraz przykładowego kodu
Krok 1. Rejestrowanie aplikacji
Napiwek
Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.
Aby zarejestrować aplikację i dodać informacje na temat rejestracji aplikacji do rozwiązania, wykonaj następujące czynności:
- Zaloguj się do centrum administracyjnego usługi Microsoft Entra.
- Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje.
- Przejdź do pozycji Identity>Applications> Rejestracje aplikacji wybierz pozycję Nowa rejestracja.
- Wprowadź nazwę aplikacji, na przykład
UWP-App-calling-MsGraph
. Użytkownicy aplikacji mogą zobaczyć tę nazwę i możesz ją zmienić później. - W sekcji Obsługiwane typy kont wybierz pozycję Konta w dowolnym katalogu organizacyjnym i konta osobiste Microsoft (na przykład Skype, Xbox, Outlook.com).
- Wybierz pozycję Zarejestruj , aby utworzyć aplikację, a następnie zapisz identyfikator aplikacji (klienta) do użycia w późniejszym kroku.
- W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
- Wybierz pozycję Dodaj platformę>Aplikacje mobilne i klasyczne.
- W obszarze Identyfikatory URI przekierowania wybierz pozycję
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Wybierz Konfiguruj.
Krok 2. Pobieranie projektu
Pobieranie przykładowej aplikacji platformy UWP
Napiwek
Aby uniknąć błędów spowodowanych ograniczeniami długości ścieżki w systemie Windows, zalecamy wyodrębnienie archiwum lub sklonowanie repozytorium do katalogu w pobliżu katalogu głównego dysku.
Krok 3. Konfigurowanie projektu
Wyodrębnij archiwum .zip do folderu lokalnego w pobliżu katalogu głównego dysku. Na przykład w folderze C:\Azure-Samples.
Otwórz projekt w programie Visual Studio. Zainstaluj obciążenie programistyczne platforma uniwersalna systemu Windows i wszystkie poszczególne składniki zestawu SDK, jeśli zostanie wyświetlony monit.
W MainPage.Xaml.cs zmień wartość
ClientId
zmiennej na identyfikator aplikacji (klienta) zarejestrowanej wcześniej aplikacji.private const string ClientId = "Enter_the_Application_Id_here";
Identyfikator aplikacji (klienta) można znaleźć w okienku Przegląd aplikacji w centrum administracyjnym firmy Microsoft Entra (Aplikacje> tożsamości>Rejestracje aplikacji>{Rejestracja aplikacji}).
Utwórz, a następnie wybierz nowy certyfikat testowy z podpisem własnym dla pakietu:
- W Eksplorator rozwiązań kliknij dwukrotnie plik Package.appxmanifest.
- Wybierz pozycję Pakowanie>wybierz certyfikat...>Utwórz....
- Wprowadź hasło, a następnie wybierz przycisk OK. Zostanie utworzony certyfikat o nazwie Native_UWP_V2_TemporaryKey.pfx .
- Wybierz przycisk OK, aby odrzucić okno dialogowe Wybieranie certyfikatu, a następnie sprawdź, czy w Eksplorator rozwiązań jest widoczny plik Native_UWP_V2_TemporaryKey.pfx.
- W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt Native_UWP_V2 i wybierz polecenie Właściwości.
- Wybierz pozycję Podpisywanie, a następnie wybierz plik pfx utworzony na liście rozwijanej Wybierz plik klucza silnej nazwy.
Krok 4. Uruchamianie aplikacji
Aby uruchomić przykładową aplikację na komputerze lokalnym:
Na pasku narzędzi programu Visual Studio wybierz odpowiednią platformę (prawdopodobnie x64 lub x86, a nie ARM). Urządzenie docelowe powinno zmienić się z Urządzenia na Komputer lokalny.
Wybierz kolejno pozycje Debuguj>Uruchom bez debugowania.
Jeśli zostanie wyświetlony monit o to, może być konieczne włączenie trybu dewelopera, a następnie ponownie uruchom aplikację bez debugowania.
Po wyświetleniu okna aplikacji możesz wybrać przycisk Wywołaj interfejs API programu Microsoft Graph, wprowadzić poświadczenia i wyrazić zgodę na uprawnienia żądane przez aplikację. Jeśli operacja powiedzie się, aplikacja wyświetli pewne informacje o tokenie i dane uzyskane z wywołania interfejsu API programu Microsoft Graph.
Jak działa przykład
MSAL.NET
BIBLIOTEKA MSAL (Microsoft.Identity.Client) to biblioteka używana do logowania użytkowników i żądania tokenów zabezpieczających. Tokeny zabezpieczające są używane do uzyskiwania dostępu do interfejsu API chronionego przez Platforma tożsamości Microsoft. Bibliotekę MSAL można zainstalować, uruchamiając następujące polecenie w Konsoli menedżera pakietów programu Visual Studio:
Install-Package Microsoft.Identity.Client
Inicjowanie biblioteki MSAL
Aby dodać odwołanie do biblioteki MSAL, dodaj następujący kod:
using Microsoft.Identity.Client;
Następnie biblioteka MSAL jest inicjowana przy użyciu następującego kodu:
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
Wartość to ClientId
identyfikator aplikacji (klienta) aplikacji zarejestrowanej w centrum administracyjnym firmy Microsoft Entra. Tę wartość można znaleźć na stronie Przegląd aplikacji w centrum administracyjnym firmy Microsoft Entra.
Przesyłanie żądań tokenów
Biblioteka MSAL ma dwie metody uzyskiwania tokenów w aplikacji platformy UWP: AcquireTokenInteractive
i AcquireTokenSilent
.
Interaktywne pobieranie tokenu użytkownika
Niektóre sytuacje wymagają wymuszenia interakcji użytkowników z Platforma tożsamości Microsoft za pośrednictwem okna podręcznego w celu zweryfikowania swoich poświadczeń lub wyrażenia zgody. Przykłady obejmują:
- Użytkownicy po raz pierwszy logować się do aplikacji
- Gdy użytkownicy muszą ponownie wprowadzić poświadczenia, ponieważ hasło wygasło.
- Gdy aplikacja żąda dostępu do zasobu, użytkownik musi wyrazić zgodę na
- Gdy wymagane jest uwierzytelnianie dwuetapowe.
authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
Parametr scopes
zawiera żądane zakresy, takie jak { "user.read" }
program Microsoft Graph lub { "api://<Application ID>/access_as_user" }
niestandardowe internetowe interfejsy API.
Dyskretne pobieranie tokenu użytkownika
AcquireTokenSilent
Użyj metody , aby uzyskać tokeny w celu uzyskania dostępu do chronionych zasobów po początkowej AcquireTokenInteractive
metodzie. Nie chcesz wymagać, aby użytkownik weryfikował swoje poświadczenia za każdym razem, gdy musi uzyskać dostęp do zasobu. Przez większość czasu potrzebne są pozyskiwanie i odnawianie tokenów bez interakcji z użytkownikiem
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
scopes
zawiera żądane zakresy, takie jak{ "user.read" }
program Microsoft Graph lub{ "api://<Application ID>/access_as_user" }
niestandardowe internetowe interfejsy API.firstAccount
określa pierwsze konto użytkownika w pamięci podręcznej (biblioteka MSAL obsługuje wielu użytkowników w jednej aplikacji).
Pomoc i obsługa techniczna
Jeśli potrzebujesz pomocy, chcesz zgłosić problem lub poznać opcje pomocy technicznej, zobacz Pomoc i obsługa techniczna dla deweloperów.
Następne kroki
Wypróbuj samouczek dotyczący aplikacji klasycznych systemu Windows, aby uzyskać instrukcje krok po kroku dotyczące tworzenia aplikacji i nowych funkcji, w tym pełne objaśnienie informacji zawartych w tym podręczniku Szybki start.