Condividi tramite


Risolvere i problemi relativi al codice di errore ServicePrincipalValidationClientError

Questo articolo illustra come identificare e risolvere l'errore ServicePrincipalValidationClientError che può verificarsi se si tenta di creare e implementare un cluster di Microsoft Azure Kubernetes Service (AKS).

Prerequisiti

  • Interfaccia della riga di comando di Azure, versione 2.0.59 o successiva. Se Azure CLI è già installato, puoi trovare il numero di versione eseguendo az --version.

Sintomi

Quando si tenta di distribuire un cluster del servizio Azure Kubernetes, viene visualizzato il messaggio di errore seguente:

adal: richiesta di aggiornamento non riuscita. Codice di stato = '401'.

Corpo della risposta: {

"error": "invalid_client",

"error_description": "AADSTS7000215: segreto client non valido fornito. Assicurarsi che il segreto inviato nella richiesta sia il valore del segreto client, non l'ID segreto client, per un segreto aggiunto all'app '123456789-1234-1234-1234-1234-1234567890987'.\r\n

ID traccia: 12345

ID correlazione: 6789\r\n

Timestamp: 2022-02-03 03:07:11Z",

"codici_errore": [7000215],

"timestamp": "2022-02-03 03:07:11Z",

"trace_id": "12345",

"correlation_id": "6789",

"error_uri": "https://login.microsoftonline.com/error?code=7000215"

} Punto finale https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0

Motivo

Il segreto fornito per l'entità servizio evidenziata non è valido.

Soluzione 1: Reimpostare il segreto dell'entità servizio

Per risolvere questo problema, reimpostare il segreto del principale di servizio usando uno dei metodi seguenti:

  • Reimpostare le credenziali del principale del servizio eseguendo il comando az ad sp credential reset:

    az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
    
  • Specificare la data di scadenza eseguendo il comando seguente:

    az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
    

Il comando precedente reimposta il segreto e lo visualizza come output. È quindi possibile specificare il nuovo segreto quando si tenta di creare di nuovo il nuovo cluster.

Per le operazioni non riuscite in un cluster esistente, assicurati di aggiornare il cluster AKS con il nuovo secret.

az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>

Soluzione 2: Creare un nuovo principale del servizio

È possibile creare un nuovo principale del servizio e ottenere il segreto associato eseguendo il comando az ad sp create-for-rbac:

az ad sp create-for-rbac --role Contributor

L'output del comando dovrebbe essere simile alla stringa JSON seguente:

{
  "appId": "12345678-9abc-def0-1234-56789abcdef0",
  "name": "23456789-abcd-ef01-2345-6789abcdef01",
  "password": "3456789a-bcde-f012-3456-789abcdef012",
  "tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}

Si notino i valori appId e password che sono generati. Dopo aver ottenuto questi valori, è possibile eseguire di nuovo il comando di creazione del cluster per il nuovo principale del servizio e il segreto.

Per aggiornare il cluster del servizio Azure Kubernetes (AKS) con le credenziali della nuova entità servizio, eseguire il comando seguente:

az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>

Maggiori informazioni

Contattaci per ricevere assistenza

In caso di domande, è possibile porre domande al supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.