Keycloak 12如何无需更新领域移除自动添加的uma_authentication等默认角色
Keycloak 12.0.4 移除自动分配默认角色的方案
uma_authentication和offline_access是Keycloak 12版本内置的默认客户端级别默认角色,JSON导入领域时默认会强制附加,无需升级Keycloak版本、无需重新创建领域的前提下,可通过以下方式处理:
已创建领域的在线调整方法
无需修改导入配置、无需重置领域,直接通过管理控制台操作即可即时生效:
- 登录Keycloak管理控制台,进入目标领域,点击左侧菜单栏「角色」→「默认角色」
- 在页面的「客户端角色」下拉框中先选择
uma_protection客户端,将右侧已分配列表中的uma_authentication移除 - 再在「客户端角色」下拉框中选择
realm-management客户端,将右侧已分配列表中的offline_access移除 - 保存配置后,后续新创建的本地用户、同步的联邦用户都不会再被自动分配这两个角色,存量用户已分配的对应角色可通过用户批量管理功能统一清理。
后续导入新领域的配置修改方法
如果后续需要通过JSON导入新领域,可直接在配置中添加规则避免自动附加:
- 在领域JSON配置中补充对应客户端的默认角色空配置,同时关闭默认角色补全开关,示例配置段如下:
{ "realm": "你的领域名称", "addDefaultRolesIfMissing": false, "defaultRoles": [], "clients": [ { "clientId": "uma_protection", "defaultRoles": [] }, { "clientId": "realm-management", "defaultRoles": [] } ] }
- 其余原有配置保持不变即可,导入后不会再自动附加这两个默认角色。
注意事项
- 移除
offline_access默认角色后,如果业务需要使用离线令牌功能,需要给对应用户单独分配该角色,避免功能异常。 - 如果开启了用户联邦同步,需检查同步映射规则中没有显式配置这两个角色的自动分配逻辑,避免同步时被重复添加。
内容的提问来源于stack exchange,提问作者mirit sadon
相关产品推荐
相关产品推荐

