Правильный метод авторизации областей для приложений Web Api и Mvc .NET 4

Я использую сервер идентификации 4 в качестве сервера аутентификации и успешно продемонстрировал аутентификацию клиентов для доступа к моему веб-приложению MVC и моему приложению веб-API, которые работают в IIS под .NET 4.7.

Проблема, с которой я сталкиваюсь, заключается в том, чтобы найти правильный подход для обеспечения того, чтобы клиенты могли получить доступ только к конечным точкам, которым они должны после процесса аутентификации. Например, у меня есть два клиента, один с областью записи, а другой без. Как мне убедиться, что тот, у кого нет, может получить доступ только к конечным точкам, которые будут читать мои данные, а не изменять их?

Лучший метод, который я нашел до сих пор, — это использовать атрибут авторизации, подобный этому: https://github.com/IdentityModel/Thinktecture.IdentityModel/blob/master/source/WebApi/ScopeAuthorizeAttribute.cs

Однако это помечено как устаревшее, и я не знаю, что упоминается версия, основанная на промежуточном программном обеспечении OWIN. Учитывая, что мои приложения MVC и Web Api не могут быть обновлены до основных приложений .NET, какой подход будет лучшим?


person ajbrun    schedule 24.09.2018    source источник


Ответы (1)


Поскольку утверждения области доступны в конвейере ASP.Net, вы можете довольно легко реализовать собственный фильтр управления доступом. Может случиться так, что эта конкретная библиотека устарела, но практика применения области действия в фильтре MVC/WebAPI, безусловно, полностью оправдана.

person mackie    schedule 25.09.2018
comment
Спасибо - я предположил, основываясь на устаревшем комментарии об использовании версии промежуточного программного обеспечения, что теперь есть лучший способ добиться этого. В этом случае я думаю, что делать что-то похожее на то, что показано в ссылке, все еще совершенно правильно. - person ajbrun; 26.09.2018