Аутентификация и документация ASP.NET OData/веб-API

Я реализую конечную точку OData в приложении ASP.NET и сейчас работаю над частью аутентификации. Я посмотрел пример на http://odata.github.io/WebApi/05-01-basic-auth/ для реализации базовой HTTP-аутентификации. Однако этот пример кажется мне очень странным, хотя в статье создается впечатление, что именно так вы реализуете общую пользовательскую аутентификацию в RESTful API.

e.g.:

  • Он реализует аутентификацию на этапе конвейера, где вы должны реализовать авторизацию. Насколько я понимаю, когда вызывается OnAuthorization, у вас уже должен быть установлен субъект, и единственное, что осталось сделать, это проверить, имеет ли субъект достаточный доступ для выполнения запрошенного действия.

  • Что происходит с этим вызовом IsAuthorized? Разве это не должен быть метод без побочных эффектов?

Поэтому я в основном хотел бы проверить у кого-то, кто более знаком с веб-API ASP.NET, чтобы подтвердить, является ли это а) правильным способом делать что-то б) хакерским, но безопасным способом делать что-то или в) чем-то опасным, что никогда не должно присутствовать в производственном коде.


person hrnt    schedule 27.06.2017    source источник


Ответы (1)


Вы правы, аутентификация должна быть реализована в отдельном AuthenticationFilter или даже в HttpModule. Пример можно найти здесь: фильтр проверки подлинности, https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/basic-authentication.

person Ivan R.    schedule 27.06.2017