Rychlý start: ASP.NET Core webové aplikace, která přihlašuje uživatele a volá microsoft Graph 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: ASP.NET Core webové aplikace, která přihlašuje uživatele a volá webové rozhraní API

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 stáhnete a spustíte ukázku kódu, která ukazuje, jak může webová aplikace ASP.NET Core přihlásit uživatele z libovolné organizace Azure Active Directory (Azure AD) a volat Microsoft Graph.

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

Krok 1: Konfigurace aplikace v Azure Portal

Aby ukázka kódu v tomto rychlém startu fungovala, přidejte do registrace aplikace identifikátor URIhttps://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

Spusťte projekt.

Tip

Pokud chcete zabránit chybám způsobeným omezením délky cesty v Windows, doporučujeme extrahovat archiv nebo klonovat úložiště do adresáře poblíž kořenového adresáře jednotky.

Krok 3: Vaše 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

Informace o kódu

Tato část obsahuje přehled kódu potřebného k přihlášení uživatelů a volání 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

! [Ukazuje, jak funguje ukázková aplikace vygenerovaná tímto rychlým startem. (media/quickstart-v2-aspnet-core-webapp-calls-graph/> aspnetcorewebapp-intro.svg)

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á Microsoft identity platform ověřování do vaší aplikace. To poskytuje Microsoft.Identity.Web. Potom se nakonfiguruje tak, aby se přihlásil pomocí Microsoft identity platform na základě informací v AzureAD části konfiguračního souboru appsettings.json:

appsettings.json – klíč Popis >
ClientId ID aplikace (klienta) aplikace zaregistrované v Azure Portal
Instance Koncový bod služby tokenů zabezpečení (STS) pro ověření uživatele Tato hodnota se obvykle https://login.microsoftonline.com/označuje jako 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 využívat výhody přímo GraphServiceClient (prostřednictvím injektáže závislostí) a AddInMemoryTokenCaches metody umožňují vaší aplikaci těžit z mezipaměti tokenů.

Tato Configure() metoda obsahuje dvě důležité metody a app.UseAuthentication()app.UseAuthorization(), které umožňují jejich pojmenované funkce. Configure() V 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] na třídu kontroleru nebo jednu 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ý, může být výzva k ověření spuštěna pro přístup k řadiči. 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.Request().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ě GitHub, které obsahuje ukázku kódu ASP.NET Core odkazovanou v tomto rychlém startu, 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í rozhraní Microsoft Graph, 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