Sdílet prostřednictvím


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 na část , jak vzorek 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í ukázky kódu

  1. Přejděte do centra pro správu Microsoft Entra – Registrace aplikacíprostředí pro rychlý start.
  2. Zadejte název aplikace a vyberte Zaregistrovat.
  3. Postupujte podle pokynů ke stažení a automatické konfiguraci nové aplikace jediným kliknutím.

Možnost 2: Registrace a ruční konfigurace aplikace a ukázky kódu

Krok 1: Registrace aplikace

Pokud chcete aplikaci zaregistrovat a přidat informace o registraci aplikace do řešení ručně, postupujte takto:

  1. Přihlaste se do Microsoft Entra centra pro správu.
  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
  3. Přejděte do části Identity>Applications>App registrationsa vyberte Nová registrace.
  4. Zadejte název pro vaši aplikaci, 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.
  5. V části Podporované typy účtů vyberte Účty v libovolném organizačním adresáři a osobních účtech Microsoft (například Skype, Xbox, Outlook.com).
  6. Vyberte Zaregistrovat a vytvořte aplikaci.
  7. V části Spravovatvyberte Ověřování.
  8. Vyberte Přidat platformu>Mobilní a desktopové aplikace.
  9. V části URI přesměrování vyberte https://login.microsoftonline.com/common/oauth2/nativeclient a do vlastních URI přesměrování přidejte ms-appx-web://microsoft.aad.brokerplugin/{client_id}, kde {client_id} je ID (klienta) vaší aplikace (stejný identifikátor GUID, který se zobrazí v msal{client_id}://auth zaškrtávacím políčku).
  10. Vyberte Konfigurovat.

Krok 2: Stažení projektu

Stáhnout ukázkovou aplikaci WPF

Spropitné

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

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

  2. Otevřete projekt ve Visual Studio.

  3. Upravte 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:

  • Enter_the_Application_Id_here – je ID aplikace (klient) pro aplikaci, kterou jste zaregistrovali.

    Pokud chcete najít hodnotu ID aplikace (klienta), přejděte na stránku Přehled aplikace v Centru pro správu Microsoft Entra.

  • Enter_the_Tenant_Info_Here – je nastavená na jednu z následujících možností:

    • Pokud vaše aplikace podporuje Účty v tomto organizačním adresáři, nahraďte tuto hodnotu ID tenanta nebo název tenanta (například contoso.microsoft.com).

    • Pokud vaše aplikace podporuje účty v jakémkoli organizačním adresáři, nahraďte tuto hodnotu organizations

    • Pokud vaše aplikace podporuje Účty v libovolném organizačním adresáři a osobní účty Microsoft, nahraďte tuto hodnotu hodnotou common.

      Pokud chcete najít hodnoty ID adresáře (tenanta) a podporované typy účtů, přejděte na stránku přehledu 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.

Další informace

Jak ukázka funguje

diagram znázorňující, jak funguje ukázková aplikace vygenerovaná v tomto rychlém startu.

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ů sady Visual Studio :

Install-Package Microsoft.Identity.Client -IncludePrerelease

Inicializace MSAL

Odkaz na knihovnu MSAL můžete přidat přidáním následujícího kódu:

using Microsoft.Identity.Client;

Potom inicializujte 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) pro aplikaci zaregistrovanou v Centru pro správu Microsoft Entra. Tuto hodnotu najdete na stránce přehledu aplikace v Centru pro správu Microsoft Entra.

Vyžádání tokenů

MSAL má dvě metody pro získání tokenů: 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 příklady patří:

  • Při prvním přihlášení uživatelů k aplikaci
  • Když se uživatelům může vyžadovat opětovné zadání přihlašovacích údajů, protože vypršela platnost hesla
  • Když vaše aplikace požaduje přístup k prostředku, ke kterému musí uživatel udělit souhlas
  • Pokud je vyžadováno 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.

Bezobslužné získání tokenu uživatele

Nechcete vyžadovat, aby uživatel ověřil přihlašovací údaje pokaždé, když potřebuje přístup k prostředku. Ve většině případů chcete získat tokeny a obnovit je bez jakékoli interakce uživatele. Pomocí metody AcquireTokenSilent můžete získat tokeny pro přístup k chráněným prostředkům po počáteční metodě AcquireTokenInteractive:

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 jedné 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 si desktopový kurz windows pro kompletní podrobný průvodce vytvářením aplikací a nových funkcí, včetně úplného vysvětlení tohoto rychlého startu.