Problemas de autenticação no Azure HDInsight

Este artigo descreve as etapas de solução de problemas e as possíveis resoluções para problemas durante a interação com clusters do Azure HDInsight.

Em clusters seguros com o apoio do Azure Data Lake Gen2, quando os usuários do domínio fazem login nos serviços de cluster por meio do HDI Gateway (como fazer login no portal Apache Ambari), o HDI Gateway tenta obter um token OAuth do Microsoft Entra primeiro e, em seguida, obter um tíquete Kerberos do Microsoft Entra Domain Services. A autenticação pode falhar em qualquer uma dessas fases. Este artigo destina-se à depuração de alguns desses problemas.

Quando a autenticação falha, você recebe uma solicitação para fornecer credenciais. Se você cancelar essa caixa de diálogo, a mensagem de erro é impressa. Estas são algumas das mensagens de erro comuns:

invalid_grant ou unauthorized_client, 50126

Problema

A entrada falha para usuários federados com o código de erro 50126 (a entrada é bem-sucedida para usuários de nuvem). A mensagem de erro é semelhante a:

Reason: Bad Request, Detailed Response: {"error":"invalid_grant","error_description":"AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\n Correlation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: 2019-01-28 17:49:58Z","error_codes":[70002,50126], "timestamp":"2019-01-28 17:49:58Z","trace_id":"0000aaaa-11bb-cccc-dd22-eeeeee333333","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}

Causa

O código de erro 50126 do Microsoft Entra significa que a política AllowCloudPasswordValidation não é definida pelo locatário.

Resolução

O administrador do locatário do Microsoft Entra deve permitir que o Microsoft Entra ID use hashes de senha para usuários com suporte do ADFS. Aplique o AllowCloudPasswordValidationPolicy conforme mostrado no artigo Usar o Enterprise Security Package no HDInsight.


invalid_grant ou unauthorized_client, 50034

Problema

A entrada falha com o código de erro 50034. A mensagem de erro é semelhante a:

{"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: 2222cccc-33dd-eeee-ff44-aaaaaa555555\r\nCorrelation ID: cccc2222-dd33-4444-55ee-666666ffffff\r\nTimestamp: 2019-04-29 15:52:16Z", "error_codes":[50034],"timestamp":"2019-04-29 15:52:16Z","trace_id":"2222cccc-33dd-eeee-ff44-aaaaaa555555", "correlation_id":"cccc2222-dd33-4444-55ee-666666ffffff"}

Causa

O nome de usuário está incorreto (não existe). O usuário não está usando o mesmo nome de usuário que é usado no portal do Azure.

Resolução

Use o mesmo nome de usuário que funciona nesse portal.


invalid_grant ou unauthorized_client, 50053

Problema

A conta de usuário está bloqueada, código de erro 50053. A mensagem de erro é semelhante a:

{"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: 00aa00aa-bb11-cc22-dd33-44ee44ee44ee\r\nCorrelation ID: 11bb11bb-cc22-dd33-ee44-55ff55ff55ff\r\nTimestamp: 2019-06-06 09:47:23Z","error_codes":[50053],"timestamp":"2019-06-06 09:47:23Z","trace_id":"aaaa0000-bb11-2222-33cc-444444dddddd","correlation_id":"aaaa0000-bb11-2222-33cc-444444dddddd"}

Causa

Número excessivo de tentativas de entrada com uma senha incorreta.

Resolução

Aguarde 30 minutos ou mais, pare todos os aplicativos que possam estar tentando autenticar.


invalid_grant ou unauthorized_client, 50053 (Nº 2)

Problema

Senha expirada, código de erro 50053. A mensagem de erro é semelhante a:

{"error":"user_password_expired","error_description":"AADSTS50055: Password is expired.\r\nTrace ID: 6666aaaa-77bb-cccc-dd88-eeeeee999999\r\nCorrelation ID: eeee4444-ff55-6666-77aa-888888bbbbbb\r\nTimestamp: 2019-06-06 17:29:37Z","error_codes":[50055],"timestamp":"2019-06-06 17:29:37Z","trace_id":"6666aaaa-77bb-cccc-dd88-eeeeee999999","correlation_id":"eeee4444-ff55-6666-77aa-888888bbbbbb","suberror":"user_password_expired","password_change_url":"https://portal.microsoftonline.com/ChangePassword.aspx"}

Causa

A senha expirou.

Resolução

Altere a senha no portal do Azure (no seu sistema local) e aguarde 30 minutos para que a sincronização seja atualizada.


interaction_required

Problema

Recebimento da mensagem de erro interaction_required.

Causa

A política de acesso condicional ou MFA está sendo aplicada ao usuário. Como a autenticação interativa ainda não é compatível, o usuário ou o cluster precisa estar isento de acesso de MFA/condicional. Se você optar por isentar o cluster (política de isenção baseada em endereço IP), verifique se os ServiceEndpoints do AD estão habilitados para essa VNet.

Resolução

Use a política de acesso condicional e isente os clusters HDInsight da MFA, conforme mostrado em Configurar um cluster HDInsight com o Enterprise Security Package usando o Microsoft Entra Domain Services.


Entrada negada

Problema

Entrada negada.

Causa

Para chegar a essa fase, a autenticação OAuth não é um problema, mas a autenticação Kerberos é. Se esse cluster tiver o apoio do ADLS, o logon do OAuth será bem-sucedido antes da tentativa de autenticação do Kerberos. Em clusters WASB, não há tentativa de entrada OAuth. Pode haver muitos motivos para falha do Kerberos, como hashes de senha fora de sincronia, conta de usuário bloqueada no Microsoft Entra Domain Services e assim por diante. Os hashes de senha são sincronizados somente quando o usuário altera a senha. Quando você criar a instância do Microsoft Entra Domain Services, ela começará a sincronizar senhas que são alteradas após a criação. Não é possível sincronizar retroativamente as senhas definidas antes de seu início.

Resolução

Se você achar que as senhas não estão em sincronia, tente alterar a senha e aguarde alguns minutos para a sincronização.

Tente realizar o SSH em "Você precisa tentar autenticar (kinit)" usando as mesmas credenciais de usuário de um computador ingressado no domínio. SSH no nó de cabeçalho/borda com um usuário local e, depois, execute o kinit.


Falha no Kinit

Problema

O kinit falha.

Causa

Varia.

Resolução

Para que o kinit seja bem-sucedido, você precisa saber seu sAMAccountName (esse é o nome curto da conta, sem o realm). sAMAccountName geralmente é o prefixo da conta (como bob em bob@contoso.com). Para alguns usuários, ele pode ser diferente. Você precisa da capacidade de procurar/pesquisar no diretório para aprender qual é o seu sAMAccountName.

Maneiras de encontrar o sAMAccountName:

  • Se você puder entrar no Ambari usando o administrador do Ambari local, examine a lista de usuários.

  • Se você tiver um computador Windows ingressado no domínio, poderá usar as ferramentas padrão do AD do Windows para procurar. Isso requer uma conta de trabalho no domínio.

  • No nó de cabeçalho, você pode usar comandos do SAMBA para pesquisar. Isso requer uma sessão Kerberos válida (kinit bem-sucedido). net ads search "(userPrincipalName=bob*)"

    Os resultados da pesquisa/busca devem mostrar o atributo sAMAccountName. Além disso, você pode examinar outros atributos como pwdLastSet, badPasswordTime, userPrincipalName etc. para ver se essas propriedades correspondem ao que você espera.


O Kinit apresenta falha na pré-autenticação

Problema

Kinit apresenta a falha Preauthentication.

Causa

Nome de usuário ou senha incorreto.

Resolução

Adicione seu nome de usuário e senha. Verifique também outras propriedades descritas. Para habilitar a depuração detalhada, execute export KRB5_TRACE=/tmp/krb.log da sessão antes de tentar executar kinit.


O comando de HDFS/trabalho falha devido a TokenNotFoundException

Problema

Falha no comando de HDFS/trabalho devido a TokenNotFoundException.

Causa

O token de acesso OAuth necessário não foi encontrado para que o trabalho/comando seja bem-sucedido. O driver ADLS/ABFS tenta recuperar o token de acesso OAuth do serviço de credencial antes de fazer solicitações de armazenamento. Esse token é registrado quando você entra no portal do Ambari usando o mesmo usuário.

Resolução

Verifique se você fez logon com êxito no portal do Ambari uma vez por meio do nome de usuário cuja identidade é usada para executar o trabalho.


Erro ao buscar o token de acesso

Problema

O usuário recebe a mensagem de erro Error fetching access token.

Causa

Esse erro ocorre intermitentemente quando os usuários tentam acessar o ADLS Gen2 usando ACLs e o token Kerberos expirou.

Resolução

  • Para o Azure Data Lake Storage Gen1, limpe o cache do navegador e faça logon no Ambari novamente.

  • Para o Azure Data Lake Storage Gen2, execute usuário /usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn> está tentando fazer logon como


Próximas etapas

Se você não encontrou seu problema ou não conseguiu resolver seu problema, visite um dos seguintes canais para obter mais suporte:

  • Obtenha respostas de especialistas do Azure por meio do Suporte da Comunidade do Azure.

  • Conecte-se com @AzureSupport – a conta oficial do Microsoft Azure para aprimorar a experiência do cliente. Como se conectar à comunidade do Azure para os recursos certos: respostas, suporte e especialistas.

  • Se precisar de mais ajuda, poderá enviar uma solicitação de suporte do portal do Azure. Selecione Suporte na barra de menus ou abra o hub Ajuda + suporte. Para obter informações mais detalhadas, consulte Como criar uma solicitação de Suporte do Azure. O acesso ao Gerenciamento de assinaturas e ao suporte de cobrança está incluído na sua assinatura do Microsoft Azure, e o suporte técnico é fornecido por meio de um dos Planos de suporte do Azure.