脱机令牌与刷新令牌一起使用

时间:2017-08-07 13:49:17

标签: oauth-2.0 access-token openid-connect keycloak

我在我的网络应用程序中使用授权代码流程。我想获取Web应用程序本身的刷新令牌,还有一个我将保存在数据库中的脱机令牌,以便稍后可以使用它来执行脱机任务。

但是我正在努力解决这个问题。我不能使用grant-type密码,因为我不想再要求用户输入他/她的凭据,而且授权代码只是一次性使用,因此我无法将其与当前流程集成。

是否有其他方法可以从其他令牌生成脱机令牌?我尝试过使用grant type refresh-token和scope offline_access,但是没有用。

2 个答案:

答案 0 :(得分:1)

您还可以使用服务帐户生成离线令牌,查看service account上的密钥泄露文档。

关注discussion将帮助您了解生成和使用离线令牌的不同方案

答案 1 :(得分:1)

与Keycloak一起工作了几个月后,答案很简单:不可能。

脱机令牌实际上是没有到期时间的刷新令牌,因此您可以获取一个或另一个,但绝不能将两者作为同一请求/响应的一部分。

从用户的角度来看,我们创建了一个新页面,以使用密码授予类型和脱机作用域请求此令牌。用户需要重新输入密码,但是从安全角度来看似乎还可以。考虑到获取此令牌的要求,这种方法对我们有效,因为这是一项不寻常的任务。