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

Sha*_*att 3 mapper keycloak

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

Tat*_*tha 5

您可以使用 keycloakSession 对象访问请求标头,例如

keycloakSession.getContext().getRequestHeaders().getRequestHeader("User-Agent")
Run Code Online (Sandbox Code Playgroud)

如果您检查 DefaultEvaluationContext 类的代码,这就是它们添加 User-Agent 标头的方式。