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).

Requisitos previos

  • 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

Id. de seguimiento: 12345\r\n

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

Marca de tiempo: 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"

} 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 el secreto de la entidad de 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: Creación de una nueva entidad de servicio

Puede crear una nueva entidad de servicio y obtener el secreto asociado a ella 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 appId valores y password que se generan. Después de obtener estos valores, puede volver a ejecutar el comando de creación del clúster para la nueva entidad de servicio y el secreto.

Para actualizar el clúster de AKS con la nueva credencial de la entidad 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 o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.