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 idle 和 session 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 REST API 无法从用户角色映射中删除客户端级角色