在我的项目中,我使用IdentityServer3和几个外部身份提供程序(通过ADFS),一切都运行良好。但是,我想在后台通过计划任务 - 当他们离线时 - 代表用户执行某些操作。
在我切换到OpenId Connect之前,我只有本地用户,只是为用户创建了一个Principal并“模仿”了他们。现在我有外部用户,我想替换这个功能,我相信使用刷新令牌是正确的方法。
我计划在每次用户访问网站时安全地在每个用户中存储刷新令牌。然后,当计划任务运行时,刷新令牌将用于获取有效的访问令牌,并使用此令牌调用后端webapi。这将实现我需要的模拟,并处理外部用户的新问题,我不知道他们何时被禁用/从外部用户存储中删除,我不想让计划任务仍然在系统中运行作为他们的链接帐户仍然有效,例如如果删除了访问权限,则存储的刷新令牌最终将过期,并且计划的任务将停止运行。
这是处理离线操作的最佳/正确方法吗?我担心我已经要求用户必须定期登录以确保我们存储了有效的刷新令牌。或者是否有更好的方式无限期地启用离线访问但仍然安全。
答案 0 :(得分:0)
刷新令牌是一种无需用户交互即可长时间访问API的技术。这似乎满足了你的要求。