Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте проверку подлинности приложения Microsoft Entra для приложений, таких как автоматическая служба или запланированный поток, для доступа к Azure Data Explorer без присутствующих пользователей. Если вы подключаетесь к базе данных Azure Data Explorer с помощью приложения, например веб-приложения, выполните аутентификацию с использованием представителя службы. В этой статье объясняется, как создать и зарегистрировать служебный принципал Microsoft Entra, а затем авторизовать его для доступа к базе данных Azure Data Explorer.
Создание регистрации приложения Microsoft Entra
Для проверки подлинности приложения Microsoft Entra требуется создание и регистрация приложения с помощью идентификатора Microsoft Entra. Субъект-служба автоматически создается при создании регистрации приложения в клиенте Microsoft Entra.
Регистрация приложения может быть создана в портал Azure или программно с помощью Azure CLI. Выберите вкладку, которая соответствует вашему сценарию.
Регистрация приложения
Войдите на портал Azure и откройте идентификатор Microsoft Entra.
В области навигации слева перейдите в раздел "Управление". Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".
Введите имя приложения, например "example-app".
Выберите поддерживаемый тип учетной записи, который определяет, кто может использовать приложение.
В разделе URI для перенаправления выберите Интернет для типа приложения, которое требуется создать. Поле "Универсальный код ресурса (URI)" является необязательным и в данном случае остается пустым.
Выберите Зарегистрировать.
Настройка проверки подлинности
Для субъектов-служб доступны два типа проверки подлинности: проверка подлинности на основе паролей (секрет приложения) и проверка подлинности на основе сертификатов. В следующем разделе описывается использование проверки подлинности на основе паролей для учетных данных приложения. Вы также можете использовать сертификат X509 для проверки подлинности приложения. Дополнительные сведения см. в разделе "Настройка проверки подлинности на основе сертификатов Microsoft Entra".
В этом разделе вы скопируйте следующие значения: идентификатор приложения и значение ключа. Вставьте эти значения куда-нибудь, например в текстовый редактор, чтобы использовать на шаге настройка клиентских учетных данных для базы данных.
Перейдите к разделу "Обзор ".
Скопируйте идентификатор приложения (клиента) и идентификатор каталога (арендатора).
Примечание.
Вам потребуется идентификатор приложения и идентификатор клиента, чтобы авторизовать субъект-службу для доступа к базе данных.
В области навигации слева перейдите в раздел "Управление". Выберите сертификаты и секреты и новый секрет клиента.
Введите описание и срок действия.
Выберите Добавить.
Скопируйте значение ключа.
Примечание.
Когда вы покидаете эту страницу, вы не сможете получить доступ к значению ключа.
Вы создали приложение Microsoft Entra и учетную запись службы.
Настройка делегированных разрешений для приложения — необязательно
Если приложению необходимо получить доступ к базе данных с помощью учетных данных вызывающего пользователя, настройте делегированные разрешения для приложения. Например, если вы создаете веб-API и хотите пройти проверку подлинности с помощью учетных данных пользователя, вызывающего API.
Если вам нужен доступ только к авторизованному ресурсу данных, можно пропустить этот раздел и продолжить предоставление субъекту-службе доступа к базе данных.
Перейдите к разделу разрешений APIрегистрации приложения.
Выберите Добавить разрешение.
Выберите API-интерфейсы, которые использует моя организация.
Найдите и выберите Azure Data Explorer.
В делегированных разрешениях выберите поле user_impersonation .
Выберите Добавить разрешения.
Предоставление служебному принципалу доступа к базе данных
После создания регистрации приложения, предоставьте доступ к базе данных соответствующему служебному принципалу. В следующем примере предоставляется доступ на просмотр. Сведения о других ролях см. в разделе "Управление разрешениями базы данных".
Используйте значения идентификатора приложения и идентификатора арендатора, которые были скопированы на предыдущем шаге.
Выполните следующую команду в редакторе запросов, заменив значения заполнителей ApplicationID и TenantID фактическими значениями:
.add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'Например:
.add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'Последний параметр — это строка, которая отображается в виде примечаний при запросе ролей, связанных с базой данных.
Примечание.
После создания регистрации приложения может потребоваться несколько минут, пока на него нельзя будет ссылаться. Если вы получите сообщение об ошибке, которое приложение не найдено, подождите и повторите попытку.
Дополнительные сведения о ролях см. в разделе "Управление доступом на основе ролей".
Использование учетных данных приложения для доступа к базе данных
Используйте учетные данные приложения для программного доступа к базе данных с помощью клиентской библиотеки.
. . .
string applicationClientId = "<myClientID>";
string applicationKey = "<myApplicationKey>";
string authority = "<myApplicationTenantID>";
. . .
var kcsb = new KustoConnectionStringBuilder($"https://{clusterName}.kusto.windows.net/{databaseName}")
.WithAadApplicationKeyAuthentication(
applicationClientId,
applicationKey,
authority);
var client = KustoClientFactory.CreateCslQueryProvider(kcsb);
var queryResult = client.ExecuteQuery($"{query}");
Примечание.
Укажите идентификатор приложения и ключ регистрации приложения (субъект-служба), созданный ранее.
Дополнительные сведения см. в статье "Проверка подлинности с помощью библиотеки проверки подлинности Майкрософт" (MSAL) в приложениях и использовании Azure Key Vault с веб-приложением .NET Core.
Устранение неполадок
Ошибка, связанная с недопустимым ресурсом
Если приложение проверяет подлинность пользователей или приложений для доступа, настройте делегированные разрешения для приложения-службы. Объявите, что приложение может пройти проверку подлинности пользователей или приложений для доступа. Если это не так, при попытке проверки подлинности возникает ошибка. Сообщение об ошибке аналогично следующему сообщению:
AADSTS650057: Invalid resource. The client has requested access to a resource which is not listed in the requested permissions in the client's application registration...
Следуйте инструкциям в настройке делегированных разрешений для приложения.
Ошибка при включении согласия пользователя
Администратор клиента Microsoft Entra может принять политику, которая запрещает пользователям клиента предоставлять согласие на приложения. Эта ситуация приводит к ошибке, аналогичной следующей ошибке, когда пользователь пытается войти в приложение:
AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'
Обратитесь к администратору Microsoft Entra, чтобы предоставить согласие для всех пользователей в клиенте или включить согласие пользователя для конкретного приложения.