Сведения о контроле доступа к Kusto

Управление доступом в Azure Data Explorer основано на двух ключевых факторах.

  • Аутентификация. Проверка удостоверения субъекта безопасности, который выполняет запрос.
  • Авторизация. Проверка прав субъекта безопасности, который выполняет запрос, разрешающих ему выполнять такой запрос к целевому ресурсу.

Запрос или команда управления в кластере, базе данных или таблице Azure Data Explorer должны пройти проверку подлинности и авторизацию.

Аутентификация

Azure Active Directory (Azure AD) — это предпочтительная для Azure мультитенантная облачная служба каталогов. Она позволяет реализовать проверку подлинности для субъектов безопасности или настраивать федерацию с другими поставщиками удостоверений.

В корпорации Майкрософт для проверки подлинности в Azure Data Explorer предпочтение отдается именно Azure AD. Эта служба поддерживает несколько сценариев проверки подлинности:

  • Проверка подлинности для пользователей (интерактивный вход в систему). Используется для аутентификации субъектов, представляющих людей.
  • Проверка подлинности приложений (неинтерактивный вход в систему). Используется для проверки подлинности служб и приложений, которые должны запускаться и проходить проверку подлинности без участия пользователя.

Аутентификация пользователей

Проверка подлинности пользователя выполняется, когда пользователь предоставляет учетные данные:

  • Azure AD
  • поставщику удостоверений, который работает с Azure AD.

При успешном прохождении проверки пользователь получает маркер безопасности, который можно представить службе Azure Data Explorer. Служба Azure Data Explorer не определяет, как был получен маркер безопасности. Она проверяет только действительность маркера и данные, помещенные в него службой Azure AD (или федеративным поставщиком удостоверений).

На стороне клиента служба Azure Data Explorer поддерживает интерактивную проверку подлинности, при которой Библиотека проверки подлинности Майкрософт или другой аналогичный код предлагает пользователю ввести учетные данные. Служба также поддерживает проверку подлинности на основе маркеров, при которой приложение, использующее Azure Data Explorer, получает действительный маркер пользователя. Кроме того, приложение, в котором применяется Azure Data Explorer, может получить действительный маркер пользователя для другой службы. В этом случае маркер можно получить, только если между этим ресурсом и Azure Data Explorer есть отношения доверия.

Дополнительные сведения об использовании клиентских библиотек Kusto и проверке подлинности в Azure Data Explorer с помощью Azure AD см. в статье Строки подключения Kusto.

Проверка подлинности приложения

Если запросы не связаны с конкретным пользователем или пользователь не может ввести учетные данные, используйте поток проверки подлинности приложения Azure AD. В рамках потока приложение проходит проверку подлинности в Azure AD (или у федеративного поставщика удостоверений), предоставляя некоторую секретную информацию. Разные клиенты Azure Data Explorer поддерживают следующие сценарии:

  • Проверка подлинности приложения с использованием локально установленного сертификата X.509v2.

  • Проверка подлинности приложения с использованием сертификата X.509v2, передаваемого в клиентскую библиотеку как поток байтов.

  • Проверка подлинности приложения с использованием идентификатора приложения Azure AD и ключа приложения Azure AD.

    Примечание

    Идентификатор и ключ эквивалентны имени пользователя и паролю.

  • Проверка подлинности приложения с использованием полученного ранее действительного маркера Azure AD (выпущенного для Azure Data Explorer).

  • Проверка подлинности приложения с использованием полученного ранее действительного маркера Azure AD (выпущенного для другой службы). Этот метод будет работать, если между таким ресурсом и Azure Data Explorer есть отношения доверия.

Учетные записи Майкрософт (MSA)

Термин "Учетные записи Майкрософт (MSA)" используется для обозначения всех управляемых корпорацией Майкрософт пользовательских учетных записей, которые не принадлежат конкретным организациям, например hotmail.com, live.com или outlook.com. Kusto поддерживает аутентификацию для пользователей по MSA (в этом случае не используются группы безопасности), которые идентифицируются по именам участников-пользователей.

Если в ресурсе службы Azure Data Explorer настроен субъект MSA, то служба не будет пытаться разрешить предоставленное имя участника-пользователя.

Вызовы к пакету SDK или интерфейсу REST с проверкой подлинности

  • При применении REST API проверка подлинности выполняется с использованием стандартного заголовка HTTP Authorization.
  • При использовании любой из библиотек .NET Azure Data Explorer для проверки подлинности настраиваются метод и параметры в строке подключения. Вместо этого можно задать свойства в объекте свойств клиентского запроса.

Пакет SDK клиента Azure Data Explorer в виде клиентского приложения Azure AD

Когда клиентские библиотеки Kusto вызывают библиотеку проверки подлинности Майкрософт, чтобы получить маркер для взаимодействия с Kusto, библиотека предоставляет следующие сведения:

  • Ресурс (URI кластера, например https://Cluster-and-region.kusto.windows.net).
  • Идентификатор клиентского приложения Azure AD.
  • URI перенаправления клиентского приложения Azure AD.
  • Клиент Azure AD, который влияет на выбор конечной точки Azure AD, используемой для проверки подлинности. Например, для клиента Azure AD microsoft.com будет использоваться конечная точка Azure AD https://login.microsoftonline.com/microsoft.com.

Библиотека проверки подлинности Майкрософт возвращает в клиентскую библиотеку Azure Data Explorer маркер, в котором правильный URL-адрес кластера Azure Data Explorer указан в качестве аудитории, а разрешение доступа к Azure Data Explorer — в качестве области.

Пример. Получение маркера пользователя Azure AD для кластера Azure Data Explorer

// Create Auth Context for Azure AD (common or tenant-specific endpoint):
AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/{Azure AD TenantID or name}");

// Provide your Application ID and redirect URI
var clientAppID = "{your client app id}";
var redirectUri = new Uri("{your client app redirect uri}");

// acquireTokenTask will receive the bearer token for the authenticated user
var acquireTokenTask = authContext.AcquireTokenAsync(
    $"https://{clusterNameAndRegion}.kusto.windows.net",
    clientAppID,
    redirectUri,
    new PlatformParameters(PromptBehavior.Auto, null)).GetAwaiter().GetResult();

Авторизация

Все субъекты, прошедшие проверку подлинности, должны пройти проверку авторизации, прежде чем они смогут выполнить действие в ресурсе Azure Data Explorer. В Azure Data Explorer используется модель авторизации на основе ролей, где субъектам присваивается одна или несколько ролей безопасности. Авторизация считается успешной, если нужные разрешения есть хотя бы у одной из ролей субъекта.

Например, роль пользователя базы данных предоставляет субъектам безопасности, пользователям или службам следующие права:

  • на чтение данных определенной базы данных;
  • на создание таблиц в базе данных;
  • на создание функций в базе данных.

Связь субъектов безопасности с ролями безопасности можно определить индивидуально или с помощью групп безопасности, которые определены в Azure AD. Команды для этой процедуры описаны в статье о настройке правил авторизации на основе ролей.