Я теряюсь во всех возможных вариантах управления тем, что может делать пользователь, а что нет. Я начал с ролей: [Authorize(Roles = Constants.Roles.ModeratorAndUp)]
. Где ModeratorAndUp - строка "Moderators, Administrators"
.
Но мне нужен более гибкий подход. Последние 3 часа я читаю о Претензиях и разрешениях. Я также нашел это интересное сообщение в блоге .
Я использую Angular и ASP.NET Core вместе с шаблоном Universal. Для аутентификации я использую OpenIddict. Я читал книгу.
Я хочу использовать токен JWT для авторизации и аутентификации. Я не знаю, как следует обрабатывать разрешения в .NET Core, но у меня есть 100 разных ролей, и это полный беспорядок. А также, когда я создаю нового пользователя, мне нужно вручную добавить около 20 ролей. Было бы неплохо, если бы я мог создавать группы с ролями / разрешениями, а затем добавлять пользователя в эту группу. Но не знаю, как этот дизайн будет работать с авторизацией токенов OpenIdDict и JWT.
Может ли кто-нибудь указать мне правильное направление, и тогда я буду исследовать самостоятельно.
Я не уверен, стоит ли мне создавать систему, которая будет автоматически обновлять роли пользователей при изменении разрешений / ролей группы, если я буду использовать претензии. .. Я хотел бы использовать атрибут [Authorize]
, потому что он действительно упрощает работу.
Что / как / что лучше всего использовать для аутентификации / авторизации JWT Token в ASP.NET Core.
But don't know how this design will play with OpenIdDict and JWT token authorisation.
: использование утверждений с OpenIddict абсолютно не отличается от использования утверждений с промежуточным программным обеспечением файлов cookie (внутри стек авторизации не зависит от того, как вы аутентифицируете своих пользователей, поэтому одни и те же концепции применимы как к файлам cookie, так и к токенам). Я бы также пошел с привилегиями / разрешениями, как предлагает @ssmith. Если вы думаете, что добавляете слишком много утверждений в свои токены, не пропустите stackoverflow.com/questions/42496306/. - person Kévin Chalet   schedule 09.06.2017