Udostępnij za pośrednictwem


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

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:

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

  1. Przejdź do centrum administracyjnego usługi AMicrosoft Entra — Rejestracje aplikacji przewodnik Szybki start.
  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

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:

  1. Zaloguj się do centrum administracyjnego usługi 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 pozycji Identity>Applications> Rejestracje 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 konta osobiste 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 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 obciążenie programistyczne platforma uniwersalna systemu Windows i wszystkie poszczególne składniki zestawu SDK, jeśli zostanie wyświetlony monit.

  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 (Aplikacje> tożsamości>Rejestracje aplikacji>{Rejestracja aplikacji}).

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

    1. W Eksplorator 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 Eksplorator rozwiązań jest widoczny plik Native_UWP_V2_TemporaryKey.pfx.
    5. W Eksplorator 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 plik pfx utworzony na liście rozwijanej 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 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

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

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.