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 comopwdLastSet
,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.