KC23迁移至KC24后无姓名用户可正常获取JWT,全新安装则报错
Keycloak 24迁移用户与新用户必填字段差异原因解析
核心差异逻辑
Keycloak 24引入的用户必填资料强制校验仅作用于新创建或主动更新的用户,通过迁移导入的存量用户会被系统判定为「历史遗留合法用户」,不受新校验规则约束。
具体原因拆解
- 迁移用户的兼容性处理:从KC23迁移至KC24时,系统会完整保留原有用户的属性数据与状态标记。这些用户是在旧版本无强制姓名要求的规则下创建的,Keycloak默认认定他们的账户已完成初始设置,不会触发
Account Not fully Setup的校验逻辑,因此可以正常获取JWT Token。 - 新用户的实时校验:全新安装的KC24中,创建用户时会实时执行默认的必填字段校验(firstName、lastName为必填项)。若缺少这些字段,用户会被自动添加
UPDATE_PROFILE的必填动作,登录时系统会检查该状态,拒绝发放Token并提示账户未完全设置。
验证方式
查看用户的requiredActions属性:
- 迁移用户:该字段为空或无
UPDATE_PROFILE项 - 新创建的无姓名用户:会包含
UPDATE_PROFILE必填动作
可选调整方案(不推荐)
若需临时绕过新用户的姓名校验,可进入Realm设置 → 用户 → 用户资料,将firstName和lastName的「必填」选项取消勾选,但这会违背Keycloak 24默认的用户信息规范。
内容的提问来源于stack exchange,提问作者abhishek bhardwaj
相关产品推荐
相关产品推荐

