Udostępnij za pośrednictwem


Szybki start: logowanie użytkowników i wywoływanie Microsoft Graph w aplikacji na platformie Uniwersalnej Platformy Windows (UWP)

W tym przewodniku szybkiego startu pobierzesz i uruchomisz kod przykładowy, który pokazuje, jak aplikacja na uniwersalnej platformie Windows (UWP) może logować użytkowników i uzyskiwać token dostępu w celu wywołania API Microsoft Graph.

Zobacz Jak działa próbka dla ilustracji.

Wymagania wstępne

Uwaga

MSAL.NET w wersji 4.61.0 lub nowszej nie zapewnia obsługi Platforma Uniwersalna systemu Windows (UWP), Xamarin Android oraz Xamarin iOS. Zalecamy migrację aplikacji UWP (Universal Windows Platform) do nowoczesnych frameworków, takich jak WINUI. Przeczytaj więcej o wycofaniu w artykule "Ogłoszenie nadchodzącego wycofania MSAL.NET dla platform Xamarin i UWP".

Rejestrowanie i pobieranie aplikacji Szybki start

Istnieją dwie opcje uruchamiania aplikacji Szybki start:

Opcja 1. Zarejestrowanie i automatyczne skonfigurowanie aplikacji, a następnie pobranie przykładowego kodu

  1. Przejdź do centrum administracyjnego usługi AMicrosoft Entra — przewodnik Szybki start dotyczący rejestracji aplikacji .
  2. Wprowadź nazwę aplikacji i wybierz pozycję Zarejestruj.
  3. 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

Aby zarejestrować aplikację i dodać informacje na temat rejestracji aplikacji do rozwiązania, wykonaj następujące czynności:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra.
  2. 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.
  3. Przejdź do pozycjiRejestracje aplikacji>, wybierz pozycję Nowa rejestracja.
  4. Wprowadź nazwę aplikacji, na przykład UWP-App-calling-MsGraph. Użytkownicy aplikacji mogą zobaczyć tę nazwę i możesz ją zmienić później.
  5. W sekcji Obsługiwane typy kont wybierz pozycję Konta w dowolnym katalogu organizacyjnym i osobistych kontach Microsoft (na przykład Skype, Xbox, Outlook.com).
  6. Wybierz pozycję Zarejestruj , aby utworzyć aplikację, a następnie zapisz identyfikator aplikacji (klienta) do użycia w późniejszym kroku.
  7. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
  8. Wybierz pozycję Dodaj platformę>Aplikacje mobilne i klasyczne.
  9. W obszarze Identyfikatory URI przekierowania wybierz pozycję https://login.microsoftonline.com/common/oauth2/nativeclient.
  10. Wybierz pozycję 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

  1. Wyodrębnij archiwum .zip do folderu lokalnego w pobliżu katalogu głównego dysku. Na przykład w folderze C:\Azure-Samples.

  2. Otwórz projekt w programie Visual Studio. Zainstaluj pakiet narzędzi deweloperskich dla platformy uniwersalnej systemu Windows i wszystkie poszczególne składniki zestawu SDK na żądanie.

  3. 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 (rejestracje> aplikacji Entra ID>{Rejestracja aplikacji}).

  4. Utwórz, a następnie wybierz nowy certyfikat testowy z podpisem własnym dla pakietu:

    1. W Eksploratorze rozwiązań kliknij dwukrotnie plik Package.appxmanifest .
    2. Wybierz pozycję Pakowanie>wybierz certyfikat...>Utwórz....
    3. Wprowadź hasło, a następnie wybierz przycisk OK. Zostanie utworzony certyfikat o nazwie Native_UWP_V2_TemporaryKey.pfx .
    4. Wybierz przycisk OK , aby odrzucić okno dialogowe Wybieranie certyfikatu , a następnie sprawdź, czy w Eksploratorze rozwiązań jest widoczny komunikat Native_UWP_V2_TemporaryKey.pfx .
    5. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt Native_UWP_V2 i wybierz polecenie Właściwości.
    6. Wybierz pozycję Podpisywanie, a następnie wybierz utworzony przez ciebie plik .pfx w rozwijanym menu Wybierz plik klucza silnej nazwy.

Krok 4. Uruchamianie aplikacji

Aby uruchomić przykładową aplikację na komputerze lokalnym:

  1. 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.

  2. Wybierz pozycję Debuguj>rozpocznij 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

Diagram przedstawiający sposób działania przykładowej aplikacji wygenerowanej przez ten szybki start.

MSAL.NET

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

Inicjalizacja 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ść ClientId to identyfikator aplikacji (klienta) aplikacji, którą zarejestrowałeś w centrum administracyjnym 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 pobierania tokenów w aplikacji platformy UWP: AcquireTokenInteractive i AcquireTokenSilent.

Interaktywne pobieranie tokenu użytkownika

Niektóre sytuacje wymagają wymuszenia, aby użytkownicy korzystali z platformy 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 logują się do aplikacji po raz pierwszy.
  • 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

Użyj metody AcquireTokenSilent, aby uzyskać tokeny umożliwiające dostęp do chronionych zasobów po zastosowaniu początkowej metody AcquireTokenInteractive. Nie chcesz wymagać, aby użytkownik weryfikował swoje poświadczenia za każdym razem, gdy musi uzyskać dostęp do zasobu. Zazwyczaj chcesz, aby pozyskiwanie tokenów i ich odnawianie odbywało się 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 pulpitu systemu Windows, aby uzyskać kompletny przewodnik krok po kroku dotyczący tworzenia aplikacji i nowych funkcji, w tym pełne objaśnienie tego szybkiego startu.