Как реализовать интерфейс ITokenHandle в UserService для отзыва ссылочного токена - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть служба аутентификации на основе Identity Server 3. В настоящее время он использует JWT, но я планирую переключиться на ссылочные токены, чтобы мы могли отозвать их, когда пользователь выйдет из клиентского приложения. Я исследовал это ( Доминик Байер - Справочные токены и самоанализ ) и понимаю, что один из вариантов - тот, который я хотел бы реализовать, - это иметь мой пользовательский сервис - часть моей реализации сервиса аутентификации - используйте интерфейс Iokity Server ITokenHandle для отзыва токена. Я не смог найти больше информации об этом интерфейсе или о том, как реализовать его в моем сервисе пользователя.

Кто-нибудь делал отзыв токенов Identity Server 3 в своей службе пользователей, или кто-то может указать мне больше информации об этом подходе?

1 Ответ

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

Две публикации на GitHub в комментариях к исходному сообщению содержали необходимую мне информацию. Мне удалось переключиться с JWT на эталонные токены, а затем реализовать автоматический отзыв эталонных токенов при выходе пользователя. Переключатель типа токена был простым вопросом установки

AccessTokenType = AccessTokenType.Reference

в моем коде установки клиента. Чтобы отменить токены при выходе, я сначала добавил

idSrvFactory.Register(new Registration<DefaultClientPermissionsService>());

в Startup.cs. Затем в моем UserService я добавил его в конструктор UserService

public UserService(DefaultClientPermissionsService clientPermissionsSvc)
{
    _clientPermissionsSvc = clientPermissionsSvc;
}

Затем, наконец, все еще в моем UserService, я реализовал

public override Task SignOutAsync(SignOutContext context)
{
    string subjectId = GetSubjectId(context);
    _clientPermissionsSvc.RevokeClientPermissionsAsync(subjectId, context.ClientId);
    return Task.FromResult(0);
}
...