Szybki start: logowanie użytkowników i wywoływanie programu Microsoft Graph w aplikacji klasycznej systemu Windows

W tym przewodniku Szybki start pobierzesz i uruchomisz przykładowy kod, który pokazuje, jak aplikacja Windows Presentation Foundation (WPF) może logować użytkowników i uzyskiwać token dostępu w celu wywołania interfejsu API programu Microsoft Graph. Utworzona aplikacja klasyczna używa przepływu kodu autoryzacji sparowanego ze standardem Proof Key for Code Exchange (PKCE).

Zobacz Jak działa przykład, aby zapoznać się z ilustracją.

Wymagania wstępne

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 firmy Microsoft Entra — Rejestracje aplikacji quickstart.
  2. Wprowadź nazwę aplikacji i wybierz pozycję Zarejestruj.
  3. Postępuj zgodnie z instrukcjami, aby pobrać i automatycznie skonfigurować nową aplikację za pomocą tylko jednego kliknięcia.

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 ręcznie 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 ikonyUstawienia 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 Win-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ę.
  7. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
  8. Wybierz pozycję Dodaj platformę>Aplikacje mobilne i klasyczne.
  9. W sekcji Identyfikatory URI przekierowania wybierz i https://login.microsoftonline.com/common/oauth2/nativeclient w obszarze Niestandardowe identyfikatory URI przekierowania dodajms-appx-web://microsoft.aad.brokerplugin/{client_id}, gdzie {client_id} jest identyfikator aplikacji (klienta) aplikacji (ten sam identyfikator GUID, który jest wyświetlany w msal{client_id}://auth polu wyboru).
  10. Wybierz Konfiguruj.

Krok 2. Pobieranie projektu

Pobieranie przykładowej aplikacji WPF

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 plik zip do folderu lokalnego blisko folderu głównego dysku, na przykład C:\Azure-Samples.

  2. Otwórz projekt w programie Visual Studio.

  3. Edytuj plik App.Xaml.cs i zastąp wartości pól ClientId i Tenant następującym kodem:

    private static string ClientId = "Enter_the_Application_Id_here";
    private static string Tenant = "Enter_the_Tenant_Info_Here";
    

Gdzie:

  • Enter_the_Application_Id_here jest identyfikatorem aplikacji (klienta) dla zarejestrowanej aplikacji.

    Aby znaleźć wartość identyfikatora aplikacji (klienta), przejdź do strony Przegląd aplikacji w centrum administracyjnym firmy Microsoft Entra.

  • Enter_the_Tenant_Info_Here to wartość ustawiana na jedną z następujących opcji:

    • Jeśli aplikacja obsługuje tryb Konta w tym katalogu organizacyjnym, zastąp tę wartość za pomocą wartości Identyfikator dzierżawy lub Nazwa dzierżawy (na przykład contoso.microsoft.com)

    • Jeśli aplikacja obsługuje trybKonta w dowolnym katalogu organizacyjnym, zastąp tę wartość za pomocą wartości organizations

    • Jeśli aplikacja obsługuje konta w dowolnym katalogu organizacyjnym i osobistych kontach Microsoft, zastąp tę wartość wartością common.

      Aby znaleźć wartości identyfikatora katalogu (dzierżawy) i obsługiwane typy kont, przejdź do strony Przegląd aplikacji w centrum administracyjnym firmy Microsoft Entra.

Krok 4. Uruchamianie aplikacji

Aby skompilować i uruchomić przykładową aplikację w programie Visual Studio, wybierz menu>Debugowanie Rozpocznij debugowanie lub naciśnij klawisz F5. Zostanie wyświetlony głównywindow aplikacji.

Po wyświetleniu głównego okna aplikacji wybierz przycisk Wywołaj interfejs API programu Microsoft Graph. Zostanie wyświetlony monit o zalogowanie się przy użyciu konta Microsoft Entra (konta służbowego) lub konta Microsoft (live.com, outlook.com).

Jeśli uruchamiasz aplikację po raz pierwszy, zostanie wyświetlony monit o wyrażenie zgody na zezwolenie aplikacji na dostęp do profilu użytkownika i zalogowanie się. Po wyrażeniu zgody na żądane uprawnienia aplikacja wyświetla, że pomyślnie się zalogowano. Powinny zostać wyświetlone podstawowe informacje o tokenie i dane użytkownika uzyskane z wywołania interfejsu API programu Microsoft Graph.

Więcej informacji

Jak działa przykład

Diagram showing how the sample app generated by this quickstart works.

MSAL.NET

BIBLIOTEKA MSAL (Microsoft.Identity.Client) to biblioteka używana do logowania użytkowników i żądania tokenów używanych 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 -IncludePrerelease

Inicjowanie biblioteki MSAL

Aby dodać odwołanie do biblioteki MSAL, dodaj następujący kod:

using Microsoft.Identity.Client;

Następnie zainicjuj bibliotekę MSAL, używając następującego kodu:

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Gdzie: opis
ClientId To identyfikator aplikacji (klienta) dla 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 oferuje dwie metody uzyskiwania tokenów: 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, aby zweryfikować swoje poświadczenia lub wyrazić zgodę. Przykłady obejmują:

  • Gdy nowi 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 zasobów wymagającego zgody użytkownika.
  • Gdy wymagane jest uwierzytelnianie dwuetapowe.
authResult = await app.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Gdzie: opis
_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

Nie chcesz, aby użytkownik musiał weryfikować poświadczenia za każdym razem, gdy musi uzyskać dostęp do zasobu. Przez większość czasu uzyskiwanie i odnawianie tokenów powinno odbywać się bez żadnej interakcji z użytkownikiem. Możesz użyć metody AcquireTokenSilent do uzyskiwania tokenów umożliwiających dostęp do chronionych zasobów po początkowym skorzystaniu z metody AcquireTokenInteractive:

var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Gdzie: opis
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 pierwszego 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.