【问题标题】:Keycloak - Best/easiest way to add the client's IP address to the JWT token?Keycloak - 将客户端 IP 地址添加到 JWT 令牌的最佳/最简单方法?
【发布时间】:2020-12-09 02:05:34
【问题描述】:

我希望将身份验证用户的 IP 地址添加到 JWT 令牌中,以便以后在中间件中使用。最简单的方法是什么?

Keycloak v6.0.1

【问题讨论】:

  • 在版本 11 中,所有客户端都带有一个映射器。试试Clients -> Settings -> Mappers -> Create -> Mapper Type=User Session Note -> User Session note=clientAddress。希望对你有帮助
  • @NatanDeitch 是将clientAddress(IP地址)添加到JWT所需要做的一切吗?或者是否有其他步骤可以让 IP 地址显示在 JWT 中?由于我运行的是 v6.0.1,我希望这些步骤适用于这个版本
  • 在版本 11 中,keycloak 本身获取此信息并添加到令牌。
  • 所有这些解决方案都不适合我。我正在使用 keycloak 11。
  • 所有这些解决方案都不适合我。我正在使用 keycloak 11。

标签: java jwt ip keycloak


【解决方案1】:

Client Address 在用户会话注释中不可用,除非用户是服务帐户(私人客户) - Relevant Documentation

实现这一点的最简单方法是为 keycloak 编写一个插件,在用户登录/令牌刷新时添加一个事件侦听器以添加到用户会话注释中。 创建了这个快速示例 - https://github.com/CharlyRipp/keycloak-user-details-provider

请注意,此示例适用于 keycloak 15(在此答案时)-将 POM 父级更改为所需版本,然后可能需要修复 getRealmgetUserSession 调用,因为这些调用在最近的版本中已更改。

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 2010-10-13
    • 2016-08-11
    • 2018-12-07
    • 2021-09-20
    • 2021-03-15
    • 1970-01-01
    • 2010-11-07
    相关资源
    最近更新 更多