本文討論如何識別並解決 AADSTS7000222 當您嘗試建立或升級 Microsoft Azure Kubernetes Service (AKS) 叢集時所發生的錯誤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 |
客戶驗證對租用戶無效: <租用戶標識碼>:adal:重新整理要求失敗。 狀態代碼 = '401'。 回應本文: {“error”: “invalid_client”、“error_description”: “AADSTS7000222:應用程式 '<application-id>' 所提供的用戶端秘密密鑰已過期。請流覽 Azure 入口網站 為您的應用程式建立新的金鑰:https://aka.ms/NewClientSecret,或考慮使用憑證認證來增加安全性:https://aka.ms/certCreds。」 |
原因
產生此服務主體警示的問題通常會因為下列其中一個原因而發生:
用戶端密碼已過期。
提供了不正確的認證。
服務主體不存在於訂用帳戶Microsoft Entra ID 租用戶內。
確認原因
使用下列命令來擷取 AKS 叢集的服務主體配置檔,並檢查服務主體的到期日。 請務必為 AKS 資源群組和叢集名稱設定適當的變數。
SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_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 Kubernetes Service 使用服務主體 (AKS) (特別是疑難解答一節)
與我們連絡,以取得說明
如果您有疑問,可以詢問 Azure 社群支援。 您也可以向 Azure 意見反應社群提交產品意見反應。