【问题标题】:How to remove attributes from the Keycloak JWT access token?如何从 Keycloak JWT 访问令牌中删除属性?
【发布时间】:2021-11-23 15:55:02
【问题描述】:

默认情况下,Keycloak 生成带有以下负载的令牌:

{
  "jti": "71ac4939-03cb-4ce2-b072-08fa7e1b7f37",
  "exp": 1560239903,
  "nbf": 0,
  "iat": 1560239843,
  "iss": "http://localhost:8080/auth/realms/master",
  "sub": "d3ea1306-f0f9-4b25-b7c5-e64dfbdf949e",
  "typ": "Bearer",
  "azp": "admin-cli",
  "auth_time": 0,
  "session_state": "0162e8c3-25b3-4fd9-8416-e28bd27b61bd",
  "acr": "1",
  "scope": "email profile",
  "email_verified": false,
  "preferred_username": "admin"
}

我们可以使用protocol mapper来添加自定义字段,但是是否可以删除不必要的字段?例如我不想要 acremail_verifiedazp 等等……

【问题讨论】:

    标签: oauth-2.0 jwt keycloak


    【解决方案1】:

    正确配置映射器和客户端范围。每个范围都有自己的一组已配置协议映射器,这可能会添加额外的声明。例如。 email 默认作用域:

    请记住:范围也可以是默认值,因此它们将被隐式执行,而无需在身份验证请求中明确定义:

    【讨论】:

    • 谢谢@Jan Garaj。我可以使用您提到的方法消除 email_verified 和其他一些字段。但是acr和azp仍然是象征性的。是否也可以删除它们?
    • @sinaaskarnejad acr/azp 对您来说可能是不必要的声明,但它们对于使用的 OIDC 协议具有技术意义。我猜你不能禁用它们。
    猜你喜欢
    • 2022-07-04
    • 2019-02-08
    • 2017-03-29
    • 2020-07-25
    • 2018-01-13
    • 2018-07-27
    • 2019-12-08
    • 2021-04-06
    • 2019-11-29
    相关资源
    最近更新 更多