Passive Authentifizierungs-Middleware mit OWIN/Katana entwickeln

Das unter [1] gezeigte Beispiel zur Implementierung einer OWIN/Katana-basierte Middleware-Komponente für eine Authentifizierung via HTTP BASIC kann auch zur Demonstration der Funktionsweise von passiven Authentifizierungs-Middleware-Komponenten verwendet werden.  Dazu ist die Middleware lediglich unter Angabe von AuthenticationMode.Passive zu registrieren:

RegisterHttpBasicAuthMiddleware(app, AuthenticationMode.Passive);

Dies bewirkt, dass die Methode AuthenticateCoreAsync nicht mehr im Zuge der Anfrage angestoßen wird, wie es im aktiven Modus der Fall ist. Vielmehr liegt es nun an der Web-Anwendung, die Authentifizierung manuell zur Ausführung zu bringen.
Ein Web-API-basierter Controller könnte dies zum Beispiel wie im nachfolgenden Listing bewerkstelligen. Dabei ist zu beachten, dass an AuthenticateAsync der authenticationType, unter dem die Authentication-Middleware registriert wurde, zu übergeben ist. AuthenticateAsync sucht nach dem damit assoziierten Handler und bringt dessen Methode AuthenticateCoreAsync zur Ausführung.
Somit kann man im Rahmen der Ausführung von Routinen entscheiden, ob eine Authentifizierung notwendig ist und trotzdem die vorhandenen Middleware-Komponenten Framework-übergreifend einsetzen. Das Wissen darüber hilft auch beim Verständnis für den aktiven und passiven Modus, mit welchem man zum Beispiel beim Einsatz der neuen OWN/Katana-basierten Forms-Authentication zwangsweise zu tun hat.
public class SecurePassiveController: ApiController
{
    public async Task<string> Get()
    {
        IIdentity currentIdentity = null;

        var authResult = await Request
                                .GetOwinContext()
                                .Authentication
                                .AuthenticateAsync("BASIC");

        if (authResult == null || authResult.Identity == null) 
                 throw new HttpResponseException(HttpStatusCode.Unauthorized);

        return authResult.Identity.Name;
    }
}
 
[1] http://www.softwarearchitekt.at/post/2013/08/20/Benutzerdefinierte-Authentifizierungs-Strategien-in-ASPNET-vNext-mit-KatanaOWIN.aspx

 

 
Sie wollen mehr zum Thema Passive Authentifizierungs-Middleware mit OWIN/Katana entwickeln wissen? Hier können Sie eine Anfrage für eine unverbindliche Schulung ode Beratung bzw. einen Workshop erstellen.
 
Unverbindliche Anfrage
 
 

Schulung und Beratung

Angular 2

Datenbindung, Formulare, Validierung, Routing, HTTP, Komponenten, ...

Details

Migration auf Angular 2

Bestehende Projekte auf Angular 2 migrieren, ngUpgrade, ...

Details

Angular 2: Deep Dive

Erweiterte Aspekte von Angular 2

Details

Progressive Web-Apps mit Angular 2

InHouse-Schulung und/oder Beratung maßgeschneidert für Ihre Lernziele

Details

Angular 2 Review

Feedback und klärung offener Fragen, weiterführende Themen

Details

Angular 2 Workshop

Start ohne Umwege

Details

Weitere Schulungen ...