本文讨论了如何识别和解决在尝试创建或升级 Microsoft Azure Kubernetes 服务(AKS)群集时出现的 AADSTS7000222 错误(BadRequest 或 InvalidClientSecret)。
先决条件
症状
尝试创建或升级 AKS 群集时,会收到以下错误消息之一。
| 错误代码 | 消息 |
|---|---|
BadRequest |
ServicePrincipalProfile 中的凭据无效。 有关详细信息,请参阅 https://aka.ms/aks-sp-help 。 (详细信息:adal:刷新请求失败。 状态代码 = “401”。 响应正文:{“error”: “invalid_client”, “error_description”: “AADSTS7000222:应用”<application-id>“提供的客户端密钥已过期。 访问 Azure 门户,为应用创建新密钥: https://aka.ms/NewClientSecret或考虑使用证书凭据增强安全性: https://aka.ms/certCreds” |
InvalidClientSecret |
客户身份验证对租户无效: <租户 ID>:adal:刷新请求失败。 状态代码 = “401”。 响应正文:{“error”: “invalid_client”, “error_description”: “AADSTS7000222:应用”<application-id>“提供的客户端密钥已过期。 访问 Azure 门户,为应用创建新密钥: https://aka.ms/NewClientSecret或考虑使用证书凭据增强安全性: https://aka.ms/certCreds” |
原因
生成此服务主体警报的问题通常因以下原因之一而发生:
客户端密码已过期。
提供了不正确的凭据。
订阅的 Microsoft Entra ID 租户中不存在服务主体。
验证原因
运行以下 Azure CLI 代码,检索 AKS 群集的服务主体配置文件并 检查服务主体的到期日期:
SP_ID=$(az aks show --resource-group <rg-name> \
--name <aks-cluster-name> \
--query servicePrincipalProfile.clientId \
--output tsv)
az ad app credential list --id "$SP_ID"
或者,可以验证服务主体名称和机密是否正确且未过期。 为此,请执行以下步骤:
在 Azure 门户中,搜索并选择“Microsoft Entra ID”。
在Microsoft Entra ID 的导航窗格中,选择 “应用注册”。
在“ 拥有的应用程序 ”选项卡上,选择受影响的应用程序。
查找服务主体名称和机密信息,并验证信息是否正确和最新。
解决方案
在更新或旋转 AKS 群集凭据的文章中,请根据需要参阅以下任一文章部分中的说明:
使用新的服务主体凭据,请参阅该文章中 “使用服务主体凭据更新 AKS 群集”部分的说明。
详细信息
联系我们以获得帮助
如果有疑问,可以询问 Azure 社区支持。 您还可以向Azure反馈社区提交产品反馈。