【发布时间】:2016-07-04 16:42:58
【问题描述】:
在我的项目中,我将 IdentityServer3 与多个外部身份提供程序(通过 ADFS)一起使用,并且一切正常。但是,我想通过计划任务在后台代表用户执行一些操作 - 当他们离线时。
在我切换到 OpenId Connect 之前,我只有本地用户,只是为用户创建了一个 Principal 并“模拟”了他们。现在我有外部用户,我想替换此功能,并且我相信使用刷新令牌是正确的方法。
我计划在每次用户访问网站时将每个用户的刷新令牌安全地存储在我们的数据库中。然后,刷新令牌将用于在计划任务运行时获取有效的访问令牌,并使用它来调用后端 webapi。这将实现我需要的模拟,并处理外部用户的新问题,我不知道他们何时从外部用户存储中被禁用/删除,我不想让计划任务仍然在系统中运行,因为它们的链接帐户仍然有效,例如如果他们的访问权限被删除,则存储的刷新令牌最终将过期并且计划任务将停止运行。
这是处理离线操作的最佳/正确方法吗?我担心我已经要求用户必须定期登录以确保我们存储了有效的刷新令牌。或者有没有更好的方法可以无限期地启用离线访问但仍然安全。
【问题讨论】:
标签: openid-connect identityserver3