ServicePrincipalValidationClientError 错误代码疑难解答
本文介绍如何识别和解决ServicePrincipalValidationClientError
尝试创建和部署Microsoft Azure Kubernetes 服务 (AKS) 群集时可能发生的错误。
先决条件
- Azure CLI 版本 2.0.59 或更高版本。 如果已安装 Azure CLI,可以通过运行
az --version
找到版本号。
现象
尝试部署 AKS 群集时,会收到以下错误消息:
adal:刷新请求失败。 状态代码 = “401”。
响应正文: {
“error”: “invalid_client”,
“error_description”:“AADSTS7000215: 提供的客户端密码无效。确保请求中发送的机密是客户端机密值,而不是客户端密码 ID,用于添加到应用“123456789-1234-1234-1234-1234567890987”的机密。\r\n
跟踪 ID:12345\r\n
相关 ID:6789\r\n
时间戳:2022-02-03 03:07:11Z“,
“error_codes”: [7000215],
“timestamp”: “2022-02-03 03:07:11Z”,
“trace_id”: “12345”,
“correlation_id”: “6789”,
“error_uri”: “https://login.microsoftonline.com/error?code=7000215”
} 终结点 https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0
原因
为突出显示的服务主体提供的机密无效。
解决方案 1:重置服务主体机密
若要解决此问题,请使用以下方法之一重置服务主体机密:
通过运行 az ad sp credential reset 命令重置服务主体的凭据:
az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
运行以下命令指定到期日期:
az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
上述命令将重置机密并将其显示为输出。 然后,可以在尝试再次创建新群集时指定新机密。
对于现有群集中的失败操作,请确保使用新机密更新 AKS 群集:
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>
解决方案 2:创建新的服务主体
可以通过运行 az ad sp create-for-rbac 命令来创建新的服务主体并获取与其关联的机密:
az ad sp create-for-rbac --role Contributor
命令的输出应类似于以下 JSON 字符串:
{
"appId": "12345678-9abc-def0-1234-56789abcdef0",
"name": "23456789-abcd-ef01-2345-6789abcdef01",
"password": "3456789a-bcde-f012-3456-789abcdef012",
"tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}
appId
请注意生成的值和password
值。 获取这些值后,可以重新运行新服务主体和机密的群集创建命令。
若要使用新服务主体的凭据更新 AKS 群集,请运行以下命令:
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>
详细信息
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。