jwt - Keycloak 客户端映射器将域名显示为 JWT token 中的单个属性

标签 jwt keycloak

默认情况下,keycloak(此处为版本 11)提供有关领域的信息,获取 token ,仅解析 token 有效负载的 iss 属性。例如

{
  "exp": ...,
  "iat": ...,
  "jti": "...",
  "iss": "http://localhost:8088/idp-provider-context/auth/realms/realmname",
  "aud": [...

是否有构建方式,如客户端映射器,将有关领域名称的信息作为专用属性直接添加到 JWT token ?

一种解决方法是为每个用户添加一个属性“realmname”并将 realmname 设置为值。但一方面,这似乎有点困惑,因为它是冗余信息。另一方面,这可能会稍微加快应用程序的速度,因为没有此属性或其中的错误值的 token /用户可能已经被视为无效而无需请求后端。这将识别未在为应用程序定义的所需过程中创建的用户。

最佳答案

使用 Client Mapper 代替用户属性。为此,请访问:

  • 选择您的领域
  • 转到客户
  • 选择您要向其请求 token 的客户端
  • 转到映射器
  • 点击创建
  • Mapper type中选择Hardcoded claim;
  • token 声明名称 : 域名
  • 声明值:领域名称。
  • 相应地填写其余部分。

客户端将是您用来进行身份验证的客户端。

关于jwt - Keycloak 客户端映射器将域名显示为 JWT token 中的单个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65184441/

相关文章:

node.js - 如何使用 JWT 将 key 从前端( Angular 4)传递到后端( Node js)

node.js - 处理 JWT 验证失败

kubernetes - 从服务帐户对受 Google IAP 保护的资源的编程访问被拒绝,并出现无效签名错误

authentication - 用于 golang 应用程序的 Keycloak 适配器

ssl - wildfly 与 keycloak 403 禁止错误集成

c# - JWT 总是在 .net 核心 api 上返回未经授权的 401

java - Android WebView - JWT 身份验证

oauth-2.0 - KeyCloak 服务器的自省(introspection)端点

keycloak - 如何使用 keycloak rest-api 将领域管理员添加到用户

java - 如何使我的 Spring Boot 应用程序使用给定的用户名和密码登录 keycloak?