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
- Program Visual Studio z zainstalowanym obciążeniem programowania platforma uniwersalna systemu Windows
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 firmy Microsoft Entra — Rejestracje aplikacji quickstart.
- Wprowadź nazwę aplikacji i wybierz pozycję Zarejestruj.
- 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:
- Zaloguj się do centrum administracyjnego usługi Microsoft Entra.
- 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.
- Przejdź do pozycji Identity>Applications> Rejestracje aplikacji wybierz pozycję Nowa rejestracja.
- Wprowadź nazwę aplikacji, na przykład
Win-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ę.
- W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
- Wybierz pozycję Dodaj platformę>Aplikacje mobilne i klasyczne.
- 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 wmsal{client_id}://auth
polu wyboru). - 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
Wyodrębnij plik zip do folderu lokalnego blisko folderu głównego dysku, na przykład C:\Azure-Samples.
Otwórz projekt w programie Visual Studio.
Edytuj plik App.Xaml.cs i zastąp wartości pól
ClientId
iTenant
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
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.