© Photobank_gallery/Shutterstock.com, © S&S Media
Authentifizierung und Benutzerverwaltung in Web-Apps auf Basis von ASP.NET Core Blazor

Zutritt nur mit Blazor


Bei Blazor WebAssembly ist die Implementierung von Authentifizierung und Benutzerverwaltung bislang Aufgabe des Entwicklers. Für Blazor Server dagegen bietet Microsoft eine Standardlösung in Form von ASP.NET Identity an.

In diesem Beitrag betrachten wir die Standardlösung in Blazor Server (aktuelle Version 3.1 vom 3.12.2019) sowie die individuelle Implementierung eines Authentication-State-Providers für Blazor WebAssembly (bei Redaktionsschluss aktuelle Version 3.2 Preview 1 vom 28.1.2020). Die Grundlagen beider Blazor-Erscheinungsformen wurden im Windows Developer schon vorgestellt [1], [2]. In der kommenden Version 3.2 Preview 2 von Blazor WebAssembly wird es auch eine Integration mit ASP.NET Identity sowie Open-ID-Connect-Providern geben.

Standardlösung in Blazor Server

Um es vorweg zu sagen: Die Standardlösung für Authentifizierung und Benutzerverwaltung in Blazor Server ist nicht sehr elegant, denn sie ist nicht in Razor Components innerhalb von Blazor, sondern in ASP.NET Core Razor Pages implementiert. Der Teil der Anwendung, der sich um Benutzerregistrierung, -anmeldung und -abmeldung sowie Verwaltungsarbeiten (z. B. „Passwort vergessen“) kümmert, ist also keine moderne Single Page Application (SPA), sondern eine Multi Page Application (MPA) mit vollständigen Roundtrips.

Blazor Server verwendet die gleiche Komponente ASP.NET Core Identity, die auch bei Projekten des Typs ASP.NET Core MVC und ASP.NET Core Razor Pages im Einsatz ist. Es gibt bisher keine eigene Implementierung im SPA-Stil für Blazor Server. Wer die Webanwendung nutzt, sieht deutlich, dass die Benutzerverwaltung anders funktioniert als die eigentliche Anwendung.

schwichtenberg_blazor_1.tif_fmt1.jpgAbb. 1: Das Hinzufügen einer Benutzerverwaltung beim Anlegen eines Projekts ist bislang nur bei Blazor Server möglich

Authentifizierung aktivieren

Beim Anlegen eines Blazor-Server-Projekts in Visual Studio oder per .NET Core CLI (dotnet.exe) hat der Entwickler bereits die Möglichkeit, die Authentifizierung zu wählen (Authentication | Change). Dabei gibt es fünf Optionen (Abb. 1), die aus der Microsoft-Nomenklatur übersetzt Folgendes bedeuten (in Klammern jeweils die korrespondieren Parameter für das .NET Core CLI).

  • No Authentication (--auth None): Es gibt keine Benutzeranmeldung und daher auch keine Unterscheidung von Inhalten für berechtigte und nicht berechtigte Benutzer

  • Individual User Accounts | In App (--auth Individual): Authentifizierung gegen in einer lokalen Datenbank gespeicherte Benutzerkonten (im Standard-Microso...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang