Spring Keycloak jwt map Create At Date to Token

Posted

技术标签:

【中文标题】Spring Keycloak jwt map Create At Date to Token【英文标题】: 【发布时间】:2020-04-14 14:18:17 【问题描述】:

我正在开发一个带有 spring boot 的 rest api,并且我将 Keycloak 与 openid connect (Oauth2) 一起用于我的身份验证流程。 我想创建一个用于查询数据的端点。如果未设置“来自”时间图(我将其声明为可选),我想使用自帐户创建以来的数据。为了向 keycloak admin rest api 发出请求,我希望从令牌中获取此信息。 我查看了不同的内置范围(microprofile-jwt 等),但找不到特定的映射器。谷歌也无法帮助我。

我使用 Keycloak 6.0.1。 他的版本可以吗?或者我是否必须对 admin api 进行一次休息调用?

我知道我可以在我的属性中创建一个时间戳并将其映射到令牌中,但如果可能的话,我想使用 keycloak 自动创建

【问题讨论】:

【参考方案1】:

可以通过在客户端或范围设置中创建新的映射器来实现。

首先打开映射器标签:

对于客户,请转到 clients - 选择客户 - Mappers 选项卡。 对于范围,请转到 scopes -> 选择范围 - Mappers 选项卡。

创建新的映射器并填写以下字段:

名称 - 只是映射器的名称 类型 - 用户属性 属性 - createdTimestamp 令牌声明名称 - created_timestamp(您可以使用任何您喜欢的名称) 令牌声明类型 - 长

对于范围映射器,您还必须将新创建的范围分配给客户端。

完成这些步骤后,您可以直接从访问令牌中获取用户创建的时间戳。

【讨论】:

以上是关于Spring Keycloak jwt map Create At Date to Token的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 微服务架构中使用 Keycloak 实现 JWT?

Spring Security OAuth - 它可以使用 Keycloak 中的 JWT 令牌吗

如何使用 Keycloak 解码 JWT

使用带有spring security的keycloak JWT令牌时如何修复403

在 Spring Boot 中从 jwt 获取附加属性

如何在 KeyCloak 中的签名 JWT 中获取 client_assertion