Sebastian Gingter Thinktecture AG

„Wer schon einmal intensiver mit dem IdentityServer gearbeitet hat, wird zu schätzen wissen, welchen initialen Konfigurationsaufwand man sich mit diesen wenigen Zeilen sparen kann, wenn diese ApiAuthorization-Integration
mit ASP.NET Core 3.0 veröffentlich wird.“

Manche Dinge sind, zumindest gefühlt, unnötig aufwändig, kompliziert oder beides. Aktuell ist die Absicherung eines ASP.NET Core Web API leider auch noch eines dieser Themen. Noch – denn es ist Besserung in Sicht.

Als Softwareentwickler, die die Plattform „Web“ bedienen, haben wir es in aller Regel mit einem von zwei Fällen zu tun: Wir bauen entweder eine Webanwendung, die für die gesamte Öffentlichkeit uneingeschränkt zur Verfügung steht, oder wir arbeiten an einer Anwendung, die irgendeine Art von Zugangskontrolle in Form einer Anmeldung eines Benutzers benötigt. Sei es ein einfacher Blog mit Kommentarfunktion, ein Webshop, bei dem wir den Kunden kennen wollen, oder auch eine interne Businessanwendung, bei der wir den Benutzer zur Berechtigungssteuerung identifizieren müssen.

Von der Anmeldung an Webanwendungen …

Für serverseitig gerenderte Webapplikationen mit ASP.NET (Core) MVC bringt uns das ASP.NET Framework alles dafür Notwendige schon von Haus aus mit, und zwar schon seit der allerersten Version: Bereits mit der einfachen Forms Authentication in ASP.NET 1.x und etwas später dann mit dem Membership Provider in ASP.NET 2.x waren die Mittel, um Benutzer zu verwalten, sie zu authentifizieren und dann zu autorisieren, direkt an Bord. Mit der Einführung von OWIN und damit Middlewares mit .NET 4.5.1 im Jahr 2013 wurde auch das Benutzersystem revolutioniert und heißt seitdem ASP.NET Identity. Seit damals hat sich im .NET-Umfeld viel getan: Wir bewegen uns auf .NET 4.8 zu und haben parallel das neue ASP.NET Core an der Hand, das uns ein viel moderneres Entwickeln für alle erdenklichen Plattformen ermöglicht.

Umso erstaunlicher erscheint es, dass wir zwar mit dem klassischem WebForms, ASP.NET MVC mit Razor Templates und auch den neuen Razor Pages das Identity-System verwenden können, wir aber bis heute keine eingebaute Möglichkeit haben, es auch aus ASP.NET MVC Web API oder den API-Controllern in ASP.NET MVC Core zu verwenden. Doch warum ist das so?

Serverseitig gerenderte Webanwendungen basieren darauf, dass ein Webbrowser eine Webseite anfragt und nach einer Benutzeraktion entweder eine weitere, andere Seite angefragt oder für die aktuelle Seite Formulardaten an den Server per POST gesendet werden. All das passiert immer aus dem Browser heraus. Wir können hierfür also problemlos Cookies für die Anmeldung und die Sessionverwaltung verwenden. ASP.NET Identity setzt daher bei MVC (Core) und Razor Pages genau hierauf auf und realisiert die Authentication mit Cookies, die ASP.NET Identity für uns ausstellt, und die der Browser für uns handhabt.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 4.19 - "Zentral zwischen Server und Cloud"

Alle Infos zum Heft
579882769API Authorization in ASP.NET Core 3.0 mit IdentityServer
X
- Gib Deinen Standort ein -
- or -