Rychlý start: Získání tokenu a volání rozhraní API Microsoft Graph z desktopové aplikace Windows

v tomto rychlém startu si stáhnete a spustíte ukázku kódu, která ukazuje, jak se aplikace Windows desktop .net (WPF) může přihlašovat uživatelům a získat přístupový token pro volání rozhraní API Microsoft Graph.

Podívejte se, jak ukázka funguje pro ilustraci.

Požadavky

Registrace a stažení aplikace pro rychlý start

Aplikaci pro rychlý start můžete spustit dvěma způsoby:

Možnost 1: Registrace a automatická konfigurace aplikace a následné stažení vzorového kódu

  1. Přejít k prostředí rychlý Start pro Azure Portal registrace aplikací
  2. Zadejte název vaší aplikace a Vyberte Zaregistrovat.
  3. 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: Registrace aplikace

Pokud chcete zaregistrovat aplikaci a ručně přidat informace o registraci aplikace ke svému řešení, postupujte následovně:

  1. Přihlaste se k webu Azure Portal.
  2. Pokud máte přístup k více klientům, pomocí filtru adresáře a odběry v horní nabídce přepněte do tenanta, ve kterém chcete aplikaci zaregistrovat.
  3. Vyhledejte a vyberte Azure Active Directory.
  4. V části Spravovat vyberte Registrace aplikací > Nová registrace.
  5. Zadejte název vaší aplikace, například Win-App-calling-MsGraph . Uživatel vaší aplikace může tento název zobrazit a později ho můžete změnit.
  6. 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).
  7. Výběrem možnosti Registrovat aplikaci vytvořte.
  8. V části Spravovat vyberte ověřování.
  9. Vyberte Přidat platformu > mobilní a desktopové aplikace.
  10. V části identifikátory URI pro přesměrování vyberte https://login.microsoftonline.com/common/oauth2/nativeclient a v části vlastní identifikátory URI pro přesměrování přidejte ms-appx-web://microsoft.aad.brokerplugin/{client_id} , kde {client_id} je ID aplikace (klienta) vaší aplikace (stejný identifikátor GUID, který se zobrazí v msal{client_id}://auth zaškrtávacím políčku).
  11. Vyberte Konfigurovat.

Krok 1: Nakonfigurujte si aplikaci na portálu Azure Portal

Aby ukázka kódu v tomto rychlém startu fungovala, přidejte identifikátor URI pro přesměrování https://login.microsoftonline.com/common/oauth2/nativeclient a ms-appx-web://microsoft.aad.brokerplugin/{client_id} .

Už nakonfigurované Vaše aplikace je nakonfigurovaná s těmito atributy.

Krok 2: Stažení projektu sady Visual Studio

spusťte projekt pomocí Visual Studio 2019.

Tip

Aby nedocházelo k chybám způsobeným omezením délky cest ve Windows, doporučujeme extrahovat archiv nebo klonování úložiště do adresáře v rámci kořenového adresáře vaší jednotky.

Krok 3: vaše aplikace je nakonfigurovaná a připravená ke spuštění.

Nakonfigurovali jsme projekt s hodnotami vlastností vaší aplikace a je připraven ke spuštění.

Poznámka

Enter_the_Supported_Account_Info_Here

Krok 3: Nakonfigurujte si projekt sady Visual Studio

  1. Extrahujte soubor zip do místní složky blízko ke kořenovému adresáři disku, například C:\Azure-Samples.

  2. Otevřete projekt v sadě Visual Studio.

  3. Upravte soubor App.Xaml.cs a nahraďte hodnoty polí ClientId a Tenant 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), na stránce s přehledem aplikace se v Azure Portal.

  • 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 hodnotou common .

      Pokud chcete zjistit hodnoty ID adresáře (tenanta) a podporovaných typů účtů, na stránce přehledu aplikace v Azure Portal.

Další informace

Jak ukázka funguje

Ukazuje, jak ukázková aplikace vygenerovaná tímto rychlým startem funguje.

MSAL.NET

MSAL (Microsoft. identity. Client) je knihovna používaná k přihlašování uživatelů a žádosti o tokeny používané pro přístup k rozhraní API chráněnému 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: Description
ClientId Je ID aplikace (klienta), kterou jste zaregistrovali na webu Azure Portal. Tuto hodnotu najdete na stránce Přehled aplikace na webu Azure Portal.

Žá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é v Microsoft identity platform prostřednictvím automaticky otevíraného okna mohli při ověřování svých přihlašovacích údajů nebo k udělení souhlasu komunikovat s. Možné příklady:

  • Při prvním přihlášení uživatele 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.PublicClientApp.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Kde: Description
_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.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Kde: Description
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 ohlásit problém nebo získat informace o možnostech podpory, přečtěte si téma pomoc a podpora 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.