Partilhar via


Problemas de autenticação no Azure HDInsight

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

Em clusters seguros apoiados pelo Azure Data Lake (Gen1 ou Gen2), quando os usuários do domínio entram nos serviços de cluster por meio do Gateway HDI (como entrar no portal Apache Ambari), o Gateway HDI tenta obter um token OAuth do Microsoft Entra primeiro e, em seguida, obter um tíquete Kerberos dos Serviços de Domínio Microsoft Entra. A autenticação pode falhar em qualquer um desses estágios. Este artigo destina-se a depurar alguns desses problemas.

Quando a autenticação falha, você é solicitado a fornecer credenciais. Se você cancelar essa caixa de diálogo, a mensagem de erro será impressa. Aqui estão algumas das mensagens de erro comuns:

invalid_grant ou unauthorized_client, 50126

Problema

O início de sessão falha para utilizadores federados com o código de erro 50126 (o início de sessão é bem-sucedido para utilizadores na 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: 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

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

Resolução

O Administrador Global do locatário do Microsoft Entra deve habilitar o Microsoft Entra ID para usar hashes de senha para usuários com suporte do ADFS. Aplique o AllowCloudPasswordValidationPolicy conforme mostrado no artigo Usar pacote de segurança empresarial no HDInsight.


invalid_grant ou unauthorized_client, 50034

Problema

O início de sessão 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: 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

O nome de usuário está incorreto (não existe). O usuário não está usando o mesmo nome de usuário 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: 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

Demasiadas tentativas de início de sessão com uma palavra-passe incorreta.

Resolução

Aguarde cerca de 30 minutos, pare todos os aplicativos que possam estar tentando autenticar.


invalid_grant ou unauthorized_client, 50053

Problema

A senha expirou, código de erro 50053. A mensagem de erro é semelhante a:

{"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

A palavra-passe expirou.

Resolução

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


interaction_required

Problema

Receber mensagem interaction_requiredde erro .

Causa

A política de acesso condicional ou a MFA está a ser aplicada ao utilizador. Como a autenticação interativa ainda não é suportada, o usuário ou o cluster precisa ser isento de MFA / acesso condicional. Se optar por isentar o cluster (política de isenção baseada em endereço IP), certifique-se de que o AD ServiceEndpoints está ativado 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 Pacote de Segurança Empresarial usando os Serviços de Domínio Microsoft Entra.


Login negado

Problema

Login negado.

Causa

Para chegar a esse estágio, sua autenticação OAuth não é um problema, mas a autenticação Kerberos é. Se esse cluster for apoiado pelo ADLS, o login OAuth será bem-sucedido antes que a autenticação Kerberos seja tentada. Em clusters WASB, o login OAuth não é tentado. Pode haver muitas razões para a falha do Kerberos - como hashes de senha fora de sincronia, conta de usuário bloqueada nos Serviços de Domínio Microsoft Entra e assim por diante. Os hashes de senha são sincronizados somente quando o usuário altera a senha. Quando você cria a instância dos Serviços de Domínio do Microsoft Entra, ela começa a sincronizar senhas que são alteradas após a criação. Ele não pode sincronizar retroativamente senhas que foram definidas antes de sua criação.

Resolução

Se achar que as palavras-passe podem não estar sincronizadas, tente alterá-las e aguarde alguns minutos para sincronizar.

Tente SSH em um Você precisa tentar autenticar (kinit) usando as mesmas credenciais de usuário, a partir de uma máquina que está associada ao domínio. SSH no nó head / edge com um usuário local e, em seguida, execute kinit.


O Kinit falha

Problema

O Kinit falha.

Causa

Varia.

Resolução

Para que o kinit tenha sucesso, você precisa saber o seu sAMAccountName (este é o nome da conta curta sem o reino). sAMAccountName é geralmente o prefixo da conta (como bob em bob@contoso.com). Para alguns usuários, poderia ser diferente. Você precisa da capacidade de navegar / pesquisar o diretório para aprender o seu sAMAccountName.

Formas de encontrar sAMAccountName:

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

  • Se você tiver uma máquina Windows associada a um domínio, poderá usar as ferramentas padrão do Windows AD para navegar. Isso requer uma conta de trabalho no domínio.

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

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


kinit falha com falha de pré-autenticação

Problema

Kinit falha com Preauthentication falha.

Causa

Nome de utilizador ou palavra-passe incorretos.

Resolução

Verifique o seu nome de utilizador e palavra-passe. Verifique também se existem outras propriedades descritas. Para habilitar a depuração detalhada, execute export KRB5_TRACE=/tmp/krb.log a partir da sessão antes de tentar o kinit.


O comando Job / HDFS falha devido a TokenNotFoundException

Problema

O comando Job / HDFS falha devido a TokenNotFoundException.

Causa

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

Resolução

Certifique-se de ter feito login com êxito no portal Ambari uma vez através do nome de usuário cuja identidade é usada para executar o trabalho.


Erro ao buscar token de acesso

Problema

O usuário recebe uma mensagem Error fetching access tokende erro .

Causa

Este 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, Executar /usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn> para o usuário que o usuário está tentando fazer logon como


Próximos passos

Se não viu o problema ou não conseguiu resolvê-lo, visite um dos seguintes canais para obter mais suporte:

  • Obtenha respostas de especialistas do Azure através do Suporte da Comunidade do Azure.

  • Conecte-se com o @AzureSupport - a conta oficial do Microsoft Azure para melhorar a experiência do cliente. Ligar a comunidade do Azure aos recursos certos: respostas, suporte e especialistas.

  • Se precisar de mais ajuda, você pode 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 suporte para Gestão de Subscrições e faturação está incluído na sua subscrição do Microsoft Azure e o Suporte Técnico é disponibilizado através de um dos Planos de Suporte do Azure.