OWIN/Katana & BasicAuthentication

Опитвам се да постигна проста задача: Защитете моя ASP.NET WEBAPI (изграден върху Katana) с BASIC Auth. Знам, че мога да внедря собствен мидълуер или манипулатор на съобщения или каквото и да било. Чудя се обаче дали такава проста задача вече не е изпълнена? Намерих множество проби в мрежата, които показват колко просто трябва да бъде. Но всички тези проби се отнасят до пакет nuget с име microsoft.owin.security.basic, който не мога да намеря никъде!? Можеш ли да ми помогнеш?


person LaurinSt    schedule 17.01.2014    source източник


Отговори (2)


Преди всичко трябва да помислите да НЕ извършвате директно основно удостоверяване - а по-скоро да използвате подхода на сървъра за оторизация OAuth2 - първо прочетете това:

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/

Ако все пак искате да направите основно удостоверяване - тогава в това репо ще намерите имплементация за Katana:

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

nuget: Thinktecture.IdentityModel.Owin

person leastprivilege    schedule 18.01.2014
comment
здравей доминик, благодаря ти много за отговора. защо не трябва да използвам директно основно удостоверяване? oauth2 не е ли малко прекомерен за проста услуга, която комуникира чрез ssl и просто трябва да има основен механизъм за удостоверяване? Благодаря ви за свързаните връзки, много интересно. - person LaurinSt; 19.01.2014
comment
Предполагам, че още не си прочел публикациите? Всички отговори са там... но накратко - при основно удостоверяване трябва да предавате паролата при всяка заявка - това не е наистина осъществимо, ако вашите пароли са правилно защитени и съхранени на сървъра. Втората ми публикация показва как по същество получавате бисквитки за уеб apis подход в 10 реда код. Това е преоразмерено? - person leastprivilege; 20.01.2014
comment
добре, благодаря ти! Първо ще прочета публикацията, вместо да задавам излишни въпроси :) Благодаря много - person LaurinSt; 20.01.2014
comment
Използването на OAuth2 е невъзможно, когато имате клиент, който не го поддържа. А такива има много, бъдете сигурни. - person Alexey Zimarev; 28.04.2014
comment
Както Алексей посочи, понякога разработчиците нямат избор, т.е. трябва да интегрирам с рамка това, което използва основно удостоверяване, така че моят API трябва да го поддържа. Странно е, че основното удостоверяване не е вградено в OWIN. - person user3285954; 28.12.2014
comment
@user3285954 Използвал съм пакета Thinktecture в приложение OWIN/Katana и мога да гарантирам, че не би могло да бъде по-просто, ако owin дойде с него веднага! - person Sudhanshu Mishra; 23.06.2016
comment
@leastprivilege това наистина не е възможно, ако вашите пароли са правилно защитени и съхранени на сървъра - това е неправилно. Можете да използвате солирани+хеширани пароли на сървъра с основно удостоверяване - това е концептуално същото като влизане в уебсайт чрез въвеждане на вашето потребителско име и парола в <form> както правят хората. Мисля, че имате предвид на клиента. Все пак има начини да се заобиколи това (като предизвикателство-отговор, но все пак използване на основно удостоверяване само като транспорт за удостоверяване). OAuth2 е пресилен и твърде сложен за много малки проекти. - person Dai; 01.09.2016
comment
Връзка към github.com/thinktecture/Thinktecture.IdentityModel/ tree/master/ е повреден, но пакетът NuGet все още е наличен - person Michael Freidgeim; 11.04.2021

За тези, които търсят рационализиран начин за извършване на основно удостоверяване с помощта на Web API+OWIN+Katana, използвайте отличната библиотека Thinktecture.IdentityModel.Owin.BasicAuthentication.

NuGet: ТУК и източникът: ТУК

person Sudhanshu Mishra    schedule 23.06.2016