Поделиться через


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