доступ на основе ролей с JWT и много ролей - PullRequest
0 голосов
/ 02 июля 2019

У меня есть веб-API со многими контроллерами.С этими контроллерами я определил много ролей и украсил контроллер / функции.Для доступа к API я использую jwt.

Я попытался записать свои роли в значение ключа, подобное jwt.Это прекрасно работает, но если я добавлю много ролей в свой jwt, токен станет очень большим.Я искал в Интернете и увидел некоторые решения, такие как промежуточное программное обеспечение, где я получаю роли для пользователя каждый раз, когда запускается запрос.Второе решение, которое я нашел, состояло в том, чтобы создать перечисление для ролей и не сохранять имена в jwt, но числа -> jwt get меньше.Моя проблема в том, что это не похоже на правильный путь.Я использую ядро ​​.net и систему идентификации.Какова лучшая практика для этой проблемы?

1 Ответ

1 голос
/ 02 июля 2019

Нет «лучшей практики». Хранить роли в токенах JWT вполне нормально. Но токен с заявками на роль имеет разрешение на доступ к вашему веб-сайту до истечения срока его действия. Если кто-то обновит роль пользователя, он не повлияет на токен, если у вас нет логики отзыва токена. Поиск ролей / разрешений в db поможет системе повысить безопасность, поскольку она всегда получит самую новую роль этого пользователя. Но это повлияет на производительность сервера, если у вас большое приложение в зависимости от количества запросов.

Где угодно, если возможно, пожалуйста, спроектируйте / управляйте своими ролями, чтобы у пользователя не было много ролей.

...