获取验证码
很多企业从VCSA7.0升级迁移到VCSA8.0,升级过程没有报错,但登录vCenter后发现过去创建的大量自定义角色消失,域用户分配的权限全部失效。 很多运维会误以为升级过程把自定义角色删除,实际上版本升级不会删除SSO内部自定义角色。高频根因为Web客户端登录时选中了错误的SSO域,造成角色列表视图异常。除此之外还有角色继承、权限集迁移、LDAP身份源同步等问题。本文梳理完整排查思路,找回自定义角色,恢复用户权限。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
VCSA7.0升级至8.0完成,升级任务日志无报错;
vCenter权限‑角色列表看不到过去自建的自定义角色,只能看到系统内置角色;
域用户登录vCenter提示权限不足,之前分配的权限全部失效;
部分环境使用[email protected]登录可以看到角色,其他账号看不到;
实际SSO数据库内部角色数据仍然存在,并不是被升级删除。
某生产环境VCSA7.0 U3升级迁移到VCSA8.0 U2,升级执行成功。运维使用域账号登录vSphere Client,进入角色管理页面,所有自定义角色全部消失,业务管理员无法操作虚拟机。 一开始判定升级损坏权限库,切换登录账号为[email protected],角色全部正常显示。问题原因为登录客户端时SSO身份域选错,界面加载了错误域下的角色视图。切换回vsphere.local域登录,自定义角色全部可见,重新核对权限分配,业务权限恢复正常。
vCenter SSO支持多个身份域,自定义角色默认保存在vsphere.local域下。升级完成后登录界面容易默认选中外部AD域或者其他身份源域,该域下没有自定义角色,页面表现为角色全部丢失。角色数据还在,只是当前视图没有加载。
升级迁移之后外部AD身份源同步失败,AD用户、组无法正常解析,表现为用户权限失效,容易被误判成角色丢失。自定义角色本身存在,只是用户对象解析异常。
升级迁移过程中部分权限赋值对象UUID映射异常,角色实体存在,但在清单对象上的权限分配关系失效。
浏览器缓存造成页面角色列表渲染异常;
vpxd、sts、identity‑management等SSO相关服务升级后未完全正常启动;
使用备份导入升级,导入的配置集不完整。
退出当前浏览器vCenter会话,清除浏览器缓存或者使用无痕模式;
登录界面身份域下拉列表,务必选择vsphere.local域;
账号填写[email protected],输入密码登录;
访问【菜单】‑【权限】‑【角色】,查看自定义角色是否出现。
如果此时可以看到全部自定义角色,说明问题就是登录时选错SSO域,角色数据没有丢失。普通业务账号登录时同样需要注意域选择。
登录VCSA root,调用sso‑cli查看角色,确认底层数据库角色实体没有丢失。
#查看vsphere.local域全部角色 /usr/lib/vmware-sso/bin/sso-cli list‑roles --domain vsphere.local
输出结果里可以找到自己创建的自定义角色名称,代表角色完好保存在SSO数据库,不是升级删除。
vcsa-deploy service list | grep -E "sts|identity|vpxd"
sts、identity‑management、vpxd服务必须为running状态,如果异常,执行重启:
vcsa-deploy service restart sts vcsa-deploy service restart identity-management vcsa-deploy service restart vpxd
很多时候角色存在,但AD用户组同步失败,用户拿到不到权限。
vCenter菜单‑【系统管理】‑【身份源】;
选中AD域,点击同步,观察同步日志是否报错;
确认AD域控制器DNS解析正常,VCSA可以连通AD域控端口。
角色存在,但虚拟机、集群、数据中心对象上面的权限赋值丢失,需要重新给用户/组分配对应自定义角色。优先导出权限清单,便于比对恢复。可以借助PowerCLI导出现有权限配置做备份。
| 故障现象 | 核心根因 | 标准化解决方案 |
|---|---|---|
| 升级后看不到自定义角色,[email protected]登录可以看到 | 登录时选中错误SSO域,视图加载异常 | 登录时域选择vsphere.local,使用管理员账号查看角色列表 |
| 角色存在,但AD域用户登录无权限 | 升级后AD身份源同步失败,用户对象无法解析 | 修复身份源配置,执行AD同步,检查DNS与端口连通 |
| 浏览器页面看不到角色,sso‑cli命令行可以查到角色 | 浏览器缓存、前端渲染异常,SSO服务未完全就绪 | 无痕窗口登录,重启sts、identity‑management服务 |
| 自定义角色还在,但资源对象上权限全部清空 | 升级迁移过程权限映射异常 | 对照原有权限文档,重新分配角色给用户/用户组 |
| 所有SSO相关服务重启后依旧异常 | 升级迁移配置导入不完整 | 回滚升级前备份,重新执行迁移升级流程 |
1. 误区:VCSA版本升级会删除自定义角色纠正:标准升级/迁移不会删除vsphere.local域内自定义角色,大多为视图、身份域、同步问题。
2. 误区:随便选一个域登录vCenter都可以看到全部角色纠正:自定义角色存储在vsphere.local域,AD外部域本身不会保存自定义角色,选错域就看不到。
3. 误区:角色看不到就直接重建一套自定义角色纠正:不要直接新建角色,先用[email protected]登录确认角色是否真实丢失,避免重复角色造成权限混乱。
4. 误区:升级完成不校验身份源同步,直接交付业务使用纠正:升级迁移极易触发AD身份源同步异常,用户权限失效,升级后必须验证域账号权限。
VCSA7升级迁移8之前,使用PowerCLI导出全部角色定义、对象权限分配清单作为备份;
升级完成后,优先使用[email protected](vsphere.local域)登录,校验角色完整性;
升级后检查STS、identity‑management、vpxd服务状态,确认全部正常运行;
核对外部AD/LDAP身份源,手动执行一次同步,确认无同步报错;
选取若干业务管理员账号登录验证实际操作权限,确认权限生效;
生产环境禁止把自定义角色创建在外部AD身份域,统一存放于vsphere.local域。
VCSA7.0升级到8.0之后自定义角色丢失,升级本身不会删除自定义角色。首要排查登录时SSO域是否选择vsphere.local,使用[email protected]账号登录确认角色是否存在。 如果角色可见,则属于视图域选择问题;如果用户权限不生效,排查AD身份源同步、SSO后台服务。升级前导出角色与权限备份,升级后完整校验角色、身份源、用户权限,防止业务管理员权限异常。