rok*_*rok 5 access-token oauth-2.0 openid-connect keycloak refresh-token
Keycloak刷新令牌的生存时间为1800秒:
“ refresh_expires_in”:1800
如何指定不同的默认到期时间?在Keycloak admin ui中,只能指定访问令牌的寿命:
小智 36
刷新令牌生命周期由 SSO 会话空闲设置控制。30 分钟 = 30 * 60 = 1800 秒(refresh_expires_in 值)
dre*_*ash 19
如通过评论中指出@KubaŠimonovský的接受的答案是缺少其他重要的因素:
实际上,它要复杂得多。
TL;DR可以推断出refresh token lifespan将等于 ( SSO Session Idle, Client Session Idle, SSO Session Max, 和Client Session Max) 中的最小值。
在花了一些时间研究这个之后,现在回顾这个线程,我觉得之前的答案不足以详细解释发生了什么(甚至可能会争辩说他们实际上是错误的)。
现在让我们假设我们只有SSO Session Idle和SSO Session Max:
SSO Session Max>SSO Session Idle在这种情况下refresh token lifetime与 相同SSO Session Idle。为什么?因为如果应用程序空闲SSO Session Idle一段时间,用户就会注销,这就是刷新令牌绑定到该值的原因。每当应用程序请求新令牌时,refresh token lifetime和SSO Session Idle倒计时值都会再次重置;SSO Session Max<=SSO Session Idle那么refresh token lifetime将与SSO Session Max. 为什么?因为无论用户做什么(即空闲与否),用户都会在SSO Session Max一段时间后注销,因此刷新令牌绑定到该值的原因。从这里我们得出结论,刷新令牌寿命绑定到两个值中的最低值SSO Session Idle和SSO Session Max。
这两个值都与单点登录 (SSO) 相关。我们仍然需要考虑领域设置的Client Session Idle和Client Session Max字段的值,当未设置时,它们分别与SSO Session Idle和相同SSO Session Max。
如果设置了这些值,则在刷新令牌的上下文中,它们将覆盖来自SSO Session Idleand的值SSO Session Max,但仅当它们低于来自SSO Session Idleand的值时SSO Session Max。
让我们看看以下示例:SSO Session Idle= 1800 秒,SSO Session Max= 10 小时和:
Client Session Idle= 600 秒和Client Session Max= 1 小时。在这种情况下,refresh token lifespan与Client Session Idle相同;Client Session Idle= 600 秒和Client Session Max= 60 秒。在这种情况下,refresh token lifespan与Client Session Max相同。Client Session Idle= 1 天和Client Session Max= 10 天。在这种情况下,refresh token lifespan与SSO Session Idle相同;所以简而言之,您可以推断出这refresh token lifespan将等于 ( SSO Session Idle, Client Session Idle, SSO Session Max, 和Client Session Max)之间的最小值。
因此,先前答案中声称您可以简单地使用Client Session Max来控制刷新令牌寿命的说法是错误的。只需查看前面的示例 1) 和 3)。
最后,字段Client Session Idle和Client Session Max来自领域设置可以被客户端本身中的Client Session Idle和覆盖Client Session Max,这将特别影响该refresh token lifespan客户端的 。
应用相同的逻辑,但不是考虑值Client Session Idle和Client Session Max领域设置,而是需要考虑来自客户端高级设置的值。
小智 5
在 v11.0.3 中,在客户端的高级设置下,没有 SSO 会话空闲设置(不确定这些是刚刚重命名、移动还是管理界面中其他地方可用的领域设置),因此从默认客户端开始设置,您可以指定 Client Session Max 来控制刷新令牌生命周期,而无需更改其他持续时间设置(访问令牌生命周期按您的预期继续)。证据:调整设置并检查 refresh_expires 作为响应。
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |