Microsoft Entra authentication for Azure Synapse Analytics

В этой статье представлен подробный обзор использования аутентификации Microsoft Entra с Synapse SQL в Azure Synapse Analytics.

Note

Серверные участники-пользователи Microsoft Entra в настоящее время доступны в предварительной версии для Azure Synapse Analytics.

Для настройки аутентификации Microsoft Entra см. раздел «Настройка аутентификации Microsoft Entra и управление ею с помощью Azure Synapse Analytics».

Overview

Идентификатор Microsoft Entra позволяет централизованно управлять удостоверениями людей и служб в вашем пространстве данных. Интегрируя Microsoft Entra с Azure Synapse Analytics для аутентификации, вы упростите управление удостоверениями и правами, а также обеспечите детализированные политики условного доступа и контроль подключений к вашим данным.

Использование проверки подлинности Microsoft Entra включает следующие преимущества:

  • Заменяет менее безопасные методы проверки подлинности, такие как имена пользователей и пароли.
  • Устраняет или помогает прекратить распространение пользовательских идентификаторов на серверах.
  • Группы Microsoft Entra позволяют абстрагировать управление разрешениями базы данных от отдельных учетных записей и в операционные группы.
  • Позволяет смену паролей в одном месте.
  • Аутентификация только в Microsoft Entra предоставляет полноценную альтернативу аутентификации SQL.
  • Управляемые удостоверения для ресурсов Azure устраняют необходимость хранения паролей для служб, подключающихся к базам данных, и подключений из баз данных к другим ресурсам Azure.
  • Включает современные элементы управления безопасностью, включая надежную многофакторную проверку подлинности с помощью нескольких простых вариантов проверки, таких как телефонный звонок, текстовое сообщение, смарт-карта с ПИН-кодом или уведомление мобильного приложения.
  • Идентификатор Microsoft Entra позволяет интегрироваться со многими современными протоколами проверки подлинности, включая OpenID Connect, OAuth2.0, ограниченное делегирование Kerberos и многое другое.
  • Обеспечивает централизованный мониторинг подключений к источникам данных.
  • Включает элементы управления условным доступом, такие как требование соответствующих устройств или методов проверки подлинности для успешных подключений.

Note

Проверка подлинности Microsoft Entra поддерживает только маркеры доступа, полученные от идентификатора Microsoft Entra, а не сторонние маркеры доступа. Идентификатор Microsoft Entra также не поддерживает перенаправление запросов идентификатора Microsoft Entra на сторонние конечные точки. Это ограничение распространяется на все SQL-платформы и все операционные системы, поддерживающие аутентификацию Microsoft Entra.

Шаги настройки

Общие действия по настройке проверки подлинности Microsoft Entra:

  1. Создание и заполнение клиента Microsoft Entra.
  2. Создайте Azure Synapse workspace или отдельный SQL-пул.
  3. Назначьте администратора Microsoft Entra для рабочей области или логического сервера.
  4. Создайте принципы безопасности SQL в базе данных, сопоставленные с удостоверениями Microsoft Entra.
  5. Настройте клиентские приложения для подключения с помощью библиотек Azure Identity и методов аутентификации.
  6. Подключитесь к базе данных с помощью удостоверений Microsoft Entra.

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

Azure Synapse Analytics поддерживает использование следующих удостоверений Microsoft Entra в качестве учетных записей для входа и пользователей (принципалов) в Synapse SQL:

  • Пользователи Microsoft Entra: любой тип пользователя в клиенте Microsoft Entra, который включает внутренних пользователей, внешних пользователей, гостей и участников. Кроме того, поддерживаются члены домена Active Directory, федеративные с идентификатором Microsoft Entra, и их можно настроить для простого единого входа.
  • Приложения: Приложения, существующие в Azure, могут использовать принципалы сервисов или управляемые удостоверения для прямой аутентификации в Azure Synapse Analytics. Использование управляемых идентичностей предпочтительнее, поскольку аутентификация не требует пароля и устраняет необходимость в учетных данных, управляемых разработчиками.
  • Группы Microsoft Entra, которые могут упростить управление доступом в организации, управляя доступом пользователей и приложений на основе членства в группах.

Для удостоверений пользователей поддерживаются следующие методы проверки подлинности:

  • Интегрированная Microsoft Entra (аутентификация Windows), поддерживаемая гибридной идентификацией Microsoft Entra с помощью Active Directory [федерация].
  • Microsoft Entra MFA или многофакторная проверка подлинности, которая требует дополнительных проверок безопасности за пределами знаний пользователя.
  • Проверка подлинности паролей Microsoft Entra, которая использует учетные данные пользователя, хранящиеся и управляемые в идентификаторе Microsoft Entra.
  • Проверка подлинности Microsoft Entra Default, которая сканирует различные кэши учетных данных на компьютере приложения и может использовать токены пользователей для проверки подлинности в SQL.

Для удостоверений службы или рабочей нагрузки поддерживаются следующие методы проверки подлинности:

  • Управляемые удостоверения для ресурсов Azure, назначаемые пользователем и назначаемые системой. Аутентификация управляемого удостоверения основана на токенах, при этом удостоверение назначается ресурсу, который хочет использовать его для аутентификации. Платформа идентификации Azure проверяет связь, что позволяет осуществлять аутентификацию без пароля.
  • Имя главного объекта службы Microsoft Entra и секрет приложения (клиента). Этот метод проверки подлинности не рекомендуется из-за риска, связанного с паролями, которые можно угадать и утечку.
  • Аутентификация Microsoft Entra Default, которая сканирует различные кэши учетных данных на компьютере приложения и может использовать токены приложений для аутентификации в SQL.

Администратор Microsoft Entra

Для включения аутентификации Microsoft Entra необходимо назначить администратора Microsoft Entra для вашего рабочего пространства Azure Synapse или логического сервера. Этот администратор существует наряду с администратором SQL. Администратор Microsoft Entra может быть пользователем, группой, сервисным принципалом или управляемой идентификацией в вашем tenant Azure. Одновременно можно настроить только одну учетную запись. Удаление администратора Microsoft Entra отключает подключения на основе аутентификации Microsoft Entra, даже для существующих пользователей Microsoft Entra с разрешениями в базе данных.

Tip

Группы Microsoft Entra позволяют нескольким удостоверениям выполнять функции администратора Microsoft Entra на сервере. Если администратор установлен в группу, все члены группы наследуют роль администратора Microsoft Entra. Администратор группы Microsoft Entra повышает управляемость, переключив управление администраторами с действий уровня данных сервера на идентификатор Microsoft Entra и руки владельцев групп. Группы можно использовать для всех удостоверений Microsoft Entra, которые подключаются к SQL, что позволяет выполнять однократную настройку пользователей и разрешений на сервере и базах данных, оставляя все управление пользователями в группах.

Администратор Microsoft Entra выполняет особую роль: это первая учетная запись, с помощью которой можно создавать другие учетные записи для входа Microsoft Entra и пользователей, совместно именуемых субъектами безопасности. Администратор является пользователем автономной базы данных в master базе данных сервера. Учетные записи администратора являются членами db_owner роли в каждой пользовательской базе данных, и каждая пользовательская база данных вводится как пользователь dbo . Дополнительные сведения об учетных записях администраторов см. в разделе Управление базами данных и учетные записи.

Принципы Microsoft Entra

Note

Microsoft Entra server principals (logins) в настоящее время находятся в preview для Azure Synapse Analytics.

Вы можете создать удостоверения Microsoft Entra в качестве субъектов безопасности в Azure Synapse Analytics тремя способами:

  • как субъекты-серверы или имена входа
  • как пользователи, авторизующиеся по логину (вид принципала базы данных)
  • как пользователи встроенной базы данных

Important

Проверка подлинности Microsoft Entra для SQL Azure не интегрируется с Azure RBAC. Чтобы использовать удостоверения Microsoft Entra для подключения к Azure SQL и выполнения запросов, необходимо создать эти удостоверения как субъекты Microsoft Entra в базах данных, к которым им нужен доступ. Роли SQL DB Contributor и SQL Server Contributor обеспечивают безопасность операций развертывания, связанных с управлением, а не доступ к подключению к базе данных.

Логины (субъекты-сервера) в выделенных SQL-пулах

Субъекты уровня сервера (имена входа) для удостоверений Microsoft Entra доступны в предварительной версии для выделенных пулов SQL в Azure Synapse Analytics.

В следующем T-SQL показано, как создать имя входа Microsoft Entra:

CREATE LOGIN [MSEntraUser] FROM EXTERNAL PROVIDER

Вход Microsoft Entra обладает следующими значениями свойств в sys.server_principals:

Property Value
SID (Идентификатор безопасности) Двоичное представление объекта идентификатора Microsoft Entra.
type E = внешний вход или приложение из Microsoft Entra ID
X = внешняя группа из Microsoft Entra ID
type_desc EXTERNAL_LOGIN для входа в систему или использования в приложении Microsoft Entra.
EXTERNAL_GROUP для группы Microsoft Entra

Пользователи, основанные на авторизации

Пользователи учетных записей наследуют серверные роли и разрешения, назначенные для имени входа Microsoft Entra.

В приведенном ниже T-SQL показано, как создать пользователя на основе логина для удостоверения Microsoft Entra.

CREATE USER [MSEntraUser] FROM LOGIN [MSEntraUser]

В следующей таблице приведены значения свойств пользователя на основе входа в Microsoft Entra в sys.database_principals:

Property Value
SID (Идентификатор безопасности) Двоичное представление идентификатора объекта Microsoft Entra и дополнение 'AADE'
type E = внешний вход или приложение из Microsoft Entra ID
X = внешняя группа из Microsoft Entra ID
type_desc EXTERNAL_LOGIN для входа в систему или использования в приложении Microsoft Entra.
EXTERNAL_GROUP для группы Microsoft Entra

Пользователи содержащейся базы данных.

Пользователи включенной базы данных переносятся вместе с базой данных. Они не связаны с учетными записями, определёнными на сервере или экземпляре, и вы можете легко перемещать их вместе с базой данных с одного сервера или экземпляра на другой без перебоев.

В следующем T-SQL показано, как создать пользователя автономной базы данных для удостоверения Microsoft Entra:

CREATE USER [MSEntraUser] FROM EXTERNAL PROVIDER

Пользователь Microsoft Entra, использующий базу данных, имеет те же значения свойств, что и пользователи на основе входа в sys.database_principals, за исключением того, как создается SID.

Property Value
SID (Идентификатор безопасности) Двоичное представление объекта идентификатора Microsoft Entra.
type E = внешний вход или приложение из Microsoft Entra ID
X = внешняя группа из Microsoft Entra ID
type_desc EXTERNAL_LOGIN для входа в систему или использования в приложении Microsoft Entra.
EXTERNAL_GROUP для группы Microsoft Entra

Чтобы получить исходный GUID Microsoft Entra, на котором основан SID, используйте следующее преобразование T-SQL:

SELECT CAST(sid AS UNIQUEIDENTIFIER) AS EntraID FROM sys.database_principals

Caution

Вы можете непреднамеренно создать пользователя базы данных Microsoft Entra с тем же именем, что и логин Microsoft Entra, на уровне сервера или экземпляра. Поскольку субъекты безопасности не связаны друг с другом, пользователь базы данных не наследует права от входа на сервер. Учётные записи могут смешиваться в запросах на подключение, что приводит к неопределённому поведению.

Используйте следующий запрос T-SQL, чтобы определить, является ли пользователь базы данных пользователем на основе входа или пользователем автономной базы данных:

SELECT CASE
    WHEN CONVERT(VARCHAR(100), sid, 2) LIKE '%AADE' AND len(sid) = 18 THEN 'login-based user'
    ELSE 'contained database user'
    END AS user_type,
    *
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Используйте следующий запрос T-SQL для просмотра всех субъектов Microsoft Entra в базе данных:

SELECT
  name,
  CAST(sid AS UNIQUEIDENTIFIER) AS EntraID,
  CASE WHEN TYPE = 'E' THEN 'App/User' ELSE 'Group' AS user_type,
  sid
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Аутентификация, предназначенная только для Microsoft Entra

Когда вы включаете аутентификацию только Microsoft Entra, вы отключаете SQL-аутентификацию. Нельзя использовать SQL-аутентификацию для подключения к рабочему пространству, пулу SQL или базе данных.

Чтобы начать, смотрите раздел «Конфигурировать аутентификацию только для Microsoft Entra».

Многофакторная проверка подлинности (MFA)

Многофакторная проверка подлинности Microsoft Entra — это функция безопасности, предоставляемая облачной службой управления удостоверениями и доступом Майкрософт. Многофакторная проверка подлинности повышает безопасность входа пользователей, требуя от пользователей предоставления дополнительных действий проверки за пределами пароля.

Многофакторная проверка подлинности Microsoft Entra помогает защитить доступ к данным и приложениям во время выполнения требований пользователей к простому процессу входа. MFA добавляет дополнительный уровень безопасности для входа пользователей, требуя от пользователей предоставления двух или более факторов проверки подлинности. Эти факторы обычно включают то, что пользователь знает (пароль), чем пользователь обладает (смартфон или аппаратный токен), и/или чем пользователь является (биометрические данные). Благодаря сочетанию нескольких факторов многофакторная проверка подлинности значительно снижает вероятность несанкционированного доступа.

Многофакторная аутентификация — поддерживаемый метод аутентификации для Azure Synapse Analytics.

Чтобы начать, смотрите раздел «Настройка многофакторной аутентификации Microsoft Entra».

Поддержка Microsoft Entra B2B

Проверка подлинности Microsoft Entra во всех продуктах SQL также поддерживает совместную работу Microsoft Entra B2B, которая позволяет предприятиям приглашать гостевых пользователей сотрудничать с их организацией. Гостевые пользователи могут подключаться к базам данных в качестве отдельных пользователей или членов группы Microsoft Entra.

Архитектура доверительных отношений для федерации доменов Microsoft Entra с Active Directory

Идентификатор Microsoft Entra также интегрируется с знакомыми решениями по управлению удостоверениями и доступом, такими как Active Directory. Гибридно подключаясь к локальному Active Directory, вы обеспечиваете возможность для удостоверений Windows, федеративно настроенных через Microsoft Entra ID, использовать учетные данные для единого входа для подключения к Azure Synapse Analytics.

Для федерации Microsoft Entra ID предоставляет два метода безопасной аутентификации: сквозная аутентификация и аутентификация с хэшированием паролей. Если вы рассматриваете возможность федерации локальной службы Active Directory с Microsoft Entra ID, ознакомьтесь с Выбором правильного метода аутентификации для решения гибридного удостоверения Microsoft Entra.

Дополнительные сведения о настройке и синхронизации гибридных удостоверений Microsoft Entra см. в следующих статьях:

Идентификатор Microsoft Entra проверяет подлинность маркера, а база данных доверяет ему и проверяет издателя и другие сведения. Клиент 1 может представлять идентификатор Microsoft Entra ID с локальными пользователями или идентификатор Microsoft Entra ID с федеративными пользователями. Клиент 2 представляет возможное решение, включая импортированных пользователей, в этом примере из федеративного Microsoft Entra ID, где ADFS синхронизируется с Microsoft Entra ID. Важно понимать, что доступ к базе данных с помощью аутентификации Microsoft Entra требует, чтобы подписка на хостинг была связана с Microsoft Entra ID. Вы должны использовать одну и ту же подписку для создания ресурсов Azure SQL или Azure Synapse.

Permissions

Права, назначенные администратору Microsoft Entra, отличаются от разрешений, присвоенных другим принципалам в Azure Synapse Analytics. В некоторых случаях Azure Synapse Analytics также требует разрешения Microsoft Graph для использования аутентификации Microsoft Entra.

Разрешения администратора

При создании администратору Microsoft Entra присваиваются следующие права и роли:

  • db_owner каждой базы данных

разрешения Azure Synapse Analytics

Субъекту необходимо ALTER ANY USER разрешение в базе данных для создания пользователя.

По умолчанию аккаунты администратора сервера, пользователи базы данных с CONTROL ON DATABASE, а также участники роли базы данных db_owner имеют разрешение ALTER ANY USER.

Чтобы создать принципал Microsoft Entra в Azure SQL, запрашивающее удостоверение должно выполнить запрос к Microsoft Graph для получения информации о принципале. При первоначальном развертывании единственный субъект, который может обращаться к Microsoft Graph, — это администратор Microsoft Entra. Следовательно, администратор должен быть первым, кто создаст другие субъекты Microsoft Entra. После этого администратор может назначать ALTER ANY USER другим принципалам, чтобы они могли создавать других принципалов Microsoft Entra.

Развертывание без участия с аутентификацией Microsoft Entra

Поскольку администратор Microsoft Entra должен быть первым удостоверением, которое подключится к базе данных и создаст других пользователей Microsoft Entra, полезно добавить удостоверение вашей инфраструктуры развертывания в качестве администратора. Затем развертывания могут выполнять начальную настройку, например создание других субъектов Microsoft Entra и назначение им разрешений. Для развертывания используйте такие инструменты, как шаблоны PowerShell ARM, для автоматизированного создания принципала. Azure SQL сегодня не поддерживает нативные API для настройки создания пользователей и управления правами. Эти операции можно выполнять только через прямое подключение к экземпляру SQL.

Разрешения Microsoft Graph

Для создания субъектов Microsoft Entra и нескольких других сценариев SQL Azure необходимо выполнить вызовы Microsoft Graph для получения сведений и проверки существования удостоверения в идентификаторе Microsoft Entra. Для этого процесс SQL должен иметь или получить разрешения на чтение Microsoft Graph в тенанте клиента. Вы можете получить этот доступ несколькими способами:

  • Если субъект безопасности SQL, выполняющий команду, является удостоверением пользователя, вам не нужно предоставлять дополнительные права на экземпляр SQL для выполнения запросов к Microsoft Graph.
  • Если SQL-принципал, выполняющий эту команду, является идентификатором сервиса, например, сервисным принципалом или управляемым идентификатором, экземпляр Azure SQL требует собственных разрешений для запроса Microsoft Graph.
    • Назначить разрешения приложения основному удостоверению сервера (управляемому удостоверению) логического сервера или управляемого экземпляра. SQL-процесс может использовать основной идентификатор сервера для аутентификации в других сервисах Azure в арендаторе, таких как Microsoft Graph. В следующей таблице объясняются различные сценарии и необходимые разрешения Microsoft Graph для успешного выполнения команды.
Scenario Минимальное разрешение
CREATE USER или CREATE LOGIN для субъект-службы Microsoft Entra или управляемой идентичности Application.Read.All
CREATE USERили CREATE LOGIN для пользователя Microsoft Entra User.Read.All
CREATE USERили CREATE LOGIN для группы Microsoft Entra GroupMember.Read.All

Tip

Роль Directory Readers — это роль с наименьшей областью действия, которую можно назначить субъекту, и она охватывает все необходимые права доступа. Используя роли, вы можете назначать их группам безопасности Microsoft Entra, что позволяет абстрагировать управление от отдельных сущностей и перенести его на уровень концептуальных групп.

Поддержка инструментов

SQL Server Management Studio (SSMS) поддерживает ряд параметров подключения проверки подлинности Microsoft Entra, включая многофакторную проверку подлинности.

SQL Server Data Tools (SSDT) для Visual Studio, начиная с 2015 года, поддерживает пароль, встроенную и интерактивную проверку подлинности с помощью идентификатора Microsoft Entra. Дополнительные сведения см. в статье о поддержке идентификатора Microsoft Entra в SQL Server Data Tools (SSDT).

  • В настоящее время SSDT обозреватель объектов не показывает пользователей Microsoft Entra. В качестве альтернативного решения, можно просмотреть пользователей в файле sys.database_principals.

Минимальные версии

Чтобы использовать аутентификацию Microsoft Entra с Azure Synapse Analytics, вам нужны следующие минимальные версии при использовании этих инструментов:

  • SQL Server Management Studio (SSMS) 18.6 или более поздней версии
  • SQL Server Data Tools для Visual Studio 2015 версии 14.0.60311.1 (апрель 2016 г.) или более поздней версии
  • Поставщик данных .NET Framework для SqlServer, минимальная версия .NET Framework 4.6
  • Начиная с версии 15.0.1, служебная программа sqlcmd и программа bcp поддерживают интерактивную проверку подлинности Active Directory с многофакторной проверкой подлинности.
  • Microsoft JDBC Driver 6.0 для SQL Server поддерживает проверку подлинности Microsoft Entra. Вы можете также ознакомиться с настройкой свойств подключения.

Подключение к Azure Synapse Analytics с помощью Microsoft Entra

После настройки аутентификации Microsoft Entra для вашего ресурса Azure SQL вы можете подключиться, используя SQL Server Management Studio, SQL Server Data Tools и клиентское приложение.

Limitations

При использовании аутентификации Microsoft Entra с Azure Synapse Analytics учитывайте следующие ограничения:

  • Пользователи и субъекты-службы Microsoft Entra (приложения Microsoft Entra), которые являются членами более 2048 групп безопасности Microsoft Entra, не поддерживаются и не могут войти в базу данных.

  • Следующие функции системы не поддерживаются и возвращают NULL значения, когда их выполняют субъекты Microsoft Entra.

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Мы рекомендуем установить время ожидания подключения в 30 секунд.

  • Пользователи Microsoft Entra, входящие в группу, которая является участником db_owner роли базы данных, могут увидеть следующую ошибку при попытке использовать CREATE DATABASE SCOPED CREDENTIAL в Azure Synapse Analytics:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.

    Чтобы устранить CREATE DATABASE SCOPED CREDENTIAL проблему, непосредственно добавьте учетную запись пользователя Microsoft Entra в db_owner роль.

  • Azure Synapse Analytics не создаёт неявных пользователей для пользователей, вошедших через групповое членство Microsoft Entra. Из-за этого операции, требующие назначения владельца, могут завершиться сбоем, даже если группа Microsoft Entra является членом роли с такими разрешениями.

    Например, пользователь, вошедший в базу данных через группу Microsoft Entra с ролью db_ddladmin, не может выполнять CREATE SCHEMA, ALTER SCHEMA и другие операторы создания объектов без явно определенной схемы (например, таблицы, представления или типа). Чтобы устранить эту проблему, необходимо создать пользователя Microsoft Entra для этого пользователя или группу Microsoft Entra необходимо изменить, чтобы назначить такой DEFAULT_SCHEMA объект, как dbo.

  • Удаление администратора Microsoft Entra приводит к невозможности подключений аутентификации Microsoft Entra.