Udostępnij za pośrednictwem


Problemy z uwierzytelnianiem w usłudze Azure HDInsight

W tym artykule opisano kroki rozwiązywania problemów i możliwe rozwiązania problemów podczas interakcji z klastrami usługi Azure HDInsight.

W bezpiecznych klastrach wspieranych przez usługę Azure Data Lake Gen2, gdy użytkownicy domeny logujący się do usług klastra za pośrednictwem bramy HDI (na przykład logując się do portalu Apache Ambari), usługa HDI Gateway próbuje najpierw uzyskać token OAuth z usługi Microsoft Entra, a następnie uzyskać bilet Protokołu Kerberos z usług Microsoft Entra Domain Services. Uwierzytelnianie może zakończyć się niepowodzeniem w jednym z tych etapów. Ten artykuł ma na celu debugowanie niektórych z tych problemów.

Gdy uwierzytelnianie zakończy się niepowodzeniem, zostanie wyświetlony monit o podanie poświadczeń. Jeśli anulujesz to okno dialogowe, zostanie wyświetlony komunikat o błędzie. Oto niektóre typowe komunikaty o błędach:

invalid_grant lub unauthorized_client, 50126

Problem

Logowanie kończy się niepowodzeniem dla użytkowników federacyjnych z kodem błędu 50126 (logowanie powiedzie się dla użytkowników chmury). Komunikat o błędzie jest podobny do następującego:

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

Przyczyna

Kod błędu 50126 firmy Microsoft oznacza, AllowCloudPasswordValidation że zasady nie są ustawiane przez dzierżawę.

Rozwiązanie

Administrator dzierżawy microsoft Entra powinien włączyć identyfikator Entra firmy Microsoft, aby używać skrótów haseł dla użytkowników wspieranych przez usługę ADFS. Zastosuj element AllowCloudPasswordValidationPolicy , jak pokazano w artykule Use Enterprise Security Package in HDInsight (Używanie pakietu Enterprise Security w usłudze HDInsight).


invalid_grant lub unauthorized_client, 50034

Problem

Logowanie kończy się niepowodzeniem z kodem błędu 50034. Komunikat o błędzie jest podobny do następującego:

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

Przyczyna

Nazwa użytkownika jest nieprawidłowa (nie istnieje). Użytkownik nie używa tej samej nazwy użytkownika, która jest używana w witrynie Azure Portal.

Rozwiązanie

Użyj tej samej nazwy użytkownika, która działa w tym portalu.


invalid_grant lub unauthorized_client, 50053

Problem

Konto użytkownika jest zablokowane, kod błędu 50053. Komunikat o błędzie jest podobny do następującego:

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

Przyczyna

Zbyt wiele prób logowania przy użyciu nieprawidłowego hasła.

Rozwiązanie

Poczekaj 30 minut lub tak, zatrzymaj wszystkie aplikacje, które mogą próbować się uwierzytelnić.


