Rychlý start: ASP.NET core webovou aplikaci, která přihlašuje uživatele a volá Microsoft Graph jejich jménem

Vítejte! Pravděpodobně to není stránka, kterou jste očekávali. Zatímco pracujeme na opravě, měl by vás tento odkaz dostat na správný článek:

Rychlý start: Přidání přihlašování účtem Microsoft do webové aplikace ASP.NET Core

Omlouváme se za nepříjemnosti a vážíme si vaší trpělivosti, zatímco pracujeme na vyřešení tohoto problému.

V tomto rychlém startu si stáhnete a spustíte ukázku kódu, která ukazuje, jak webová aplikace ASP.NET Core může přihlašovat uživatele z libovolné organizace Microsoft Entra a volat Microsoft Graph.

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

Krok 1: Konfigurace aplikace na webu Azure Portal

Aby ukázka kódu v tomto rychlém startu fungovala, přidejte do registrace aplikace identifikátor URI https://localhost:44321/signin-oidc přesměrování a >adresu URLhttps://localhost:44321/signout-oidc odhlášení front-channel.

Already configured Vaše aplikace je nakonfigurovaná s těmito atributy.

Krok 2: Stažení projektu ASP.NET Core

Spustit projekt.

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: Aplikace je nakonfigurovaná a připravená ke spuštění

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

Poznámka:

Enter_the_Supported_Account_Info_Here

O kódu

Tato část poskytuje přehled kódu potřebného k přihlášení uživatelů a volání rozhraní Microsoft Graph API jejich jménem. Tento přehled může být užitečný k pochopení fungování kódu, hlavních argumentů a také v případě, že chcete přidat přihlášení k existující aplikaci ASP.NET Core a volat Microsoft Graph. Používá Microsoft.Identity.Web, což je obálka kolem MSAL.NET.

Jak ukázka funguje

Diagram that how the sample app generated by this quickstart works.

Startup – třída

Middleware Microsoft.AspNetCore.Authentication používá Startup třídu, která se spustí při inicializaci procesu hostování:


  public void ConfigureServices(IServiceCollection services)
  {  
    // Get the scopes from the configuration (appsettings.json)
    var initialScopes = Configuration.GetValue<string>("DownstreamApi:Scopes")?.Split(' ');
  
      // Add sign-in with Microsoft
      services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"))

            // Add the possibility of acquiring a token to call a protected web API
            .EnableTokenAcquisitionToCallDownstreamApi(initialScopes)

                // Enables controllers and pages to get GraphServiceClient by dependency injection
                // And use an in memory token cache
                .AddMicrosoftGraph(Configuration.GetSection("DownstreamApi"))
                .AddInMemoryTokenCaches();

      services.AddControllersWithViews(options =>
      {
          var policy = new AuthorizationPolicyBuilder()
              .RequireAuthenticatedUser()
              .Build();
          options.Filters.Add(new AuthorizeFilter(policy));
      });

      // Enables a UI and controller for sign in and sign out.
      services.AddRazorPages()
          .AddMicrosoftIdentityUI();
  }

Tato AddAuthentication() metoda nakonfiguruje službu tak, aby přidala ověřování na základě souborů cookie, které se používá ve scénářích prohlížeče, a k nastavení výzvy na OpenID Připojení.

Řádek obsahující .AddMicrosoftIdentityWebApp přidání ověřování Microsoft Identity Platform do vaší aplikace. To poskytuje Microsoft.Identity.Web. Pak se nakonfiguruje pro přihlášení pomocí platformy Microsoft Identity Platform na základě informací v AzureAD části konfiguračního souboru appsettings.json :

klíč appsettings.json Popis >
ClientId ID aplikace (klienta) zaregistrované na webu Azure Portal
Instance Koncový bod služby tokenů zabezpečení (STS) pro ověření uživatele Tato hodnota je obvykle https://login.microsoftonline.com/označující veřejný cloud Azure.
TenantId Název tenanta nebo jeho ID tenanta (GUID) nebo běžné přihlašování uživatelů pomocí pracovních nebo školních účtů nebo osobních účtů Microsoft.

Tato EnableTokenAcquisitionToCallDownstreamApi metoda umožňuje vaší aplikaci získat token pro volání chráněných webových rozhraní API. AddMicrosoftGraph umožňuje řadičům nebo stránkám Razor pages využívat výhody přímo GraphServiceClient (injektáží závislostí) a AddInMemoryTokenCaches metody umožňují vaší aplikaci využívat výhod mezipaměti tokenů.

Tato Configure() metoda obsahuje dvě důležité metody a app.UseAuthentication()app.UseAuthorization(), které umožňují jejich pojmenované funkce. V Configure() metodě je také nutné zaregistrovat trasy webu Microsoft Identity s alespoň jedním voláním endpoints.MapControllerRoute() nebo voláním endpoints.MapControllers().

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});

// endpoints.MapControllers(); // REQUIRED if MapControllerRoute() isn't called.

Ochrana řadiče nebo akcí řadiče

Kontroler nebo jeho metody můžete chránit použitím atributu [Authorize] u třídy kontroleru nebo jedné nebo více jeho metod. Tento [Authorize] atribut omezuje přístup povolením pouze ověřených uživatelů. Pokud uživatel ještě není ověřený, je možné zahájit ověřovací výzvu pro přístup k kontroleru. V tomto rychlém startu se obory čtou z konfiguračního souboru:

[AuthorizeForScopes(ScopeKeySection = "DownstreamApi:Scopes")]
public async Task<IActionResult> Index()
{
    var user = await _graphServiceClient.Me.GetAsync();
    ViewData["ApiResult"] = user?.DisplayName;

    return View();
}

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

Úložiště GitHubu, které obsahuje ukázku kódu ASP.NET Core, na kterou odkazuje tento rychlý start, obsahuje pokyny a další ukázky kódu, které ukazují, jak:

  • Přidání ověřování do nové webové aplikace ASP.NET Core
  • Volání Microsoft Graphu, jiných rozhraní API Microsoftu nebo vlastních webových rozhraní API
  • Přidání autorizace
  • Přihlášení uživatelů v národních cloudech nebo pomocí sociálních identit