В данный момент у меня есть полуфункциональная страница входа, которая использует OAuth и идентификационный сервер для аутентификации пользователя. После аутентификации (используя неявный поток) я использую токен доступа, который возвращается в качестве токена-носителя в заголовке любых запросов API, которые я делаю. Здесь вы можете увидеть токен, который возвращается во внешний интерфейс. Я думаю, что это нормально.
И здесь вы можете видеть, как я ломаю указатель в моей конечной точке API. Это то, что я вижу в своем actionContext.ControllerContext.RequestContext.Principal в массиве утверждений
Моя проблема заключается в том, что каждый контроллер API в проекте имеет собственный атрибут авторизации, который начинается с выполнения следующего
Функция isauthorized всегда возвращает false, поскольку она проверяет список ролей, прикрепленный к запросу (и это работает со старым способом, который был реализован). У него сейчас нет ролей, только прицелы. Из того, что я прочитал, я предполагаю, что области действия предназначены для предоставления доступа к API, но эти области должны давать заявки пользователям. Каков наилучший подход для достижения этой цели?
Должен ли я добавить новый настраиваемый фильтр для своих API, который просматривает области, а затем дает пользователю правильные утверждения, необходимые для прохождения этой проверки?
Должен ли я вообще вызывать это во встроенном методе авторизации?
Или есть какая-то настройка, которую мне не хватает для OAuth, которая должна преобразовывать эти области в утверждения, чтобы они проходили эту проверку?
Примечание: это решение для структуры с точечной сетью, а не ядро с точечной сетью