本文討論如何識別並解決 ServicePrincipalValidationClientError 如果您嘗試建立和部署Microsoft Azure Kubernetes Service (AKS) 叢集時可能發生的錯誤。
先決條件
-
Azure CLI 2.0.59 版或更新版本。 如果已安裝 Azure CLI,您可以執行
az --version來尋找版本號碼。
癥狀
當您嘗試部署 AKS 叢集時,您會收到下列錯誤訊息:
adal:重新整理要求失敗。 狀態代碼 = '401'。
回應主體:
“錯誤”: “無效的客戶端”,
“error_description”: “AADSTS7000215: 提供的客戶端密鑰無效。請確定要求中傳送的密鑰是客戶端密鑰值,而不是客戶端密鑰 ID,用於新增至應用程式 '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 社群支援。 您也可以向 Azure 意見反應社群提交產品意見反應。