Поток последствий поддержки WebApi (с ролями) и предоставление учетных данных клиента - PullRequest
0 голосов
/ 08 января 2019

У меня есть ситуация, с которой я еще не сталкивался, и мне интересно, нужно ли мне написать собственный атрибут авторизации, чтобы справиться с этой ситуацией, или есть что-то в платформе идентификации, которую я должен использовать.

Мне нужно поддерживать как неявный поток (в основном для интеграции swaggerUI), так и предоставление учетных данных клиента в моем webapi. Данные, с которыми я работаю, являются конфиденциальными, и поэтому я не хочу, чтобы кто-то, кто обнаружил мою чванливую страницу и мог аутентифицироваться с моим экземпляром AAD (через неявный поток), мог использовать мои данные. Я хочу ограничить мой API для поиска ролей в JWT , если они присутствуют .

С другой стороны, мой WebApi, скорее всего, будет использоваться другими сервисами. Поэтому мне нужно поддерживать учетные данные клиента. Очевидно, что токены, выданные через грант клиентских учетных данных, не будут претендовать на роль, поэтому я не могу искать роли при авторизации этих запросов.

Я в основном ищу что-то вроде этого:

 [Authorize(Roles = "swagger_admin", Optional=true)]
    public class UserController : ApiController
    {

Но я не вижу чего-то логически эквивалентного, и прежде чем я выйду и напишу пользовательский атрибут авторизации, я хочу узнать, что здесь сделали другие.

Спасибо!

...