keycloak 客户端协议映射器(脚本映射器)将请求 header 添加到令牌中

keycloak client protocol mapper (script mapper) to add request header into token

当我从 keycloak 请求令牌时,我想要将请求中提供的特定 header 值(或额外的表单数据)放入生成的令牌的 JWT 负载中。我尝试使用脚本映射器来访问 header 值,但我看不到如何访问 header 值或在任何可用脚本变量中发送的表单数据中的数据: userrealmuserSessionkeyclockSession

您可以使用 keycloakSession object 访问请求 header,类似于

keycloakSession.getContext().getRequestHeaders().getRequestHeader("User-Agent")

如果您检查 DefaultEvaluationContext class 的代码,那是他们添加 User-Agent header 的方式。