Dela via


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.