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

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

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

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

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

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

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

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