ArgoCD CLI通过SSO登录报错:PermissionDenied desc = Forbidden
检查SSO客户端权限配置
确认你的SSO服务(比如OIDC提供商)已配置正确的权限范围,必须包含openid、profile、email这类必要字段。同时ArgoCD的SSO配置里要正确映射用户角色,比如将SSO用户/组关联到role:admin或具备CLI访问权限的自定义角色。验证用户在ArgoCD内的权限
登录ArgoCD Web UI,确认当前SSO用户拥有CLI访问权限。默认admin角色有全权限,若是自定义角色,得确保角色包含login及相关API访问权限,检查用户的绑定规则,确认是否关联了正确的ClusterRole或Role。核对CLI与服务器版本兼容性
执行argocd version查看本地CLI版本,和ArgoCD服务器版本对比。版本差异过大(比如主版本不一致)会导致API调用失败,建议把CLI升级到和服务器一致的版本。确认SSO授权流程完整
执行argocd login argo.domain.com --sso后,要确保浏览器端的SSO授权步骤完整完成。如果授权中途中断或未确认授权,CLI获取的令牌会无效,触发权限拒绝,可重新执行命令重试。检查ArgoCD服务器的SSO配置
查看argocd-cmConfigMap,确认oidc.config(对应你的SSO提供商配置)里的clientID、clientSecret、issuer是否正确,同时rbac.config要正确映射SSO用户/组到有权限的角色。示例配置:rbac.config: | policy.csv: | g, sso-users, role:admin排查令牌有效性
浏览器登录ArgoCD后,通过开发者工具获取ID令牌,用argocd login argo.domain.com --token <token>尝试登录。如果成功,说明CLI的SSO令牌获取流程有问题;如果还是失败,说明令牌本身权限不足。
内容的提问来源于stack exchange,提问作者Hamos

