Создание регистрации приложения Microsoft Entra в Azure Data Explorer

Используйте проверку подлинности приложения Microsoft Entra для приложений, таких как автоматическая служба или запланированный поток, для доступа к Azure Data Explorer без присутствующих пользователей. Если вы подключаетесь к базе данных Azure Data Explorer с помощью приложения, например веб-приложения, выполните аутентификацию с использованием представителя службы. В этой статье объясняется, как создать и зарегистрировать служебный принципал Microsoft Entra, а затем авторизовать его для доступа к базе данных Azure Data Explorer.

Создание регистрации приложения Microsoft Entra

Для проверки подлинности приложения Microsoft Entra требуется создание и регистрация приложения с помощью идентификатора Microsoft Entra. Субъект-служба автоматически создается при создании регистрации приложения в клиенте Microsoft Entra.

Регистрация приложения может быть создана в портал Azure или программно с помощью Azure CLI. Выберите вкладку, которая соответствует вашему сценарию.

Регистрация приложения

  1. Войдите на портал Azure и откройте идентификатор Microsoft Entra.

  2. В области навигации слева перейдите в раздел "Управление". Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".

    Снимок экрана: начало новой регистрации приложения.

  3. Введите имя приложения, например "example-app".

  4. Выберите поддерживаемый тип учетной записи, который определяет, кто может использовать приложение.

  5. В разделе URI для перенаправления выберите Интернет для типа приложения, которое требуется создать. Поле "Универсальный код ресурса (URI)" является необязательным и в данном случае остается пустым.

    Снимок экрана: регистрация нового приложения.

  6. Выберите Зарегистрировать.

Настройка проверки подлинности

Для субъектов-служб доступны два типа проверки подлинности: проверка подлинности на основе паролей (секрет приложения) и проверка подлинности на основе сертификатов. В следующем разделе описывается использование проверки подлинности на основе паролей для учетных данных приложения. Вы также можете использовать сертификат X509 для проверки подлинности приложения. Дополнительные сведения см. в разделе "Настройка проверки подлинности на основе сертификатов Microsoft Entra".

В этом разделе вы скопируйте следующие значения: идентификатор приложения и значение ключа. Вставьте эти значения куда-нибудь, например в текстовый редактор, чтобы использовать на шаге настройка клиентских учетных данных для базы данных.

  1. Перейдите к разделу "Обзор ".

  2. Скопируйте идентификатор приложения (клиента) и идентификатор каталога (арендатора).

    Примечание.

    Вам потребуется идентификатор приложения и идентификатор клиента, чтобы авторизовать субъект-службу для доступа к базе данных.

  3. В области навигации слева перейдите в раздел "Управление". Выберите сертификаты и секреты и новый секрет клиента.

    Снимок экрана: начало создания секрета клиента.

  4. Введите описание и срок действия.

  5. Выберите Добавить.

  6. Скопируйте значение ключа.

    Примечание.

    Когда вы покидаете эту страницу, вы не сможете получить доступ к значению ключа.

Вы создали приложение Microsoft Entra и учетную запись службы.

Настройка делегированных разрешений для приложения — необязательно

Если приложению необходимо получить доступ к базе данных с помощью учетных данных вызывающего пользователя, настройте делегированные разрешения для приложения. Например, если вы создаете веб-API и хотите пройти проверку подлинности с помощью учетных данных пользователя, вызывающего API.

Если вам нужен доступ только к авторизованному ресурсу данных, можно пропустить этот раздел и продолжить предоставление субъекту-службе доступа к базе данных.

  1. Перейдите к разделу разрешений APIрегистрации приложения.

  2. Выберите Добавить разрешение.

  3. Выберите API-интерфейсы, которые использует моя организация.

  4. Найдите и выберите Azure Data Explorer.

    Снимок экрана: добавление разрешения для API Azure Data Explorer.

  5. В делегированных разрешениях выберите поле user_impersonation .

  6. Выберите Добавить разрешения.

    Снимок экрана: выбор делегированных разрешений с имитацией пользователя.

Предоставление служебному принципалу доступа к базе данных

После создания регистрации приложения, предоставьте доступ к базе данных соответствующему служебному принципалу. В следующем примере предоставляется доступ на просмотр. Сведения о других ролях см. в разделе "Управление разрешениями базы данных".

  1. Используйте значения идентификатора приложения и идентификатора арендатора, которые были скопированы на предыдущем шаге.

  2. Выполните следующую команду в редакторе запросов, заменив значения заполнителей 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, чтобы предоставить согласие для всех пользователей в клиенте или включить согласие пользователя для конкретного приложения.