Résoudre les problèmes liés au code d’erreur ServicePrincipalValidationClientError
Cet article explique comment identifier et résoudre l’erreur ServicePrincipalValidationClientError
qui peut se produire si vous essayez de créer et de déployer un cluster Microsoft Azure Kubernetes Service (AKS).
Prerequisites
- Azure CLI, version 2.0.59 ou ultérieure. Si Azure CLI est déjà installé, vous pouvez trouver le numéro de version en exécutant
az --version
.
Symptômes
Lorsque vous essayez de déployer un cluster AKS, vous recevez le message d’erreur suivant :
adal : Échec de la demande d’actualisation. Code d’état = '401'.
Corps de la réponse : {
« error » : « invalid_client »,
« error_description » : « AADSTS7000215 : clé secrète client non valide fournie. Vérifiez que le secret envoyé dans la requête est la valeur de la clé secrète client, et non l’ID de secret client, pour un secret ajouté à l’application « 123456789-1234-1234-1234567890987 ».\r\n
ID de trace : 12345\r\n
ID de corrélation : 6789\r\n
Horodatage : 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 »
} Point de terminaison https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0
Cause
Le secret fourni pour le principal de service en surbrillance n’est pas valide.
Solution 1 : Réinitialiser le secret du principal de service
Pour résoudre ce problème, réinitialisez le secret du principal de service à l’aide de l’une des méthodes suivantes :
Réinitialisez les informations d’identification du principal de service en exécutant la commande az ad sp credential reset :
az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
Spécifiez la date d’expiration en exécutant la commande suivante :
az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
La commande précédente réinitialise le secret et l’affiche comme sortie. Ensuite, vous pouvez spécifier le nouveau secret lorsque vous essayez de recréer le cluster.
Pour les opérations ayant échoué dans un cluster existant, veillez à mettre à jour votre cluster AKS avec le nouveau secret :
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>
Solution 2 : Créer un principal de service
Vous pouvez créer un principal de service et obtenir le secret associé à celui-ci en exécutant la commande az ad sp create-for-rbac :
az ad sp create-for-rbac --role Contributor
La sortie de la commande doit ressembler à la chaîne JSON suivante :
{
"appId": "12345678-9abc-def0-1234-56789abcdef0",
"name": "23456789-abcd-ef01-2345-6789abcdef01",
"password": "3456789a-bcde-f012-3456-789abcdef012",
"tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}
Notez les valeurs et password
les appId
valeurs générées. Après avoir obtenu ces valeurs, vous pouvez réexécuter la commande de création du cluster pour le nouveau principal de service et le secret.
Pour mettre à jour votre cluster AKS avec les informations d’identification du nouveau principal de service, exécutez la commande suivante :
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>
Plus d’informations
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.