Share via


Problemas de autenticación en Azure HDInsight

En este artículo se describen los pasos de solución de problemas y las posibles soluciones para los problemas que se producen al usar clústeres de Azure HDInsight.

En clústeres seguros respaldados por Azure Data Lake (Gen1 o Gen2), cuando los usuarios del dominio inician sesión en los servicios de clúster a través de la puerta de enlace de HDI (como el inicio de sesión en el portal de Apache Ambari), dicha puerta de enlace intenta obtener un token de OAuth de Microsoft Entra en primer lugar y, a continuación, obtendrá un vale de Kerberos de Microsoft Entra Domain Services. La autenticación puede dar errores en cualquiera de estas fases. Este artículo está pensado para depurar de algunos de estos problemas.

Cuando se produzca un error en la autenticación, se le piden las credenciales. Si cancela este cuadro de diálogo, se imprime el mensaje de error. Estos son algunos de los escenarios comunes:

invalid_grant o unauthorized_client, 50126

Problema

Se produce un error de inicio de sesión para los usuarios federados con el código de error 50126 (el inicio de sesión se realiza correctamente para los usuarios en la nube). El mensaje de error es similar al siguiente:

Reason: Bad Request, Detailed Response: {"error":"invalid_grant","error_description":"AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password\r\nTrace ID: 09cc9b95-4354-46b7-91f1-efd92665ae00\r\n Correlation ID: 4209bedf-f195-4486-b486-95a15b70fbe4\r\nTimestamp: 2019-01-28 17:49:58Z","error_codes":[70002,50126], "timestamp":"2019-01-28 17:49:58Z","trace_id":"09cc9b95-4354-46b7-91f1-efd92665ae00","correlation_id":"4209bedf-f195-4486-b486-95a15b70fbe4"}

Causa

El código de error 50126 de Microsoft Entra significa que el inquilino no ha establecido la directiva AllowCloudPasswordValidation.

Solución

El administrador global del inquilino de Microsoft Entra debe habilitar Microsoft Entra ID para usar los hash de contraseña para los usuarios respaldados por ADFS. Aplique AllowCloudPasswordValidationPolicy como se muestra en el artículo Uso de Enterprise Security Package en HDInsight.


invalid_grant o unauthorized_client, 50034

Problema

El inicio de sesión produce un error con el código 50034. El mensaje de error es similar al siguiente:

{"error":"invalid_grant","error_description":"AADSTS50034: The user account Microsoft.AzureAD.Telemetry.Diagnostics.PII doesn't exist in the 0c349e3f-1ac3-4610-8599-9db831cbaf62 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: bbb819b2-4c6f-4745-854d-0b72006d6800\r\nCorrelation ID: b009c737-ee52-43b2-83fd-706061a72b41\r\nTimestamp: 2019-04-29 15:52:16Z", "error_codes":[50034],"timestamp":"2019-04-29 15:52:16Z","trace_id":"bbb819b2-4c6f-4745-854d-0b72006d6800", "correlation_id":"b009c737-ee52-43b2-83fd-706061a72b41"}

Causa

El nombre de usuario es incorrecto (no existe). El usuario no está utilizando el mismo nombre de usuario que se usa en Azure Portal.

Solución

Use el mismo nombre de usuario que funciona en ese portal.


invalid_grant o unauthorized_client, 50053

Problema

La cuenta de usuario está bloqueada; código de error 50053. El mensaje de error es similar al siguiente:

{"error":"unauthorized_client","error_description":"AADSTS50053: You've tried to sign in too many times with an incorrect user ID or password.\r\nTrace ID: 844ac5d8-8160-4dee-90ce-6d8c9443d400\r\nCorrelation ID: 23fe8867-0e8f-4e56-8764-0cdc7c61c325\r\nTimestamp: 2019-06-06 09:47:23Z","error_codes":[50053],"timestamp":"2019-06-06 09:47:23Z","trace_id":"844ac5d8-8160-4dee-90ce-6d8c9443d400","correlation_id":"23fe8867-0e8f-4e56-8764-0cdc7c61c325"}

Causa

Demasiados intentos de inicio de sesión con una contraseña incorrecta.

Solución

Espere treinta minutos aproximadamente o detenga las aplicaciones que puedan estar intentando autenticarse.


