2014-01-17 10 views
7

Ich versuche eine einfache Aufgabe zu erreichen: Sichern Sie meine ASP.NET WEBAPI (auf Katana aufgebaut) mit BASIC Auth. Ich weiß, ich könnte meine eigene Middleware oder Message-Handler oder was auch immer implementieren. Ich frage mich jedoch, ob solch eine einfache Aufgabe nicht bereits implementiert ist? Ich habe mehrere Beispiele im Internet gefunden, die zeigen, wie einfach es sein sollte. Aber alle diese Beispiele beziehen sich auf ein nugget-Paket namens microsoft.owin.security.basic, das ich nirgends finden kann !? Können Sie mir helfen?OWIN/Katana & BasicAuthentication

Antwort

6

aller Zuerst sollten Sie nicht direkt zu tun Standardauthentifizierung betrachten - sondern den Ansatz OAuth2 Autorisierungsserver verwenden - zuerst lesen:

http://leastprivilege.com/2013/11/13/authorization-servers-are-good-for-you-and-your-web-apis/

http://leastprivilege.com/2013/11/13/embedding-a-simple-usernamepassword-authorization-server-in-web-api-v2/

Wenn Sie noch Grund tun wollen auth - dann in diesem Repo finden Sie eine Implementierung für Katana:

https://github.com/thinktecture/Thinktecture.IdentityModel/tree/master/source/Thinktecture.IdentityModel.Owin

nuget: Thinktecture.IdentityModel.Owin

+2

dominic hallo, vielen Dank für Ihre Antwort. Warum sollte ich die Standardauthentifizierung nicht direkt verwenden? Ist oauth2 nicht ein wenig überdimensioniert für einen einfachen Dienst, der per SSL kommuniziert und nur einen grundlegenden Authentifizierungsmechanismus haben sollte? Danke für die verwandten Links, sehr interessant. – LaurinSt

+1

Ich nehme an, du hast die Beiträge noch nicht gelesen? Alle Antworten sind da drin ... aber in aller Kürze - in Basic Auth müssen Sie das Passwort bei jeder Anfrage übertragen - das ist nicht wirklich machbar, wenn Ihre Passwörter ordnungsgemäß geschützt und auf dem Server gespeichert sind. Mein zweiter Beitrag zeigt, wie Sie im Prinzip einen "Cookies für Web Apis" Ansatz in 10 Zeilen Code bekommen. Das ist "überdimensioniert"? – leastprivilege

+0

okey, danke! Ich werde den Beitrag zuerst lesen, anstatt obselete Fragen zu stellen :) Vielen Dank – LaurinSt

1

für die Suche nach einem schlanken Betrachtungsweise die ausgezeichnete Thinktecture.IdentityModel.Owin.BasicAuthentication Bibliothek tun grundlegende auth mit Web API + OWIN + Katana, verwenden.

NuGet: HERE und die Quelle: HERE

Verwandte Themen