Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать Microsoft Entra ID для аутентификации в Azure Synapse Analytics.
Примечание.
Участники-службы сервера Microsoft Entra в настоящее время доступны в режиме предварительной версии для Azure Synapse Analytics.
Prerequisites
Чтобы использовать аутентификацию Microsoft Entra с Azure Synapse Analytics, вам нужны следующие требования:
- Клиент Microsoft Entra, заполненный пользователями и группами.
- Существующее рабочее пространство Azure Synapse или отдельный выделенный SQL-пул.
Создание и заполнение клиента Microsoft Entra
Прежде чем настроить аутентификацию Microsoft Entra для Azure Synapse Analytics, необходимо создать тенант Microsoft Entra и заполнить его пользователями и группами. Вы можете полностью управлять тенантами Microsoft Entra в Azure или использовать их для федерации службы доменов Active Directory локальной среды.
Дополнительные сведения можно найти здесь
- Что такое Microsoft Entra ID?
- Интеграция ваших локальных идентификаций с Microsoft Entra ID
- Добавьте ваше имя домена в Microsoft Entra ID
- Что такое федерация с Microsoft Entra ID?
- Синхронизация каталогов с Microsoft Entra ID
- Manage Microsoft Entra ID с помощью Windows PowerShell
- Порты и протоколы, необходимые для гибридной идентификации
Назначить администратора Microsoft Entra
Для использования аутентификации Microsoft Entra ваш ресурс Azure Synapse нуждается в администраторе Microsoft Entra.
Вы также можете настроить администратора Microsoft Entra при создании ресурса. Если у вас уже настроен администратор, пропустите этот раздел.
Рабочая область Azure Synapse
Для рабочей области Azure Synapse настройте администратора Microsoft Entra в рабочей области. Для получения дополнительной информации см. «Структура администратора».
Отдельный выделенный SQL-пул
Когда вы устанавливаете администратора Microsoft Entra, вы включаете аутентификацию Microsoft Entra для логического сервера, на котором размещен автономный выделенный пул SQL. Администратора можно назначить, используя портал Azure, PowerShell, Azure CLI или REST API.
На портале Azure можно найти имя логического сервера
- В поле server name на странице Overview вашего автономного выделенного пула SQL в Azure Synapse Analytics.
Чтобы задать администратора Microsoft Entra для логического сервера на портале Azure, выполните следующие действия.
В области портала Azure Directories + subscriptions выберите каталог, содержащий ваш ресурс Azure Synapse, чтобы он стал Current directory.
Ищите SQL-серверы , затем выберите логический сервер для выделенного SQL-пула, чтобы открыть панель SQL-сервера .
На панели SQL Server для вашего логического сервера выберите Microsoft Entra ID в разделе Параметры, чтобы открыть панель Microsoft Entra ID.
На панели Microsoft Entra ID выберите Set admin, чтобы открыть панель Microsoft Entra ID.
На панели Microsoft Entra ID отображаются все пользователи, группы и приложения в текущем каталоге и можно выполнять поиск по имени, псевдониму или идентификатору. Найдите нужный идентификатор администратора Microsoft Entra и выберите его, а затем нажмите Выбрать, чтобы закрыть область.
В верхней части страницы Microsoft Entra ID для логического сервера выберите Save.
Идентификатор Object id отображается рядом с именем администратора для Microsoft Entra пользователей и групп. Для приложений (субъектов-служб) отображается идентификатор приложения.
Процесс изменения администратора может занять несколько минут. Затем новый администратор появится в поле Microsoft Entra admin.
Чтобы удалить администратора, в верхней части страницы Microsoft Entra ID выберите Удалить администратора, а затем выберите Сохранить. Удаление администратора Microsoft Entra отключает аутентификацию Microsoft Entra для логического сервера.
Примечание.
Администратор Microsoft Entra хранится в базе данных master сервера как пользователь (субъект базы данных). Так как имена субъектов базы данных должны быть уникальными, отображаемое имя администратора не может совпадать с именем любого пользователя в базе данных сервера master . Если пользователь с именем уже существует, программа установки администратора Microsoft Entra завершается сбоем и откатывается, указывая, что имя уже используется.
Назначьте разрешения для Microsoft Graph
Для некоторых операций Azure Synapse Analytics требует разрешений для запроса Microsoft Graph, как описано в разделе Разрешения Microsoft Graph. Azure Synapse Analytics поддерживает детализированные разрешения Microsoft API Graph, такие как User.Read.All, GroupMember.Read.All и Application.Read.All для удостоверения ресурса. Этот подход следует принципу наименьшей привилегии и рекомендуется. Вы также можете использовать роль Directory Readers как более широкую альтернативу. Для получения дополнительной информации см. Managed identities in Microsoft Entra for Azure Synapse Analytics.
Роль "Читатели каталогов"
Для пошаговой процедуры см. Назначение роли "Читатели каталогов" группе Microsoft Entra.
Следующий сценарий PowerShell добавляет управляемое удостоверение ресурса Azure Synapse к роли Directory Readers.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
Администратор Microsoft Entra теперь может создавать серверные принципы Microsoft Entra (логины) и принципы базы данных (пользователи).
Создайте главные объекты Microsoft Entra в SQL
Чтобы подключиться к базе данных в Azure Synapse Analytics с помощью аутентификации Microsoft Entra, необходимо настроить принципал в базе данных для этой идентичности с разрешением как минимум CONNECT.
Разрешения пользователя базы данных
Когда вы создаёте пользователя базы данных, он по умолчанию получает разрешение CONNECT для базы данных. Пользователь базы данных также наследует разрешения в двух случаях:
- Пользователь является членом группы Microsoft Entra, которой также назначены права на сервер.
- Вы создаёте пользователя из учетной записи входа, и пользователь наследует назначенные сервером разрешения учетной записи входа, которые применяются к базе данных.
Управление разрешениями для субъектов сервера и баз данных работает одинаково независимо от типа субъекта (Microsoft Entra ID, проверки подлинности SQL и т. д.). Предоставляйте разрешения ролям в базе данных вместо прямого предоставления разрешений пользователям. Затем добавляйте пользователей в роли с соответствующими правами. Такой подход упрощает долгосрочное управление правами и снижает вероятность того, что учетная запись сохранит доступ, когда это уже неуместно.
Дополнительные сведения можно найти здесь
- Разрешения ядра СУБД и примеры
- Blog: основы прав доступа ядро СУБД
- Авторизуйте доступ к базе данных для Azure Synapse Analytics
Пользователи содержащейся базы данных.
Пользователь автономной базы данных — это тип пользователя SQL, который не подключен к имени входа в master базе данных. Чтобы создать автономного пользователя базы данных Microsoft Entra, подключитесь к базе данных с удостоверением Microsoft Entra, которое имеет как минимум разрешение ALTER ANY USER. Следующий пример T-SQL создаёт субъект безопасности базы данных с именем Microsoft_Entra_principal_name из Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Чтобы создать пользователя автономной базы данных для группы Microsoft Entra, введите отображаемое имя группы:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Чтобы создать пользователя базы данных в пределах контейнера для управляемой идентичности или основной службы, введите отображаемое имя идентичности:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Чтобы создать пользователя автономной базы данных для пользователя Microsoft Entra, введите имя субъекта-пользователя удостоверения:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Авторизованные пользователи
Примечание.
Microsoft Entra server principals (logins) в настоящее время находятся в preview для Azure Synapse Analytics.
поддерживаются Server principals Microsoft Entra (или логины серверов), что означает, что пользователи встроенной базы данных не требуются. Субъекты базы данных (пользователи) можно создать на основе субъекта-сервера, что означает, что Microsoft Entra пользователи могут наследовать назначенные на уровне сервера разрешения для входа.
CREATE USER [appName] FROM LOGIN [appName];
Синтаксис создания учетных записей Microsoft Entra (логины) см. в CREATE LOGIN.
Внешние пользователи
Вы не можете напрямую создать пользователя базы данных для удостоверения, управляемого другим клиентом Microsoft Entra, не связанным с вашей подпиской Azure. Однако вы можете импортировать пользователей из других каталогов в связанный каталог как внешних пользователей. Затем вы можете использовать их для создания автономных пользователей базы данных, которые смогут получить доступ к базе. Внешние пользователи также могут получить доступ через членство в Microsoft Entra группах.
Примеры: Для создания пользователя изолированной базы данных, представляющего пользователя федеративного или управляемого домена Microsoft Entra:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Учетная запись пользователя федеративного домена, которую вы импортируете в управляемый домен как внешнего пользователя, должна использовать удостоверение управляемого домена.
Соображения по именам
Нельзя использовать специальные символы, такие как двоеточие : или амперсанд & , в именах пользователей для T-SQL CREATE LOGIN и CREATE USER операторов.
Microsoft Entra ID и Azure Synapse Analytics отличаются в одном ключевом аспекте управления пользователями: Microsoft Entra ID позволяет использовать повторяющиеся отображаемые имена в пределах тенанта, тогда как Azure Synapse Analytics требует уникальных имён субъектов-пользователей сервера в выделенном SQL-пуле и уникальных имён субъектов-пользователей базы данных в базе данных.
Разрешения Microsoft Graph
Команда CREATE USER ... FROM EXTERNAL PROVIDER требует, чтобы Azure Synapse Analytics получил доступ к Microsoft Entra ID (внешний поставщик) от имени авторизованного пользователя. Иногда Microsoft Entra ID возвращает исключение.
- Вы можете столкнуться с ошибкой SQL 33134, которая содержит сообщение об ошибке, специфичное для Microsoft Entra ID. Ошибка обычно говорит, что доступ запрещен, что пользователь должен зарегистрировать в MFA для доступа к ресурсу или что доступ между сторонними приложениями должен обрабатываться с помощью предварительной проверки подлинности. В первых двух случаях проблема обычно вызвана политиками условного доступа, установленными в клиенте Microsoft Entra пользователя: они препятствуют доступу пользователя к внешнему поставщику. Обновление политик условного доступа для обеспечения доступа к приложению
00000003-0000-0000-c000-000000000000(идентификатор приложения Microsoft API Graph) должно решить проблему. Если ошибка говорит, что доступ между сторонними приложениями должен обрабатываться с помощью предварительной проверки подлинности, проблема заключается в том, что пользователь вошел в систему в качестве субъекта-службы. Команда должна завершиться успешно, если она выполняется пользователем. - Если вы получаете Истек срок действия подключения, может потребоваться задать для строка подключения параметра
TransparentNetworkIPResolutionзначение false. Дополнительные сведения см. в статье Проблема истечения времени ожидания соединения в .NET Framework 4.6.1 — "TransparentNetworkIPResolution".
Дополнительные сведения о создании пользователей автономной базы данных на основе удостоверений Microsoft Entra см. в разделе CREATE USER.
Настройка многофакторной проверки подлинности
Для повышения безопасности рассмотрите возможность настройки многофакторной аутентификации (MFA), которая предлагает пользователю использовать второй метод для аутентификации при доступе к базе данных, например, телефонный звонок или приложение аутентификации.
Чтобы использовать многофакторную аутентификацию с Azure Synapse Analytics, сначала включите многофакторную аутентификацию, а затем используйте политику условного доступа для обеспечения MFA.
Подключитесь к Microsoft Entra
После настройки аутентификации Microsoft Entra вы можете использовать её для подключения к Azure Synapse Analytics с помощью SQL Server Management Studio или SQL Server Data Tools, а также настроить клиентские приложения для подключения с использованием удостоверений Microsoft Entra.
Устранение неполадок аутентификации Microsoft Entra
Для получения информации см. раздел «Устранение неполадок, связанных с аутентификацией Microsoft Entra».