Schnellstart: Hinzufügen von „Bei Microsoft anmelden“ zu einer ASP.NET Core-Web-App

Willkommen! Dies ist wahrscheinlich nicht die Seite, die Sie erwartet haben. Während wir an einer Korrektur arbeiten, sollten Sie über diesen Link zum richtigen Artikel gelangen:

Schnellstart: Hinzufügen von „Bei Microsoft anmelden“ zu einer ASP.NET Core-Web-App

Wir entschuldigen uns für die Unannehmlichkeiten und bitten Sie um Geduld, während wir an einer Lösung arbeiten.

In dieser Schnellstartanleitung laden Sie ein Codebeispiel herunter und führen es aus, das zeigt, wie eine ASP.NET Core-Web-App Benutzer*innen aus einer beliebigen Microsoft Entra-Organisation anmelden kann.

Schritt 1: Konfigurieren Ihrer Anwendung im Azure-Portal

Damit das Codebeispiel in dieser Schnellstartanleitung funktioniert, müssen folgende Schritte ausgeführt werden:

  • Geben Sie https://localhost:44321/ und https://localhost:44321/signin-oidc als Umleitungs-URI ein.
  • Geben Sie unter URL für Front-Channel-Abmeldung die URL https://localhost:44321/signout-oidc ein.

Der Autorisierungsendpunkt gibt Anforderungs-ID-Token aus.

Already configured Ihre Anwendung ist mit diesen Attributen konfiguriert.

Schritt 2: Herunterladen des ASP.NET Core-Projekts

Führen Sie das Projekt aus.

Tipp

Es wird empfohlen, das Archiv in ein Verzeichnis in der Nähe des Stammverzeichnisses Ihres Laufwerks zu extrahieren, um Fehler zu vermeiden, die durch Beschränkungen der Pfadlänge unter Windows verursacht werden.

Schritt 3: Ihre App ist konfiguriert und betriebsbereit

Sie haben das Projekt mit Werten Ihrer App-Eigenschaften konfiguriert. Es ist nun ausführungsbereit.

Hinweis

Enter_the_Supported_Account_Info_Here

Weitere Informationen

In diesem Abschnitt erhalten Sie eine Übersicht über den erforderlichen Code für die Benutzeranmeldung. Diese Übersicht kann hilfreich sein, um die Funktionsweise des Codes und die Hauptargumente zu verstehen und zu ermitteln, wie Sie einer vorhandenen ASP.NET Core-Anwendung eine Anmeldung hinzufügen.

Funktionsweise des Beispiels

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

Startklasse

Von der Middleware Microsoft.AspNetCore.Authentication wird eine Klasse vom Typ Startup verwendet. Sie wird ausgeführt, wenn der Hostprozess gestartet wird:

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();
}

Durch die Methode AddAuthentication() wird der Dienst konfiguriert, um die cookiebasierte Authentifizierung hinzuzufügen. Diese Authentifizierung kommt in Browserszenarien zum Einsatz und dient dazu, die Aufforderung auf OpenID Connect festzulegen.

Durch die Zeile mit .AddMicrosoftIdentityWebApp wird Ihrer Anwendung die Microsoft Identity Platform-Authentifizierung hinzugefügt. Die Anwendung wird anschließend für die Anmeldung von Benutzern basierend auf den Informationen im Abschnitt AzureAD der Konfigurationsdatei appsettings.json konfiguriert:

appsettings.json (Schlüssel) Beschreibung
ClientId Anwendungs-ID (Client) der im Azure-Portal registrierten Anwendung.
Instance STS-Endpunkt (Security Token Service, Sicherheitstokendienst) für den zu authentifizierenden Benutzer. Dieser Wert ist in der Regel https://login.microsoftonline.com/ (öffentliche Azure-Cloud).
TenantId Name Ihres Mandanten, Mandanten-ID (eine GUID) oder common für die Anmeldung von Benutzern mit Geschäfts-, Schul- oder Unikonto oder mit persönlichem Microsoft-Konto

Die Methode Configure() enthält mit app.UseAuthentication() und app.UseAuthorization() zwei wichtige Methoden, um die genannte Funktion zu aktivieren. Außerdem müssen Sie in der Configure()-Methode die Routen von Microsoft Identity Web über mindestens einen Aufruf von endpoints.MapControllerRoute() oder einen Aufruf von endpoints.MapControllers() registrieren:

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

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

Attribut zum Schützen eines Controllers oder von Methoden

Sie können einen Controller oder Controllermethoden mithilfe des [Authorize]-Attributs schützen. Dieses Attribut beschränkt den Zugriff auf den Controller oder die Methoden, indem nur authentifizierte Benutzer zugelassen werden. Wenn sich der Benutzer noch nicht authentifiziert hat, kann für den Zugriff auf den Controller eine Authentifizierungsabfrage gestartet werden.

Hilfe und Support

Wenn Sie Hilfe benötigen, ein Problem melden möchten oder sich über Ihre Supportoptionen informieren möchten, finden Sie weitere Informationen unter Hilfe und Support für Entwickler.

Nächste Schritte

Das GitHub-Repository mit diesem ASP.NET Core-Tutorial enthält Anleitungen und weitere Codebeispiele für Folgendes:

  • Hinzufügen einer Authentifizierung zu einer neuen ASP.NET Core-Webanwendung
  • Aufrufen von Microsoft Graph, anderer Microsoft-APIs oder Ihrer eigenen Web-APIs
  • Hinzufügen der Autorisierung
  • Anmelden von Benutzern in nationalen Clouds oder mit Identitäten sozialer Netzwerke