You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keycloak中移除aud声明里的"account"项?

Keycloak访问令牌中"aud": "account"的来源与移除方法

为什么会自动添加"account"到audience?

  • Keycloak内置了一个名为account的客户端,它是用于用户管理自身信息(比如调用/userinfo端点)的默认客户端。
  • 当你创建新客户端并使用默认客户端作用域(如roles、profile、email)时,这些作用域本质上属于account客户端,生成访问令牌时Keycloak会自动将account加入aud列表。
  • 直接通过Admin UI评估Client Scopes时,默认会包含与account关联的权限,这也会触发account被添加到audience。

能否移除"account"?怎么操作?

可以移除,需调整客户端配置,步骤如下:

  1. 关闭全作用域允许:进入自定义客户端的「Settings」页面,找到「Full Scope Allowed」选项并关闭,避免Keycloak自动添加所有默认作用域。
  2. 移除关联的默认作用域:在自定义客户端的「Client Scopes」页面,移除所有属于account的内置作用域(如roles、profile、email等),替换为你自定义的作用域。
  3. 指定自定义audience:在客户端的「Advanced」设置中,找到「Access Token Audience」配置项,添加你需要的audience值,确保这里只包含目标客户端标识,不包含account。

注意事项

如果完全移除account,用户将无法使用该令牌调用Keycloak的/userinfo端点(该端点要求令牌的audience包含account),请根据业务需求权衡是否移除。

内容的提问来源于stack exchange,提问作者Jeroen Heier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:23:13