Новый проект, .net core 2 WebApi, структура сущностей, использующая Identity Server. Сервер идентификации обслуживает JWT, используя роли в формулах для определения доступа к различным API. Все это прекрасно работает.
Тем не менее, существует ситуация с несколькими API, где разрешения хранятся в некоторых таблицах базы данных, и я пытаюсь найти наилучшую практику относительно того, как с этим справиться. Есть сущность, виджеты ради аргумента, где виджеты, которые каждый пользователь может видеть / редактировать, хранятся в таблице базы данных. Таким образом, userA имеет права на эти 10 виджетов, userB имеет права на 25 других виджетов и т. Д. API защищен следующим образом:
[Authorize(Roles = "WidgetAdmin")]
Так что проблема в том, что вызов API возвращает все виджеты. Как включить логику для использования permissiosn в таблице базы данных? Моей первой мыслью было использование хранимой процедуры в любое время, когда задействованы пользовательские разрешения, и хранимая процедура может обрабатывать логику и возвращать правильный список виджетов. Или авторизация на основе политики - путь сюда? Я нашел несколько примеров аутентификации на основе политик, и я не уверен, что она подходит для этой ситуации.