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 distribuire un cluster Microsoft servizio Azure Kubernetes (servizio Azure Kubernetes).
Prerequisiti
- Interfaccia della riga di comando di Azure, versione 2.0.59 o successiva. Se l'interfaccia della riga di comando di Azure è già installata, è possibile 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\r\n
ID correlazione: 6789\r\n
Timestamp: 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"
} Endpoint https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0
Causa
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 dell'entità servizio usando uno dei metodi seguenti:
Reimpostare le credenziali dell'entità 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, assicurarsi di aggiornare il cluster del servizio Azure Kubernetes con il nuovo segreto:
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>
Soluzione 2: Creare una nuova entità servizio
È possibile creare una nuova entità 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 appId
valori e password
generati. Dopo aver visualizzato questi valori, è possibile eseguire di nuovo il comando di creazione del cluster per la nuova entità servizio e il segreto.
Per aggiornare il cluster del servizio Azure Kubernetes 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>
Ulteriori informazioni
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.