禁用 PKCE Plain 方法
从 ACP v4.3.0 开始,登录授权默认启用 PKCE(Proof Key for Code Exchange)验证。为了保持与使用 Agnostic 生命周期且尚未升级的受影响插件的向后兼容性,平台在升级后会保留 plain code challenge 方法,同时保留安全的 S256 方法。
所有受影响的 Agnostic 插件都升级到与 ACP v4.3.0 兼容的版本后,应移除 plain 方法,以强制仅使用 S256 进行 PKCE 验证。
先决条件
- 具有集群管理员权限的
kubectlglobal 集群访问权限。 - 平台管理的所有集群均已升级到 ACP v4.3。
- 以下使用
Agnostic生命周期的受影响插件均已升级到与 ACP v4.3 兼容的版本:Alauda Container Platform GitopsAlauda Service Mesh Console(之前为Alauda Build of Kiali)Kubeflow BaseAlauda AI
WARNING
在此处,受影响插件指的是所列使用平台 OIDC 授权流程的 Agnostic 插件;在所有插件都升级到与 ACP v4.3 兼容的版本之前移除 plain,会导致身份验证失败。
操作步骤
OIDC 客户端配置以 OAuth2Client 自定义资源的形式存储在 cpaas-system 命名空间中。根据客户端 ID 确定目标资源名称:
编辑 OAuth2Client 资源:
找到 codeChallengeMethods 字段并移除 plain 条目,仅保留 S256:
保存并退出编辑器。更改会立即生效。
验证
确认已移除 plain 方法:
输出应为:
对每个受影响的插件(Alauda Container Platform Gitops、Alauda Build of Kiali、Kubeflow Base 和 Alauda AI)至少执行一次登录/授权验证,以确认不存在与 PKCE 相关的身份验证失败。
回滚
如果移除 plain 方法后出现身份验证问题(例如,任何受影响的插件登录或授权失败),请将其重新添加:
回滚后,再次验证受影响插件的登录,然后执行 unset OIDC_CLIENT_NAME。