Rychlý start: Přihlášení uživatelů a volání Microsoft Graphu v desktopové aplikaci pro Windows
V tomto rychlém startu si stáhnete a spustíte ukázku kódu, která ukazuje, jak se aplikace WPF (Windows Presentation Foundation) může přihlásit uživatele a získat přístupový token pro volání rozhraní Microsoft Graph API. Desktopová aplikace, kterou vytvoříte, používá tok autorizačního kódu spárovaný se standardem PKCE (Proof Key for Code Exchange).
Podívejte se, jak ukázka funguje pro ilustraci.
Požadavky
- Visual Studio s nainstalovanou úlohou vývoje Univerzální platforma Windows
Registrace a stažení aplikace pro rychlý start
Aplikaci pro rychlý start můžete spustit dvěma způsoby:
- [Expresní] Možnost 1: Registrace a automatická konfigurace aplikace a následné stažení vzorového kódu
- [Ruční] Možnost 2: Registrace a ruční konfigurace aplikace a vzorového kódu
Možnost 1: Registrace a automatická konfigurace aplikace a následné stažení vzorového kódu
- Přejděte do Centra pro správu Microsoft Entra – Registrace aplikací zahájit prostředí.
- Zadejte název vaší aplikace a Vyberte Zaregistrovat.
- Postupujte podle pokynů ke stažení a automatické konfiguraci nové aplikace jedním kliknutím.
Možnost 2: Registrace a ruční konfigurace aplikace a vzorového kódu
Krok 1: Zaregistrujte si aplikaci
Tip
Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.
Pokud chcete zaregistrovat aplikaci a ručně přidat informace o registraci aplikace ke svému řešení, postupujte následovně:
- Přihlaste se do Centra pro správu Microsoft Entra.
- Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte na tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
- Přejděte na Aplikace> identit>Registrace aplikací vyberte Nová registrace.
- Zadejte název aplikace, například
Win-App-calling-MsGraph
. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit. - V části Podporované typy účtu vyberte Účty v libovolném organizačním adresáři a osobní účty Microsoft (například Skype, Xbox, Outlook.com).
- Výběrem možnosti Registrovat aplikaci vytvořte.
- V části Spravovat vyberte Ověřování.
- Vyberte Přidat platformu>Mobile a desktopové aplikace.
- V části Identifikátory URI pro přesměrování vyberte a v identifikátorech URI pro vlastní přesměrování přidejte
ms-appx-web://microsoft.aad.brokerplugin/{client_id}
https://login.microsoftonline.com/common/oauth2/nativeclient
{client_id}
ID aplikace (klienta) vaší aplikace (stejný identifikátor GUID, který se zobrazí v zaškrtávacímmsal{client_id}://auth
poli). - Vyberte Konfigurovat.
Krok 2: Stažení projektu
Tip
Pokud se chcete vyhnout chybám způsobeným omezením délky cesty ve Windows, doporučujeme extrahovat archiv nebo klonovat úložiště do adresáře blízko kořenového adresáře jednotky.
Krok 3: Konfigurace projektu
Extrahujte soubor zip do místní složky blízko ke kořenovému adresáři disku, například C:\Azure-Samples.
Otevřete projekt v sadě Visual Studio.
Upravte soubor App.Xaml.cs a nahraďte hodnoty polí
ClientId
aTenant
následujícím kódem:private static string ClientId = "Enter_the_Application_Id_here"; private static string Tenant = "Enter_the_Tenant_Info_Here";
Kde:
Hodnota
Enter_the_Application_Id_here
je ID aplikace (klienta), kterou jste zaregistrovali.Pokud chcete zjistit hodnotu ID aplikace (klienta), přejděte na stránku Přehled aplikace v Centru pro správu Microsoft Entra.
Hodnota
Enter_the_Tenant_Info_Here
je nastavená na jednu z následujících možností:Pokud vaše aplikace podporuje režim Účty jen v tomto organizačním adresáři, nahraďte tuto hodnotu za ID tenanta nebo Název tenanta (například contoso.microsoft.com).
Pokud vaše aplikace podporuje režim Účty v libovolném organizačním adresáři, nahraďte tuto hodnotu za
organizations
.Pokud vaše aplikace podporuje účty v libovolném organizačním adresáři a osobních účtech Microsoft, nahraďte tuto hodnotu
common
hodnotou .Pokud chcete najít hodnoty ID adresáře (tenanta) a podporovaných typů účtů, přejděte na stránku Přehled aplikace v Centru pro správu Microsoft Entra.
Krok 4: Spuštění aplikace
Pokud chcete sestavit a spustit ukázkovou aplikaci v sadě Visual Studio, vyberte nabídku>Ladění spustit ladění nebo stiskněte klávesu F5. Zobrazí se mainWindow vaší aplikace.
Když se zobrazí hlavní okno aplikace, vyberte tlačítko Volat rozhraní Microsoft Graph API. Zobrazí se výzva k přihlášení pomocí účtu Microsoft Entra (pracovního nebo školního účtu) nebo účtu Microsoft (live.com, outlook.com).
Pokud aplikaci spouštíte poprvé, zobrazí se výzva k udělení souhlasu, abyste aplikaci povolili přístup k vašemu profilu uživatele a přihlásili se. Po vyjádření souhlasu s požadovanými oprávněními se aplikace zobrazí, že jste se úspěšně přihlásili. Měli byste vidět některé základní informace o tokenu a uživatelská data získaná z volání rozhraní Microsoft Graph API.
Více informací
Jak ukázka funguje
MSAL.NET
MSAL (Microsoft.Identity.Client) je knihovna, která slouží k přihlášení uživatelů a vyžádání tokenů používaných pro přístup k rozhraní API chráněnému platformou Microsoft Identity Platform. MSAL můžete nainstalovat spuštěním následujícího příkazu v Konzole Správce balíčků v sadě Visual Studio:
Install-Package Microsoft.Identity.Client -IncludePrerelease
Inicializace knihovny MSAL
Odkaz na knihovnu MSAL můžete přidat tak, že přidáte následující kód:
using Microsoft.Identity.Client;
Potom inicializujte knihovnu MSAL pomocí následujícího kódu:
IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
.Build();
Kde: | Popis |
---|---|
ClientId |
Je ID aplikace (klienta) aplikace zaregistrované v Centru pro správu Microsoft Entra. Tuto hodnotu najdete na stránce Přehled aplikace v Centru pro správu Microsoft Entra. |
Žádosti o tokeny
Knihovna MSAL používá k získání tokenů dvě metody: AcquireTokenInteractive
a AcquireTokenSilent
.
Interaktivní získání tokenu uživatele
Některé situace vyžadují, aby uživatelé komunikovali s platformou Microsoft Identity Platform prostřednictvím automaticky otevíraných oken, aby ověřili své přihlašovací údaje nebo udělili souhlas. Mezi některé příklady patří:
- Při prvním přihlášení k aplikaci
- Když je potřeba, aby uživatelé znovu zadali svoje přihlašovací údaje, protože vypršela platnost hesla
- Když vaše aplikace žádá o přístup k prostředku, ke kterému musí dát uživatel souhlas
- Když je nutné dvoufaktorové ověřování
authResult = await app.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Kde: | Popis |
---|---|
_scopes |
Obsahuje požadované obory, například { "user.read" } pro Microsoft Graph nebo { "api://<Application ID>/access_as_user" } pro vlastní webová rozhraní API. |
Získání tokenu uživatele bez upozornění
Nechcete vyžadovat, aby uživatel ověřoval přihlašovací údaje pokaždé, když potřebuje přístup k prostředku. Ve většině případů budete chtít tokeny pořizovat a obnovovat bez nutnosti zásahu uživatele. Po počáteční metodě AcquireTokenInteractive
můžete použít metodu AcquireTokenSilent
a získat tokeny pro přístup k chráněným prostředkům:
var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Kde: | Popis |
---|---|
scopes |
Obsahuje požadované obory, například { "user.read" } pro Microsoft Graph nebo { "api://<Application ID>/access_as_user" } pro vlastní webová rozhraní API. |
firstAccount |
Určuje prvního uživatele v mezipaměti (MSAL podporuje více uživatelů v jediné aplikaci). |
Nápověda a podpora
Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si nápovědu a podporu pro vývojáře.
Další kroky
Vyzkoušejte kurz pro plochu Windows, kde najdete podrobný návod k vytváření aplikací a nových funkcí, včetně úplného popisu tohoto rychlého startu.