針對 ServicePrincipalValidationClientError 錯誤碼進行疑難解答
本文討論如何識別並解決 ServicePrincipalValidationClientError
如果您嘗試建立和部署Microsoft Azure Kubernetes Service (AKS) 叢集時可能發生的錯誤。
必要條件
- Azure CLI 2.0.59 版或更新版本。 如果已安裝 Azure CLI,您可以執行
az --version
來尋找版本號碼。
徵兆
當您嘗試部署 AKS 叢集時,您會收到下列錯誤訊息:
adal:重新整理要求失敗。 狀態代碼 = '401'。
回應本文: {
“error”: “invalid_client”,
“error_description”: “AADSTS7000215: 提供的客戶端密碼無效。請確定要求中傳送的秘密是客戶端密碼值,而不是用戶端密碼標識碼,用於新增至應用程式 '123456789-1234-1234-1234-1234567890987'。\r\n
追蹤標識碼:12345\r\n
相互關聯標識碼: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 community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。