Compartir a través de


Solución de problemas del código de error ServicePrincipalValidationClientError

En este artículo se describe cómo identificar y resolver el ServicePrincipalValidationClientError error que puede producirse si intenta crear e implementar un clúster de Microsoft Azure Kubernetes Service (AKS).

Prerrequisitos

  • CLI de Azure, versión 2.0.59 o posterior. Si la CLI de Azure ya está instalada, puede encontrar el número de versión ejecutando az --version.

Síntomas

Al intentar implementar un clúster de AKS, recibirá el siguiente mensaje de error:

adal: error en la solicitud de actualización. Código de estado = '401'.

Cuerpo de la respuesta: {

"error": "invalid_client",

"error_description": "AADSTS7000215: secreto de cliente no válido proporcionado. Asegúrese de que el secreto que se envía en la solicitud es el valor del secreto de cliente, no el identificador del secreto de cliente, para un secreto agregado a la aplicación "123456789-1234-1234-1234567890987".\r\n

Identificador de seguimiento: 12345\r\n

Id. de correlación: 6789\r\n

Marca de tiempo: 2022-02-03 03:07:11Z",

"códigos_de_error": [7000215],

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

"trace_id": "12345",

"correlation_id": "6789",

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

} Punto de conexión https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0

Causa

El secreto proporcionado para la entidad de servicio resaltada no es válido.

Solución 1: Restablecer el secreto de la entidad de servicio

Para resolver este problema, restablezca la clave principal del servicio mediante uno de los métodos siguientes:

  • Restablezca la credencial de la entidad de servicio ejecutando el comando az ad sp credential reset :

    az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
    
  • Para especificar la fecha de expiración, ejecute el comando siguiente:

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

El comando anterior restablece el secreto y lo muestra como salida. A continuación, puede especificar el nuevo secreto al intentar volver a crear el nuevo clúster.

Para las operaciones con errores en un clúster existente, asegúrese de actualizar el clúster de AKS con el nuevo secreto:

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

Solución 2: Crear una nueva entidad de servicio

Puedes crear un nuevo principal de servicio y obtener el secreto asociado a él mediante la ejecución del comando az ad sp create-for-rbac:

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

La salida del comando debe ser similar a la siguiente cadena JSON:

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

Anote los valores appId y password que se generan. Después de obtener estos valores, puede ejecutar nuevamente el comando para crear el clúster para el nuevo principal de servicio y el secreto.

Para actualizar el clúster de AKS con la nueva credencial del principal de servicio, ejecute el siguiente comando:

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

Más información

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas, puede preguntar al soporte de la comunidad de Azure. También puede enviar comentarios sobre el producto a la comunidad de comentarios de Azure.