invalid_grant o unauthorized_client, 50053 (#2)

Problema

Contraseña expirada, código de error 50053. El mensaje de error es similar al siguiente:

{"error":"user_password_expired","error_description":"AADSTS50055: Password is expired.\r\nTrace ID: 241a7a47-e59f-42d8-9263-fbb7c1d51e00\r\nCorrelation ID: c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a\r\nTimestamp: 2019-06-06 17:29:37Z","error_codes":[50055],"timestamp":"2019-06-06 17:29:37Z","trace_id":"241a7a47-e59f-42d8-9263-fbb7c1d51e00","correlation_id":"c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a","suberror":"user_password_expired","password_change_url":"https://portal.microsoftonline.com/ChangePassword.aspx"}

Causa

La contraseña ha expirado.

Solución

Cambie la contraseña en Azure Portal (en el sistema local) y espere treinta minutos para que la sincronización se ponga al día.


interaction_required

Problema

Recibe el mensaje de error interaction_required.

Causa

La directiva de acceso condicional o MFA se está aplicando al usuario. Como todavía no se admite la autenticación interactiva, el usuario o el clúster deben estar exentos del acceso condicional o MFA. Si decide excluir el clúster (directiva de exención basada en dirección IP), asegúrese de que ServiceEndpoints de AD está habilitado para esa red virtual.

Solución

Use la directiva de acceso condicional y excluya los clústeres de HDInisght de MFA, tal como se muestra en Configurar un clúster de HDInsight con Enterprise Security Package mediante Azure Microsoft Entra Domain Services.


Inicio de sesión denegado

Problema

Inicio de sesión denegado.

Causa

Para llegar a esta fase, la autenticación de OAuth no es un problema, pero sí lo es la autenticación Kerberos. Si este clúster está respaldado por ADLS, el inicio de sesión de OAuth se ha realizado correctamente antes de que se intente la autenticación Kerberos. En los clústeres de WASB, no se intenta el inicio de sesión de OAuth. Podría haber muchos motivos para el error de Kerberos, como que los hashes de contraseña no estén sincronizados, la cuenta de usuario se bloqueó en Microsoft Entra Domain Services, etc. Los hashes de contraseña solo se sincronizan cuando el usuario cambia la contraseña. Al crear la instancia de Microsoft Entra Domain Services, se iniciará la sincronización de las contraseñas que se cambian después de la creación. No sincroniza retroactivamente las contraseñas que se establecieron antes de su inicio.

Solución

Si cree que las contraseñas pueden no estar sincronizadas, pruebe a cambiar la contraseña y espere unos minutos a que se sincronicen.

Debe intentar autenticarse (kinit) utilizando las mismas credenciales de usuario, desde una máquina que esté unida al dominio. Pruebe SSH en el nodo principal o perimetral con un usuario local y luego ejecute kinit.


Error de kinit

Problema

Error de kinit.

Causa

Varía.

Solución

Para que kinit se realice correctamente, debe conocer su sAMAccountName (este es el nombre corto de la cuenta sin el dominio Kerberos). sAMAccountName es normalmente el prefijo de la cuenta (como bob en bob@contoso.com). Para algunos usuarios, podría ser diferente. Necesita la capacidad de examinar el directorio o buscar en él para aprender su sAMAccountName.

Formas de encontrar sAMAccountName:

  • Si puede iniciar sesión en Ambari mediante el administrador de Ambari local, consulte la lista de usuarios.

  • Si tiene una máquina Windows unida a un dominio, puede usar las herramientas estándar de AD de Windows para examinar. Esto requiere una cuenta profesional en el dominio.

  • En el nodo principal, puede usar los comandos de SAMBA para buscar. Esto requiere una sesión Kerberos válida (kinit correcto). net ads search "(userPrincipalName=bob*)"

    Los resultados de la búsqueda y el examen deben mostrarle el atributo sAMAccountName. Además, podría examinar otros atributos como pwdLastSet, badPasswordTime, userPrincipalName etc. para ver si esas propiedades coinciden con lo que espera.


kinit produce un error de autenticación previa

Problema

Kinit genera el error Preauthentication.

Causa

Nombre de usuario o contraseña incorrectos.

Solución

Compruebe su nombre de usuario y contraseña. Compruebe también si hay otras propiedades descritas. Para habilitar la depuración detallada, ejecute export KRB5_TRACE=/tmp/krb.log desde la sesión antes de intentar kinit.


Error del trabajo o comando HDFS debido a TokenNotFoundException

Problema

El trabajo o comando HDFS produce un error debido a TokenNotFoundException.

Causa

No se encontró el token de acceso de OAuth necesario para que el trabajo o el comando se ejecutara correctamente. El controlador ADLS/ABFS intenta recuperar el token de acceso de OAuth desde el servicio de credenciales antes de realizar las solicitudes de almacenamiento. Este token se registra cuando inicia sesión en el portal de Ambari con el mismo usuario.

Solución

Asegúrese de que ha iniciado sesión correctamente en el portal de Ambari una vez a través del nombre de usuario cuya identidad se usa para ejecutar el trabajo.


Error al recuperar el token de acceso

Problema

El usuario recibe el mensaje de error Error fetching access token.

Causa

Este error se produce de manera intermitente cuando los usuarios intentan acceder a ADLS Gen2 mediante listas de control de acceso y el token de Kerberos ha expirado.

Solución

  • Para Azure Data Lake Storage Gen1, limpie la memoria caché del explorador y vuelva a iniciar sesión en Ambari.

  • Para Azure Data Lake Storage Gen2, ejecute /usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn> para el usuario con el que se está intentando iniciar sesión.


Pasos siguientes

Si su problema no aparece o es incapaz de resolverlo, visite uno de nuestros canales para obtener ayuda adicional:

  • Obtenga respuestas de expertos de Azure mediante el soporte técnico de la comunidad de Azure.

  • Póngase en contacto con @AzureSupport, la cuenta oficial de Microsoft Azure para mejorar la experiencia del cliente. Esta cuenta pone en contacto a la comunidad de Azure con los recursos adecuados: respuestas, soporte técnico y expertos.

  • Si necesita más ayuda, puede enviar una solicitud de soporte técnico desde Azure Portal. Seleccione Soporte técnico en la barra de menús o abra la central Ayuda + soporte técnico. Para obtener información más detallada, revise Creación de una solicitud de soporte técnico de Azure. La suscripción a Microsoft Azure incluye acceso al soporte técnico para facturación y administración de suscripciones. El soporte técnico se proporciona a través de uno de los planes de soporte técnico de Azure.