Asp.net core: токен jwt с областями действия

Фон

У меня есть проект ядра ASP.NET (v2.1), который содержит API. Доступ к этому API ограничен носителем JWT.

Мой сервер предоставляет конечную точку для входа в систему:

POST http://example.com/api/login

После прикрепления токена к запросу я могу вызвать один из методов сервера (GET или DELETE:

GET http://example.com/api/1234

или

DELETE http://example.com/api/1234

Цель

Я хочу реализовать «другой тип» токена, который разрешит доступ только к определенному scope. Допустим, мы хотим предоставить доступ только для метода GET. Итак, если у вас есть этот токен - вы можете GET ресурс, но не DELETE его.

Хотите знать, возможно ли это с токеном-носителем JWT? Если да, то как?

Спасибо!

0
0
3 528
2

Ответы 2

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

Эта статья должна быть в состоянии объяснить дальнейшие

https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles?view=aspnetcore-2.1

Токен носителя JWT должен использоваться для механизма аутентификации, но вы говорите о Authorization, и, следовательно, ваш подход кажется неправильным. Вам лучше использовать конвейер авторизации и реализовать правильную авторизацию на основе ролей / политик, которая ограничит доступ к этим конечным точкам Api.

Другие вопросы по теме