Udostępnij za pośrednictwem


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 desktopowa używa przepływu autoryzacji kodem sparowanego ze standardem Proof Key for Code Exchange (PKCE).

Zobacz Jak działa próbka dla ilustracji.

Warunki wstępne

Rejestrowanie i pobieranie aplikacji Szybki start

Dostępne są dwie opcje uruchamiania aplikacji Szybki start:

Opcja 1. Rejestrowanie i automatyczne konfigurowanie aplikacji, a następnie pobieranie przykładu kodu

  1. Przejdź do centrum zarządzania Microsoft Entra - rejestracje aplikacjidoświadczenia szybkiego startu.
  2. Wprowadź nazwę aplikacji i wybierz opcję Zarejestruj.
  3. Postępuj zgodnie z instrukcjami, aby pobrać i automatycznie skonfigurować nową aplikację za pomocą jednego kliknięcia.

Opcja 2. Rejestrowanie i ręczne konfigurowanie aplikacji i przykładu kodu

Krok 1. Rejestrowanie aplikacji

Aby zarejestrować aplikację i ręcznie dodać informacje dotyczące rejestracji aplikacji do rozwiązania, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego 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 Tożsamość>Aplikacje>Rejestracje aplikacji, wybierz pozycję Nowa rejestracja.
  4. Wprowadź nazwę dla swojej 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 kontach osobistych Microsoft (na przykład Skype, Xbox, Outlook.com).
  6. Wybierz pozycję Zarejestruj, aby utworzyć aplikację.
  7. W obszarze Zarządzajwybierz pozycję Uwierzytelnianie.
  8. Wybierz pozycję Dodaj platformę>Aplikacje mobilne i na komputery stacjonarne.
  9. W sekcji identyfikatory URI przekierowania wybierz opcję https://login.microsoftonline.com/common/oauth2/nativeclient, a następnie w niestandardowe identyfikatory URI przekierowania dodaj ms-appx-web://microsoft.aad.brokerplugin/{client_id}, gdzie {client_id} jest identyfikatorem (klienta) Twojej aplikacji (ten sam identyfikator GUID, który jest wyświetlany w polu wyboru msal{client_id}://auth).
  10. Wybierz pozycję Konfiguruj.

Krok 2. Pobieranie projektu

Pobierz przykładową aplikację 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 w pobliżu katalogu głównego dysku, na przykład C:\Azure-Samples.

  2. Otwórz projekt w programie Visual Studio.

  3. Edytuj 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 — to identyfikator 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 — jest ustawiona na jedną z następujących opcji:

    • Jeśli aplikacja obsługuje konta w tym katalogu organizacyjnym, zastąp tę wartość identyfikatorem dzierżawy lub nazwą dzierżawy (na przykład contoso.microsoft.com)

    • Jeśli aplikacja obsługuje konta w dowolnym katalogu organizacyjnym, to należy zastąpić tę wartość na organizations.

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

      Aby znaleźć wartości identyfikatora usługi Directory (dzierżawy) i Obsługiwane typy kont, przejdź do strony przeglądu aplikacji w centrum administracyjnym firmy Microsoft Entra.

Krok 4. Uruchamianie aplikacji

Aby skompilować i uruchomić przykładową aplikację w programie Visual Studio, wybierz menu debugowania >Rozpocznij debugowanielub naciśnij 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 przedstawiający sposób działania przykładowej aplikacji wygenerowanej przez ten przewodnik szybkiego startu.

MSAL.NET

Biblioteka MSAL (Microsoft.Identity.Client) jest używana do logowania użytkowników i żądania tokenów niezbędnych do uzyskiwania dostępu do interfejsu API chronionego przez platformę tożsamości Microsoft. Bibliotekę MSAL można zainstalować, uruchamiając następujące polecenie w konsoli programu Visual Studio Package Manager:

Install-Package Microsoft.Identity.Client -IncludePrerelease

Inicjalizacja MSAL

Odwołanie do biblioteki MSAL można dodać za pomocą następującego kodu:

using Microsoft.Identity.Client;

Następnie zainicjuj bibliotekę MSAL przy użyciu 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 Czy identyfikator aplikacji (klienta) dla aplikacji zarejestrowanej w centrum administracyjnym firmy Microsoft Entra. Wartość tę można znaleźć na stronie Przegląd aplikacji w centrum administracyjnym Microsoft Entra.

Żądanie tokenów

MSAL ma dwie metody uzyskiwania tokenów: AcquireTokenInteractive i AcquireTokenSilent.

Interakcyjne pobieranie tokenu użytkownika

Niektóre sytuacje wymagają wymuszenia interakcji użytkowników z platformą tożsamości firmy Microsoft za pośrednictwem okna podręcznego w celu zweryfikowania ich poświadczeń lub wyrażenia zgody. Oto kilka przykładów:

  • Przy pierwszym logowaniu użytkowników do aplikacji
  • Gdy użytkownicy mogą wymagać ponownego podania poświadczeń, ponieważ hasło wygasło
  • Gdy aplikacja żąda dostępu do zasobu, użytkownik musi wyrazić zgodę na
  • Gdy wymagane jest uwierzytelnianie dwuskładnikowe
authResult = await app.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Gdzie: Opis
_scopes Zawiera żądane zakresy, takie jak { "user.read" } dla programu Microsoft Graph lub { "api://<Application ID>/access_as_user" } dla niestandardowych internetowych interfejsów API.

Dyskretne pobieranie tokenu użytkownika

Nie chcesz wymagać, aby użytkownik weryfikował swoje poświadczenia za każdym razem, gdy musi uzyskać dostęp do zasobu. W większości przypadków potrzebujesz pozyskiwania i odnawiania tokenów bez interakcji z użytkownikiem. Możesz użyć metody AcquireTokenSilent, aby uzyskać tokeny w celu uzyskania dostępu do chronionych zasobów po początkowej metodzie 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" } dla programu Microsoft Graph lub { "api://<Application ID>/access_as_user" } dla niestandardowych internetowych interfejsów API.
firstAccount Określa pierwszego użytkownika w pamięci podręcznej (biblioteka MSAL obsługuje wielu użytkowników w ramach 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 zapoznać się ze szczegółowym przewodnikiem po tworzeniu aplikacji i nowych funkcji, w tym pełne wyjaśnienie tego szybkiego startu.

samouczek dotyczący interfejsu API wywołania programu Graph