Felsöka felkoden ServicePrincipalValidationClientError
I den här artikeln beskrivs hur du identifierar och löser det ServicePrincipalValidationClientError
fel som kan uppstå om du försöker skapa och distribuera ett AKS-kluster (Microsoft Azure Kubernetes Service).
Förutsättningar
- Azure CLI, version 2.0.59 eller senare. Om Azure CLI redan är installerat kan du hitta versionsnumret genom att köra
az --version
.
Symptom
När du försöker distribuera ett AKS-kluster får du följande felmeddelande:
adal: Uppdateringsbegäran misslyckades. Statuskod = '401'.
Svarstext: {
"error": "invalid_client",
"error_description": "AADSTS7000215: Ogiltig klienthemlighet har angetts. Kontrollera att hemligheten som skickas i begäran är klientens hemliga värde, inte klienthemlighets-ID:t, för en hemlighet som läggs till i appen '123456789-1234-1234-1234567890987'.\r\n
Spårnings-ID: 12345\r\n
Korrelations-ID: 6789\r\n
Tidsstämpel: 2022-02-03 03:07:11Z",
"error_codes": [7000215],
"tidsstämpel": "2022-02-03 03:07:11Z",
"trace_id": "12345",
"correlation_id": "6789",
"error_uri": "https://login.microsoftonline.com/error?code=7000215"
} Slutpunkt https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0
Orsak
Hemligheten som tillhandahålls för det markerade tjänstens huvudnamn är inte giltig.
Lösning 1: Återställ hemligheten för tjänstens huvudnamn
Lös problemet genom att återställa hemligheten för tjänstens huvudnamn med någon av följande metoder:
Återställ tjänstens huvudnamns autentiseringsuppgifter genom att köra kommandot az ad sp credential reset :
az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
Ange förfallodatum genom att köra följande kommando:
az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
Föregående kommando återställer hemligheten och visar den som utdata. Sedan kan du ange den nya hemligheten när du försöker skapa det nya klustret igen.
För misslyckade åtgärder i ett befintligt kluster kontrollerar du att du uppdaterar AKS-klustret med den nya hemligheten:
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>
Lösning 2: Skapa ett nytt huvudnamn för tjänsten
Du kan skapa ett nytt huvudnamn för tjänsten och hämta hemligheten som är associerad med den genom att köra kommandot az ad sp create-for-rbac :
az ad sp create-for-rbac --role Contributor
Kommandots utdata bör likna följande JSON-sträng:
{
"appId": "12345678-9abc-def0-1234-56789abcdef0",
"name": "23456789-abcd-ef01-2345-6789abcdef01",
"password": "3456789a-bcde-f012-3456-789abcdef012",
"tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}
Observera värdena appId
och password
som genereras. När du har fått dessa värden kan du köra kommandot skapa kluster igen för det nya tjänstens huvudnamn och hemlighet.
Om du vill uppdatera AKS-klustret med det nya tjänstens huvudnamns autentiseringsuppgifter kör du följande kommando:
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>
Mer information
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.