Выполнять действия в автономном режиме для пользователей, прошедших проверку подлинности с помощью IdentityServer3
В моем проекте я использую IdentityServer3 с несколькими внешними провайдерами идентификации (через ADFS), и все работает отлично. Однако я хотел бы выполнить некоторые действия от имени пользователя в фоновом режиме с помощью запланированной задачи - когда они не подключены.
До того, как я переключился на OpenId Connect, у меня были только локальные пользователи, я просто создал принципала для пользователя и "выдал себя" за него. Теперь, когда у меня есть внешние пользователи, я хочу заменить эту функцию, и я считаю, что использование токена Refresh является правильным способом сделать это.
Я планирую надежно хранить токен обновления для каждого пользователя в нашей базе данных каждый раз, когда пользователь посещает сайт. Затем токен обновления будет использоваться для получения действительного токена доступа при выполнении запланированной задачи и использования его для вызова внутреннего веб-интерфейса. Это позволит добиться олицетворения, которое мне требуется, а также разрешит новую проблему с внешними пользователями, о которой я не знаю, когда они были отключены / удалены из внешнего хранилища пользователей, и я не хочу оставлять запланированные задачи все еще работающими в системе, поскольку они связаны между собой. учетная запись по-прежнему действительна, например, если доступ к ней будет удален, срок действия сохраненного токена обновления истечет, а запланированные задачи прекратятся.
Это лучший / правильный способ борьбы с автономными действиями? Я обеспокоен тем, что сделал требование, чтобы пользователь периодически входил в систему, чтобы убедиться, что у нас есть действительный токен обновления. Или есть лучший способ включить автономный доступ на неопределенный срок, но при этом оставаться безопасным.
1 ответ
Токены обновления - это методика получения долговременного доступа к API без взаимодействия с пользователем. Это, кажется, удовлетворяет вашим требованиям.