Отзыв / отклонение допустимого веб-токена Json в промежуточном программном обеспечении ядра ASP.NET для заблокированных пользователей - PullRequest
0 голосов
/ 13 ноября 2018

Я использую промежуточное программное обеспечение JWT + удостоверение ASP.NET для установки простого имени пользователя / пароля в моем проекте ASP.NET Core WebAPI.

Токены будут действительны в течение 15 минут.Я думаю, что я буду использовать концепцию «Обновить токен», чтобы пользователь вошел в систему, когда он все еще просматривает сайт (SPA) или использует мобильное приложение (как насчет опции remember me? Я бы создал токен, который действителен дляможет месяц?)

Итак, есть ли способ отозвать сгенерированный токен?Я думаю о проверке (по каждому запросу), имеет ли пользователь право доступа к API.Может быть, есть другой способ обработки этих случаев?

Я вижу таблицу AspNetUserTokens.Может быть, есть способ автоматически хранить там JWT ?!В настоящее время я использую ASP.NET Identity только для аутентификации пользователя.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете обратиться к этой статье: http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/

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

Простой способ - выдать токены доступа на короткий срок, если вы хотите отозвать пользователя, отозвать токен обновления, как показано в статье, очистить токен обновления и токен доступа на стороне клиента. Конечно, токен доступа остается активным до истечения срока его действия.

Другой способ - использовать справочные токены Identity Server 4:

http://docs.identityserver.io/en/release/topics/reference_tokens.html

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

...