Проблемы проверки подлинности в Azure HDInsight
В этой статье описаны действия по устранению неполадок и возможные способы решения проблем при взаимодействии с кластерами Azure HDInsight.
В защищенных кластерах, поддерживаемых Azure Data Lake 2-го поколения, при входе пользователей домена в службы кластеров через шлюз HDI (например, вход на портал Apache Ambari), шлюз HDI сначала пытается получить маркер OAuth из Microsoft Entra, а затем получить билет Kerberos из доменных служб Microsoft Entra. На одном из этих этапов может произойти сбой проверки подлинности. Эта статья предназначена для устранения некоторых из этих проблем.
При сбое проверки подлинности появится запрос на получение учетных данных. Если отменить это диалоговое окно, выводится сообщение об ошибке. Ниже приведены некоторые распространенные сообщения об ошибках:
invalid_grant or unauthorized_client, 50126
Проблема
Не удается выполнить вход для федеративных пользователей с кодом ошибки 50126 (для пользователей облака вход выполнен успешно). Сообщение об ошибке выглядит следующим образом:
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"}
Причина
Код ошибки Microsoft Entra 50126 означает AllowCloudPasswordValidation
, что политика не задана клиентом.
Разрешение
Администратор клиента Microsoft Entra должен включить идентификатор Microsoft Entra для использования хэшей паролей для поддерживаемых пользователей ADFS. Примените AllowCloudPasswordValidationPolicy
, как показано в статье Использование корпоративного пакета безопасности в HDInsight.
invalid_grant or unauthorized_client, 50034
Проблема
Не удается войти в систему с кодом ошибки 50034. Сообщение об ошибке выглядит следующим образом:
{"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"}
Причина
Неправильное имя пользователя (не существует). Пользователь не использует то же имя пользователя, которое используется в портал Azure.
Разрешение
Используйте то же имя пользователя, которое работает на этом портале.
invalid_grant or unauthorized_client, 50053
Проблема
Учетная запись пользователя заблокирована, код ошибки 50053. Сообщение об ошибке выглядит следующим образом:
{"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"}
Причина
Слишком много попыток входа с неверным паролем.
Разрешение
Подождите около 30 минут, остановите все приложения, которые могут пытаться пройти проверку подлинности.
invalid_grant or unauthorized_client, 50053 (#2)
Проблема
Срок действия пароля истек, код ошибки 50053. Сообщение об ошибке выглядит следующим образом:
{"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"}
Причина
Истек срок действия пароля.
Разрешение
Измените пароль на портале Azure (в вашей локальной системе), а затем подождите 30 минут, пока завершится синхронизация.
interaction_required
Проблема
Получение сообщения об ошибке interaction_required
.
Причина
Политика условного доступа или MFA применяется к пользователю. Так как интерактивная проверка подлинности пока не поддерживается, пользователю или кластеру необходимо исключить из MFA или условного доступа. Если вы решили исключить кластер (политика исключения на основе IP-адреса), убедитесь, что AD ServiceEndpoints
включен для этой виртуальной сети.
Разрешение
Используйте политику условного доступа и исключите кластеры HDInsight из MFA, как показано в разделе "Настройка кластера HDInsight с корпоративным пакетом безопасности" с помощью доменных служб Microsoft Entra.
Вход запрещен
Проблема
Вход запрещен.
Причина
Для этого этапа проверка подлинности OAuth не является проблемой, но проверка подлинности Kerberos выполняется. Если этот кластер поддерживается ADLS, вход OAuth выполнен успешно до попытки проверки подлинности Kerberos. В кластерах WASB вход OAuth не выполняется. Может быть много причин сбоя Kerberos, таких как хэши паролей, не синхронизированы, учетная запись пользователя заблокирована в доменных службах Microsoft Entra и т. д. Хэши паролей синхронизируются только тогда, когда пользователь меняет пароль. При создании экземпляра доменных служб Microsoft Entra начнется синхронизация паролей, которые изменяются после создания. Он не может ретроактивно синхронизировать пароли, которые были установлены до его создания.
Разрешение
Если вы считаете, что пароли могут не синхронизироваться, попробуйте изменить пароль и подождите несколько минут для синхронизации.
Попробуйте выполнить SSH-подключение к домену, чтобы попытаться выполнить проверку подлинности (kinit), используя те же учетные данные пользователя, с компьютера, присоединенного к домену. Подключитесь по SSH к головному/граничному узлу с локальным пользователем, а затем запустите kinit.
Сбой Kinit
Проблема
Сбой kinit.
Причина
Возможны разные варианты.
Разрешение
Для успешного выполнения kinit необходимо знать свой sAMAccountName
(это короткое имя учетной записи без области). sAMAccountName
обычно является префиксом учетной записи (например, bob в bob@contoso.com
). Для некоторых пользователей все могло быть иначе. Вам нужна возможность просматривать и искать каталог, чтобы узнать свой sAMAccountName
.
Способы поиска sAMAccountName
:
Если вы можете войти в Ambari с помощью локального администратора Ambari, посмотрите список пользователей.
Если у вас есть компьютер с Windows, присоединенный к домену, вы можете использовать стандартные инструменты Windows AD для просмотра. Для этого требуется наличие рабочей учетной записи в домене.
Из головного узла вы можете использовать команды SAMBA для поиска. Для этого требуется наличия действующего сеанса Kerberos (успешный kinit). поиск объявлений в сети "(userPrincipalName=bob*)"
В результатах поиска/просмотра должен отображаться атрибут
sAMAccountName
. Кроме того, вы можете посмотреть на другие атрибуты, такие какpwdLastSet
,badPasswordTime
,userPrincipalName
и т. д., чтобы убедиться, что эти свойства соответствуют вашим ожиданиям.
Kinit завершается сбоем при сбое предварительной проверки подлинности
Проблема
Kinit завершается сбоем с ошибкой Preauthentication
.
Причина
Неверное имя пользователя или пароль.
Разрешение
Проверьте свое имя пользователя и пароль. Также проверьте наличие других свойств, описанных. Чтобы включить подробную отладку, запустите export KRB5_TRACE=/tmp/krb.log
из сеанса, прежде чем пробовать kinit.
Команда Job/HDFS не работает из-за TokenNotFoundException
Проблема
Команда Job/HDFS не работает из-за TokenNotFoundException
.
Причина
Требуемый маркер доступа OAuth не найден для успешного выполнения задания или команды. Драйвер ADLS /ABFS пытается получить маркер доступа OAuth из службы учетных данных перед выполнением запросов на хранение. Этот маркер регистрируется, когда вы входите на портал Ambari под тем же пользователем.
Разрешение
Убедитесь, что вы успешно выполнили вход на портал Ambari один раз, используя имя пользователя, идентификатор которого используется для выполнения задания.
Ошибка при получении маркера доступа
Проблема
Пользователь получает сообщение об ошибке Error fetching access token
.
Причина
Эта ошибка возникает периодически, когда пользователи пытаются получить доступ к ADLS 2-го поколения с помощью списков управления доступом и истек срок действия маркера Kerberos.
Разрешение
Для Azure Data Lake Storage 1-го поколения очистите кэш браузера и снова войдите в Ambari.
Для Azure Data Lake Storage 2-го поколения запуск
/usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn>
пользователя пытается войти как
Следующие шаги
Если вы не видите своего варианта проблемы или вам не удается ее устранить, дополнительные сведения можно получить, посетив один из следующих каналов.
Получите ответы специалистов Azure на сайте поддержки сообщества пользователей Azure.
Подпишитесь на @AzureSupport — официальный канал Microsoft Azure для улучшения качества взаимодействия с клиентами. Вступайте в сообщество Azure для получения нужных ресурсов: ответов, поддержки и советов экспертов.
Если вам нужна дополнительная помощь, отправьте запрос в службу поддержки на портале Azure. Выберите Поддержка в строке меню или откройте центр Справка и поддержка. Дополнительные сведения см. в статье Создание запроса на поддержку Azure. Доступ к управлению подписками и поддержкой выставления счетов уже включен в вашу подписку Microsoft Azure, а техническая поддержка предоставляется в рамках одного из планов Службы поддержки Azure.