invalid_grant lub unauthorized_client, 50053 (#2)

Problem

Hasło wygasło, kod błędu 50053. Komunikat o błędzie jest podobny do następującego:

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

Przyczyna

Hasło wygasło.

Rozwiązanie

Zmień hasło w witrynie Azure Portal (w systemie lokalnym), a następnie poczekaj 30 minut na synchronizację, aby nadrobić zaległości.


interaction_required

Problem

Otrzymuj komunikat interaction_requiredo błędzie .

Przyczyna

Zasady dostępu warunkowego lub uwierzytelniania wieloskładnikowego są stosowane do użytkownika. Ponieważ uwierzytelnianie interakcyjne nie jest jeszcze obsługiwane, użytkownik lub klaster musi być wykluczony z uwierzytelniania wieloskładnikowego/dostępu warunkowego. Jeśli zdecydujesz się wykluczyć klaster (zasady wykluczania oparte na adresach IP), upewnij się, że usługa AD ServiceEndpoints jest włączona dla tej sieci wirtualnej.

Rozwiązanie

Użyj zasad dostępu warunkowego i wyklucz klastry usługi HDInsight z uwierzytelniania wieloskładnikowego, jak pokazano w temacie Konfigurowanie klastra usługi HDInsight z pakietem Enterprise Security przy użyciu usług Microsoft Entra Domain Services.


Odmowa logowania

Problem

Odmowa logowania.

Przyczyna

Aby przejść do tego etapu, uwierzytelnianie OAuth nie jest problemem, ale uwierzytelnianie Kerberos jest. Jeśli ten klaster jest wspierany przez usługę ADLS, logowanie OAuth powiodło się przed podjęciem próby uwierzytelnienia protokołu Kerberos. W klastrach WASB logowanie OAuth nie jest podejmowane. Przyczyną niepowodzenia protokołu Kerberos może być wiele przyczyn — na przykład skróty haseł nie są zsynchronizowane, konto użytkownika zablokowane w usługach Microsoft Entra Domain Services itd. Skróty haseł są synchronizowane tylko wtedy, gdy użytkownik zmieni hasło. Podczas tworzenia wystąpienia usług Microsoft Entra Domain Services rozpocznie się synchronizowanie haseł, które zostaną zmienione po utworzeniu. Nie może on z mocą wsteczną synchronizować haseł ustawionych przed ich utworzeniem.

Rozwiązanie

Jeśli uważasz, że hasła mogą nie być zsynchronizowane, spróbuj zmienić hasło i poczekać kilka minut na synchronizację.

Spróbuj użyć protokołu SSH do elementu Musisz spróbować uwierzytelnić (kinit) przy użyciu tych samych poświadczeń użytkownika z komputera przyłączonego do domeny. Połączenie SSH z węzłem głównym/krawędzi za pomocą użytkownika lokalnego, a następnie uruchom narzędzie kinit.


Niepowodzenie interfejsu Kinit

Problem

Kinit kończy się niepowodzeniem.

Przyczyna

Różni się.

Rozwiązanie

Aby kinit zakończył się powodzeniem, musisz znać swoją sAMAccountName (jest to krótka nazwa konta bez obszaru). sAMAccountName to zazwyczaj prefiks konta (na przykład bob w bob@contoso.compliku ). Dla niektórych użytkowników może to być inne. Musisz mieć możliwość przeglądania/przeszukiwania katalogu, aby dowiedzieć się, jak go sAMAccountNamepoznać.

Sposoby znajdowania sAMAccountName:

  • Jeśli możesz zalogować się do systemu Ambari przy użyciu lokalnego administratora systemu Ambari, zapoznaj się z listą użytkowników.

  • Jeśli masz maszynę z systemem Windows przyłączonym do domeny, możesz użyć standardowych narzędzi usługi Windows AD do przeglądania. Wymaga to konta roboczego w domenie.

  • Z węzła głównego można wyszukiwać za pomocą poleceń SAMBA. Wymaga to prawidłowej sesji protokołu Kerberos (pomyślnej sesji kinit). wyszukiwanie reklam net "(userPrincipalName=bob*)"

    Wyniki wyszukiwania/przeglądania sAMAccountName powinny zawierać atrybut . Ponadto możesz przyjrzeć się innym atrybutom, nppwdLastSet. , badPasswordTimeuserPrincipalName itp., aby sprawdzić, czy te właściwości są zgodne z oczekiwaną wartością.


Niepowodzenie interfejsu Kinit z niepowodzeniem uwierzytelniania wstępnego

Problem

Kinit kończy się niepowodzeniem z Preauthentication powodu błędu.

Przyczyna

Nieprawidłowa nazwa użytkownika lub hasło.

Rozwiązanie

Sprawdź nazwę użytkownika i hasło. Sprawdź również inne opisane właściwości. Aby włączyć pełne debugowanie, uruchom polecenie export KRB5_TRACE=/tmp/krb.log z sesji przed podjęciem próby kinit.


Polecenie Job/HDFS kończy się niepowodzeniem z powodu błędu TokenNotFoundException

Problem

Polecenie Job/HDFS kończy się niepowodzeniem z powodu .TokenNotFoundException

Przyczyna

Nie można odnaleźć wymaganego tokenu dostępu OAuth dla zadania/polecenia, aby zakończyć się powodzeniem. Sterownik ADLS/ABFS próbuje pobrać token dostępu OAuth z usługi poświadczeń przed wykonaniem żądań magazynu. Ten token jest rejestrowany podczas logowania się do portalu Ambari przy użyciu tego samego użytkownika.

Rozwiązanie

Upewnij się, że pomyślnie zalogowano się do portalu Ambari raz za pomocą nazwy użytkownika, której tożsamość jest używana do uruchamiania zadania.


Błąd podczas pobierania tokenu dostępu

Problem

Użytkownik otrzymuje komunikat Error fetching access tokeno błędzie .

Przyczyna

Ten błąd występuje sporadycznie, gdy użytkownicy próbują uzyskać dostęp do usługi ADLS Gen2 przy użyciu list ACL i tokenu Kerberos wygasł.

Rozwiązanie

  • W przypadku usługi Azure Data Lake Storage Gen1 wyczyść pamięć podręczną przeglądarki i ponownie zaloguj się do systemu Ambari.

  • W przypadku usługi Azure Data Lake Storage Gen2 uruchom /usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn> użytkownika, który próbuje się zalogować jako


Następne kroki

Jeśli problem nie został wyświetlony lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać więcej pomocy technicznej:

  • Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem pomocy technicznej społeczności platformy Azure.

  • Nawiąż połączenie z @AzureSupport — oficjalnym kontem platformy Microsoft Azure, aby ulepszyć środowisko klienta. Łączenie społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.

  • Jeśli potrzebujesz dodatkowej pomocy, możesz przesłać wniosek o pomoc techniczną w witrynie Azure Portal. Wybierz pozycję Pomoc techniczna na pasku menu lub otwórz centrum Pomoc i obsługa techniczna . Aby uzyskać bardziej szczegółowe informacje, zobacz How to create an pomoc techniczna platformy Azure request (Jak utworzyć żądanie pomoc techniczna platformy Azure). Dostęp do pomocy technicznej dotyczącej zarządzania subskrypcjami i rozliczeniami jest oferowany w ramach subskrypcji platformy Microsoft Azure, a pomoc techniczna jest świadczona w ramach jednego z planów pomocy technicznej platformy Azure.