Szybki start: dodawanie logowania przy użyciu konta Microsoft do aplikacji internetowej platformy ASP.NET Core

Witamy! Prawdopodobnie nie jest to oczekiwana strona. Chociaż pracujemy nad poprawką, ten link powinien podjąć Cię do odpowiedniego artykułu:

Szybki start: dodawanie logowania przy użyciu konta Microsoft do aplikacji internetowej platformy ASP.NET Core

Przepraszamy za niedogodności i doceniamy cierpliwość, podczas gdy pracujemy nad rozwiązaniem tego problemu.

W tym przewodniku Szybki start pobierzesz i uruchomisz przykładowy kod, który pokazuje, jak aplikacja internetowa ASP.NET Core może logować użytkowników z dowolnej organizacji firmy Microsoft Entra.

Krok 1. Konfigurowanie aplikacji w witrynie Azure Portal

Aby przykładowy kod w tym przewodniku Szybki start działał:

  • W polu Identyfikator URI przekierowania wprowadź i https://localhost:44321/https://localhost:44321/signin-oidc.
  • W polu Adres URL wylogowywania kanału frontonu wprowadź .https://localhost:44321/signout-oidc

Punkt końcowy autoryzacji będzie wystawiać tokeny identyfikatora żądania.

Already configured Aplikacja jest skonfigurowana przy użyciu tych atrybutów.

Krok 2. Pobieranie projektu ASP.NET Core

Uruchamianie projektu.

Napiwek

Aby uniknąć błędów spowodowanych ograniczeniami długości ścieżki w systemie Windows, zalecamy wyodrębnienie archiwum lub sklonowanie repozytorium do katalogu w pobliżu katalogu głównego dysku.

Krok 3. Aplikacja jest skonfigurowana i gotowa do uruchomienia

Skonfigurowaliśmy projekt z wartościami właściwości aplikacji i wszystko jest gotowe do uruchomienia.

Uwaga

Enter_the_Supported_Account_Info_Here

Więcej informacji

Ta sekcja zawiera omówienie kodu wymaganego do logowania użytkowników. To omówienie może być przydatne, aby zrozumieć, jak działa kod, jakie są główne argumenty i jak dodać logowanie do istniejącej aplikacji ASP.NET Core.

Jak działa przykład

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

Klasa początkowa

Oprogramowanie pośredniczące Microsoft.AspNetCore.Authentication używa Startup klasy uruchamianej podczas uruchamiania procesu hostingu:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));

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

Metoda AddAuthentication() konfiguruje usługę w celu dodania uwierzytelniania opartego na plikach cookie. To uwierzytelnianie jest używane w scenariuszach przeglądarki i ustawia wyzwanie dla Połączenie OpenID.

Wiersz zawierający .AddMicrosoftIdentityWebApp dodaje Platforma tożsamości Microsoft uwierzytelniania do aplikacji. Aplikacja jest następnie skonfigurowana do logowania użytkowników na podstawie następujących informacji w AzureAD sekcji pliku konfiguracji appsettings.json :

klucz appsettings.json opis
ClientId Identyfikator aplikacji (klienta) aplikacji zarejestrowanej w witrynie Azure Portal.
Instance Punkt końcowy usługi tokenu zabezpieczającego (STS) dla użytkownika do uwierzytelniania. Ta wartość to zazwyczaj https://login.microsoftonline.com/wartość wskazująca chmurę publiczną platformy Azure.
TenantId Nazwa dzierżawy lub identyfikator dzierżawy (identyfikator GUID) lub common logowanie użytkowników przy użyciu kont służbowych lub osobistych Microsoft.

Metoda Configure() zawiera dwie ważne metody app.UseAuthentication() i app.UseAuthorization(), które umożliwiają ich nazwane funkcje. Ponadto w metodzie Configure() należy zarejestrować trasy sieci Web tożsamości microsoft z co najmniej jednym wywołaniem endpoints.MapControllerRoute() lub wywołaniem metody :endpoints.MapControllers()

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

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

Atrybut do ochrony kontrolera lub metod

Metody kontrolera lub kontrolera można chronić za pomocą atrybutu [Authorize] . Ten atrybut ogranicza dostęp do kontrolera lub metod, zezwalając tylko na uwierzytelnionych użytkowników. Następnie można rozpocząć uwierzytelnianie w celu uzyskania dostępu do kontrolera, jeśli użytkownik nie jest uwierzytelniony.

Pomoc i obsługa techniczna 

Jeśli potrzebujesz pomocy, chcesz zgłosić problem lub poznać opcje pomocy technicznej, zobacz Pomoc i obsługa techniczna dla deweloperów.

Następne kroki

Repozytorium GitHub zawierające ten samouczek ASP.NET Core zawiera instrukcje i więcej przykładów kodu, które pokazują, jak wykonać następujące czynności:

  • Dodaj uwierzytelnianie do nowej aplikacji internetowej ASP.NET Core.
  • Wywołaj program Microsoft Graph, inne interfejsy API firmy Microsoft lub własne internetowe interfejsy API.
  • Dodaj autoryzację.
  • Logowanie użytkowników w chmurach krajowych lub przy użyciu tożsamości społecznościowych.