Keycloak:我可以为每个客户端/用户/角色设置令牌的到期时间吗?

Posted

技术标签:

【中文标题】Keycloak:我可以为每个客户端/用户/角色设置令牌的到期时间吗?【英文标题】:Keycloak: Can I set the expiry of a token per client/user/role? 【发布时间】:2016-11-02 01:27:31 【问题描述】:

我目前正在设置 Keycloak 来为某些服务提供保护。将有外部客户和内部服务在我的服务上使用相同的端点。

我可以在用户或角色或客户端级别设置令牌到期时间,还是混合使用令牌和基本身份验证?

【问题讨论】:

我正是需要这个(特别是根据客户端设置不同的到期时间)。你最终实现了吗?干杯。 我从 keycloak 管理控制台看不到这是怎么可能的。是否有任何密钥斗篷大师知道这是否可能?就我而言,我们使用的是 4.0.0 Final。 肯定需要 service 用户帐户。例如。显示网页的电视面板 【参考方案1】:

可以为每个客户端配置不同的访问令牌生命周期。在 Keycloak 管理控制台中,转到客户端设置页面并展开“高级设置”部分。 此截图取自 Keycloak 4.8.1.Final

编辑:请注意,覆盖仅适用于授权代码流Implicit Flow 的访问令牌生命周期仍然可以(Keycloak 7.0.0)仅在领域级别设置!

编辑:由于 Keycloak 10.0.0,还可以覆盖每个客户端的 session idlesession max 超时。

【讨论】:

我似乎找不到这个设置。我检查了 4.8.3 和 6.0.1 这是一个客户端设置转到:左侧菜单中的客户端> [您要编辑的客户端] > 高级设置(最初可能会关闭)。 此设置被领域设置中的“SSO Session Max”覆盖或限制。 @Boomer 你能看看我的 Keycloak 相关问题***.com/q/70376766/2886891 吗?谢谢。【参考方案2】:

它只能在领域中完成,@maslick 正确地提到 Keycloak 执行 SSO 并期望在一个领域中有多个客户端。

不过,如果您需要自定义 Keycloak 会话,您可以在应用程序中进行相应的编码。

【讨论】:

【参考方案3】:

很遗憾,令牌过期时间只能在每个领域设置。

【讨论】:

@Boomer 指定,这不再是一个有效的答案,但可以被覆盖

以上是关于Keycloak:我可以为每个客户端/用户/角色设置令牌的到期时间吗?的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak-向用户配置文件中添加角色

在 Keycloak 中创建新用户期间未分配客户端角色

是否有一种优雅的方法可以为多租户应用程序克隆具有所有配置(客户端和角色)的 Keycloak 领域?

Keycloak REST API 无法从用户角色映射中删除客户端级角色

使用用户 SPI 在 Keycloak 中为外部用户分配角色

仅创建用户 Keycloak 角色?