Брокер удостоверений Azure HDInsight (HIB)
Эта статья содержит сведения о том, как настраивать и использовать возможность "Брокер удостоверений Azure HDInsight". Эту функцию можно использовать для получения современной проверки подлинности OAuth в Apache Ambari при наличии многофакторной проверки подлинности без использования устаревших хэшей паролей в доменных службах Microsoft Entra.
Обзор
Брокер удостоверений HDInsight упрощает сложные настройки проверки подлинности в следующих сценариях.
- Для проверки подлинности пользователей с целью предоставления им доступа к облачным ресурсам ваша организация использует федерацию. Ранее для использования кластеров пакетов безопасности HDInsight Enterprise необходимо было включить синхронизацию хэша паролей из локальной среды с идентификатором Microsoft Entra. Для некоторых организаций это требование может быть затруднительным или нежелательным.
- Ваша организация хочет принудительно применять многофакторную проверку подлинности для доступа к Apache Ambari и другим кластерным ресурсам через Интернет или по протоколу HTTP.
Брокер идентификаторов HDInsight предоставляет инфраструктуру проверки подлинности, которая обеспечивает переход протокола с OAuth (современный) на Kerberos (устаревшая версия) без необходимости синхронизации хэшей паролей с доменными службами Microsoft Entra. Эта инфраструктура состоит из компонентов, запущенных на виртуальной машине Windows Server с включенным узлом брокера удостоверений HDInsight, а также узлами шлюза кластера.
С помощью следующей таблицы определите оптимальный вариант проверки подлинности на основе требований вашей организации.
Варианты проверки подлинности | Конфигурация HDInsight | Факторы, которые следует учитывать |
---|---|---|
Полностью OAuth | Корпоративный пакет безопасности + Брокер удостоверений HDInsight | Самый безопасный вариант. (Поддерживается многофакторная проверка подлинности.) Синхронизация хэша не требуется. Нет доступа ssh/kinit/keytab для локальных учетных записей, которые не имеют хэша паролей в доменных службах Microsoft Entra. Учетные записи, предназначенные только для облака, могут по-прежнему использовать SSH/kinit/keytab. Веб-доступ к Ambari через OAuth. Требует обновления устаревших приложений (например, JDBC/ODBC) для поддержки OAuth. |
OAuth + обычная проверка подлинности | Корпоративный пакет безопасности + Брокер удостоверений HDInsight | Веб-доступ к Ambari через OAuth. Устаревшие приложения продолжают использовать обычную проверку подлинности. Для доступа с использованием обычной проверки подлинности многофакторную проверку подлинности необходимо отключить. Синхронизация хэша не требуется. Нет доступа ssh/kinit/keytab для локальных учетных записей, которые не имеют хэша паролей в доменных службах Microsoft Entra. Учетные записи, предназначенные только для облака, могут по-прежнему использовать SSH/kinit/. |
Полностью обычная проверка подлинности | Пакет безопасности корпоративного уровня | Больше всего похожа на локальные настройки. Требуется синхронизация хэша паролей с доменными службами Microsoft Entra. Локальные учетные записи могут использовать SSH/kinit или keytab. Необходимо отключить многофакторную проверку подлинности, если в качестве резервного хранилища используется Azure Data Lake Storage 2-го поколения. |
На следующей схеме представлен поток современной проверки подлинности на основе OAuth для всех пользователей, включая федеративных пользователей, после включения брокера удостоверений HDInsight:
На этой схеме клиент (то есть браузер или приложение) сначала должен получить токен OAuth. Затем он показывает маркер шлюзу в HTTP-запросе. Если вы уже вошли в другие службы Azure, например на портал Azure, войти в кластер HDInsight можно с помощью единого входа.
Многие устаревшие приложения по-прежнему поддерживают только обычную проверку подлинности (то есть имя пользователя и пароль). В этих сценариях для подключения к шлюзам кластера можно по-прежнему использовать обычную проверку подлинности HTTP. В этой настройке необходимо обеспечить сетевое подключение с узлов шлюза к конечной точке службы федерации Active Directory (AD FS) (AD FS), чтобы обеспечить прямую линию видимости с узлов шлюза.
На следующей схеме представлен поток обычной проверки подлинности для федеративных пользователей. Сначала шлюз пытается выполнить проверку подлинности с помощью потока ROPC. Если хэши паролей не синхронизированы с идентификатором Microsoft Entra, он возвращается к обнаружению конечной точки AD FS и завершает проверку подлинности путем доступа к конечной точке AD FS.
Включение брокера удостоверений HDInsight
Чтобы создать кластер пакета безопасности предприятия с включенным брокером идентификаторов HDInsight,
- Войдите на портал Azure.
- Выполните базовые действия по созданию кластера корпоративного пакета безопасности. Дополнительные сведения см. в статье Создание кластера HDInsight с корпоративным пакетом безопасности.
- Выберите Включить брокер удостоверений HDInsight.
Возможность "Брокер удостоверений HDInsight" добавляет в кластер одну дополнительную виртуальную машину. Эта виртуальная машина представляет собой узел брокера удостоверений HDInsight и включает серверные компоненты для поддержки проверки подлинности. Узел брокера идентификаторов HDInsight присоединен к домену доменных служб Microsoft Entra.
Использование шаблонов Azure Resource Manager
Если добавить новую роль, вызванную idbrokernode
следующими атрибутами в профиль вычислений шаблона, кластер создается с включенным узлом брокера идентификаторов HDInsight:
.
.
.
"computeProfile": {
"roles": [
{
"autoscale": null,
"name": "headnode",
....
},
{
"autoscale": null,
"name": "workernode",
....
},
{
"autoscale": null,
"name": "idbrokernode",
"targetInstanceCount": 2,
"hardwareProfile": {
"vmSize": "Standard_A2_V2"
},
"virtualNetworkProfile": {
"id": "string",
"subnet": "string"
},
"scriptActions": [],
"dataDisksGroups": null
}
]
}
.
.
.
Полный пример шаблона ARM см . здесь.
Интеграция средств
Средства HDInsight обновлены с целью собственной поддержки OAuth. Используйте эти средства для доступа к кластерам на основе современной проверки подлинности OAuth. Подключаемый модуль HDInsight для IntelliJ можно использовать для приложений на основе Java, таких как Scala. Средства Spark и Hive для Visual Studio Code можно использовать для заданий PySpark и Hive. Эти средства поддерживают как пакетные, так и интерактивные задания.
SSH-доступ без хэша паролей в доменных службах Microsoft Entra
Параметры SSH | Факторы, которые следует учитывать |
---|---|
Локальная учетная запись виртуальной машины (например, sshuser) | Вы указали эту учетную запись при создании кластера. Для этой учетной записи проверка подлинности Kerberos отсутствует. |
Учетная запись, предназначенная только для облака (например, alice@contoso.onmicrosoft.com) | Хэш паролей доступен в доменных службах Microsoft Entra. Проверку подлинности Kerberos можно выполнить через Kerberos SSH. |
Локальная учетная запись (например, alice@contoso.com) | Проверка подлинности Kerberos SSH возможна только в том случае, если хэш паролей доступен в доменных службах Microsoft Entra. В противном случае этот пользователь не сможет получить доступ к кластеру по протоколу SSH. |
Для получения доступа к виртуальной машине, присоединенной к домену, по протоколу SSH или выполнения команды kinit
необходимо указать пароль. Для проверки подлинности Kerberos SSH требуется, чтобы хэш был доступен в доменных службах Microsoft Entra. Если вы хотите использовать SSH только для администрирования, можно создать одну учетную запись, предназначенную только для облака, и использовать ее для подключения к кластеру по протоколу SSH. Другие локальные пользователи по-прежнему могут использовать средства Ambari или HDInsight или обычную проверку подлинности HTTP без хэша паролей, доступных в доменных службах Microsoft Entra.
Если ваша организация не синхронизирует хэши паролей с доменными службами Microsoft Entra, рекомендуется создать одного облачного пользователя в идентификаторе Microsoft Entra ID. Затем при создании кластера назначьте его администратором кластера и используйте в целях администрирования. Его можно использовать для получения доступа с правами root к виртуальным машинам по протоколу SSH.
Сведения об устранении неполадок при проверке подлинности см. в этом руководстве.
Клиенты, использующие OAuth для подключения к шлюзу HDInsight с помощью брокера удостоверений HDInsight
При настройке брокера идентификаторов HDInsight пользовательские приложения и клиенты, подключающиеся к шлюзу, можно обновить, чтобы сначала получить необходимый маркер OAuth. Дополнительные сведения см. в статье "Проверка подлинности приложений .NET с помощью служб Azure". Ключевыми значениями, необходимыми для авторизации доступа к шлюзу HDInsight, являются:
- URI ресурса OAuth:
https://hib.azurehdinsight.net
- AppId: 00001111-aaaa-2222-bbbb-3333cccc4444
- Разрешение: (имя: Cluster.ReadWrite, идентификатор: 8f89faa0-ffef-4007-974d-4989b39ad77d)
После получения используйте токен OAuth в заголовке авторизации HTTP-запроса к шлюзу кластера (например, https://<clustername>-int.azurehdinsight.net). Пример команды cURL для API Apache Livy может выглядеть следующим образом:
curl -k -v -H "Authorization: Bearer Access_TOKEN" -H "Content-Type: application/json" -X POST -d '{ "file":"wasbs://mycontainer@mystorageaccount.blob.core.windows.net/data/SparkSimpleTest.jar", "className":"com.microsoft.spark.test.SimpleFile" }' "https://<clustername>-int.azurehdinsight.net/livy/batches" -H "X-Requested-By:<username@domain.com>"
Для использования Beeline и Livy можно также следовать приведенным здесь кодам примеров, чтобы настроить клиент для использования OAuth и подключения к кластеру.
Вопросы и ответы
Какое приложение создается HDInsight в идентификаторе Microsoft Entra?
Для каждого кластера стороннее приложение регистрируется в идентификаторе Microsoft Entra с URI кластера в качестве идентификатора (например https://clustername.azurehdinsight.net
).
Почему перед использованием кластеров с поддержкой HIB пользователи должны предоставить согласие?
В идентификаторе Microsoft Entra согласие требуется для всех сторонних приложений, прежде чем он сможет пройти проверку подлинности пользователей или получить доступ к данным.
Можно ли утвердить согласие программным способом?
API Microsoft Graph позволяет автоматизировать согласие. См. документацию по API. Последовательность действий для автоматизации согласия:
- зарегистрируйте приложение и предоставьте ему разрешения Application.ReadWrite.All для доступа к Microsoft Graph;
- после создания кластера запросите приложение кластера на основе URI идентификатора;
- зарегистрируйте согласие для приложения;
Когда кластер удаляется, HDInsight удаляет приложение, и нет необходимости очистить любое согласие.