Настройка и администрирование проверки подлинности Microsoft Entra с помощью Azure SQL

Область применения: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

В этой статье показано, как использовать идентификатор Microsoft Entra для проверки подлинности с помощью База данных SQL Azure, Управляемый экземпляр SQL Azure и Azure Synapse Analytics.

Примечание.

Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).

Кроме того, можно настроить проверку подлинности Microsoft Entra для SQL Server в Azure Виртуальные машины.

Необходимые компоненты

Чтобы использовать проверку подлинности Microsoft Entra с ресурсом SQL Azure, вам потребуется следующее:

Создание и заполнение клиента Microsoft Entra

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

Дополнительные сведения см. в разделе:

Настройка администратора Microsoft Entra

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

Администратор Microsoft Entra также можно настроить при создании ресурса SQL Azure. Если администратор Microsoft Entra уже настроен, пропустите этот раздел.

База данных SQL Azure и Azure Synapse Analytics

Настройка администратора Microsoft Entra включает проверку подлинности Microsoft Entra для логического сервера для База данных SQL Azure и Azure Synapse Analytics. Администратор Microsoft Entra для сервера можно задать с помощью портал Azure, PowerShell, Azure CLI или REST API.

В портал Azure можно найти имя логического сервера.

  • В поле имени сервера на странице обзора База данных SQL Azure.
  • В поле имени сервера на странице обзора выделенного пула SQL в Azure Synapse Analytics.
  • В соответствующей конечной точке SQL на странице обзора рабочей области Azure Synapse Analytics.

Чтобы задать администратора Microsoft Entra для логического сервера в портал Azure, выполните следующие действия.

  1. В области портал Azure каталогов и подписок выберите каталог, содержащий ресурс SQL Azure в качестве текущего каталога.

  2. Найдите серверы SQL, а затем выберите логический сервер для ресурса базы данных, чтобы открыть область SQL Server.

    Снимок экрана: поиск и выбор серверов SQL.

  3. На панели SQL Server для логического сервера выберите идентификатор Microsoft Entra в разделе "Параметры", чтобы открыть область идентификатора Microsoft Entra.

  4. В области идентификатора Microsoft Entra выберите "Задать администратора", чтобы открыть область идентификатора Microsoft Entra.

    Снимок экрана: параметр настройки администратора Microsoft Entra для серверов SQL.

  5. В области идентификатора Microsoft Entra отображаются все пользователи, группы и приложения в текущем каталоге и можно выполнять поиск по имени, псевдониму или идентификатору. Найдите нужное удостоверение для администратора Microsoft Entra и выберите его, а затем нажмите кнопку "Выбрать ", чтобы закрыть область.

  6. В верхней части страницы идентификатора Microsoft Entra для логического сервера нажмите кнопку "Сохранить".

    Снимок экрана: параметр сохранения администратора Microsoft Entra.

    Идентификатор объекта отображается рядом с именем администратора для пользователей и групп Microsoft Entra. Для приложений (субъектов-служб) отображается идентификатор приложения.

Процесс изменения администратора может занять несколько минут. Затем новый администратор появится в поле администратора Microsoft Entra.

Чтобы удалить администратора, в верхней части страницы идентификатора Microsoft Entra нажмите кнопку "Удалить администратора", а затем нажмите кнопку "Сохранить". Удаление администратора Microsoft Entra отключает проверку подлинности Microsoft Entra для логического сервера.

Примечание.

Администратор Microsoft Entra хранится в базе данных сервера master как пользователь (субъект базы данных). Так как имена субъектов базы данных должны быть уникальными, отображаемое имя администратора не может совпадать с именем любого пользователя в базе данных сервера master . Если пользователь с именем уже существует, программа установки администратора Microsoft Entra завершается ошибкой и откатывается, указывая, что имя уже используется.

Управляемый экземпляр SQL Azure

Настройка администратора Microsoft Entra включает проверку подлинности Microsoft Entra для Управляемый экземпляр SQL Azure. Администратор Microsoft Entra для управляемого экземпляра SQL можно задать с помощью портал Azure, PowerShell, Azure CLI или REST API.

Чтобы предоставить управляемому экземпляру SQL разрешения на чтение идентификатора Microsoft Entra с помощью портал Azure, войдите в качестве глобального администратора или администратора привилегированных ролей и выполните следующие действия.

  1. В портал Azure в правом верхнем углу выберите свою учетную запись и выберите пункт "Переключить каталоги", чтобы подтвердить, какой каталог является текущим каталогом. При необходимости переключите каталоги.

    Снимок экрана: портал Azure с указанием места переключения каталога.

  2. В области портал Azure каталогов и подписок выберите каталог, содержащий управляемый экземпляр в качестве текущего каталога.

  3. Найдите управляемые экземпляры SQL и выберите управляемый экземпляр, чтобы открыть область управляемого экземпляра SQL. Затем выберите идентификатор Microsoft Entra в разделе "Параметры" , чтобы открыть область идентификатора Microsoft Entra для вашего экземпляра.

    Снимок экрана: портал Azure с открытой страницей администрирования Microsoft Entra для выбранного управляемого экземпляра SQL.

  4. В области администрирования Microsoft Entra выберите "Задать администратора" на панели навигации, чтобы открыть область идентификатора Microsoft Entra.

    Снимок экрана: команда set admin, выделенная на странице администрирования Microsoft Entra для выбранного управляемого экземпляра SQL.

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

    В области идентификатора Microsoft Entra отображаются все члены и группы в текущем каталоге. Не удается выбрать неактивных пользователей или групп, так как они не поддерживаются в качестве администраторов Microsoft Entra. Выберите удостоверение, которое вы хотите назначить администратором.

  6. На панели навигации страницы администрирования Microsoft Entra для управляемого экземпляра нажмите кнопку "Сохранить ", чтобы подтвердить администратора Microsoft Entra.

    Снимок экрана: страница администратора Microsoft Entra с кнопкой

    После завершения операции изменения администратора новый администратор появится в поле администратора Microsoft Entra.

    Идентификатор объекта отображается рядом с именем администратора для пользователей и групп Microsoft Entra. Для приложений (субъектов-служб) отображается идентификатор приложения.

Совет

Чтобы удалить администратора, выберите "Удалить администратора" в верхней части страницы идентификатора Microsoft Entra ID, а затем нажмите кнопку "Сохранить".

Назначение разрешений Microsoft Graph

Управляемый экземпляр SQL требуется разрешение на чтение идентификатора Microsoft Entra для сценариев, таких как авторизация пользователей, которые подключаются через членство в группах безопасности и создание нового пользователя. Чтобы проверка подлинности Microsoft Entra работала, необходимо назначить управляемому удостоверению экземпляра роль читателя каталогов. Вы можете сделать это на портале Azure или в PowerShell.

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

Роль "Читатели каталогов"

Страница идентификатора записи Майкрософт для Управляемый экземпляр SQL в портал Azure отображает удобный баннер, если экземпляр не назначен разрешения читателя каталогов.

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

    Снимок экрана: диалоговое окно предоставления разрешений управляемому экземпляру SQL для доступа к идентификатору Microsoft Entra с выбранной кнопкой

  2. При успешном выполнении операции в правом верхнем углу отображается уведомление об успешном выполнении:

    Снимок экрана: уведомление о том, что разрешения на чтение идентификатора Microsoft Entra успешно обновлены для управляемого экземпляра.

Теперь администратор Microsoft Entra можно использовать для создания субъектов сервера Microsoft Entra (имена входа) и субъектов базы данных (пользователей). Дополнительные сведения см. в статье об интеграции Microsoft Entra с Управляемый экземпляр SQL Azure.

Создание субъектов Microsoft Entra в SQL

Чтобы подключиться к базе данных в База данных SQL или Azure Synapse Analytics с проверкой подлинности Microsoft Entra, субъект должен быть настроен в базе данных для этого удостоверения по крайней мере с разрешениемCONNECT.

Разрешения пользователя базы данных

При создании пользователя базы данных он получает разрешение CONNECT к базе данных по умолчанию. Пользователь базы данных также наследует разрешения в двух случаях:

  • Если пользователь является членом группы Microsoft Entra, которая также назначает разрешения на сервере.
  • Если пользователь создается из имени входа, он наследует разрешения, назначенные сервером, применимые к базе данных.

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

Дополнительные сведения см. в разделе:

Пользователи автономной базы данных.

Пользователь автономной базы данных — это тип пользователя SQL, который не подключен к имени входа в master базе данных. Чтобы создать пользователя автономной базы данных Microsoft Entra, подключитесь к базе данных с удостоверением Microsoft Entra, которое имеет по крайней мере разрешение ALTER ANY USER . В следующем примере T-SQL создается субъект Microsoft_Entra_principal_name базы данных из идентификатора Microsoft Entra.

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 (имена входа) в настоящее время находятся в общедоступной предварительной версии для База данных SQL Azure и Azure Synapse Analytics. Имена входа Microsoft Entra обычно доступны для Управляемый экземпляр SQL Azure и SQL Server 2022.

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

CREATE USER [appName] FROM LOGIN [appName];

Дополнительные сведения см. в разделе Обзор Управляемого экземпляра SQL. Синтаксис создания субъектов сервера 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 и azure SQL разыскаются в своем дизайне управления пользователями одним ключевым способом: идентификатор Microsoft Entra позволяет дублировать имена отображаемых имен в клиенте, в то время как для SQL Azure требуется, чтобы все субъекты-серверы на сервере или экземпляре и все субъекты базы данных в базе данных имели уникальное имя. Так как SQL Azure напрямую использует отображаемое имя удостоверения Microsoft Entra при создании субъектов, это может привести к ошибкам при создании пользователей. Чтобы устранить эту проблему, SQL Azure выпустила WITH OBJECT_ID улучшение в настоящее время в предварительной версии, что позволяет пользователям указать идентификатор объекта Microsoft Entra, добавляемого на сервер или экземпляр.

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

Для CREATE USER ... FROM EXTERNAL PROVIDER выполнения команды требуется доступ к Microsoft Entra ID (внешний поставщик) от имени пользователя, вошедшего в систему. Иногда возникают обстоятельства, которые приводят к тому, что идентификатор Microsoft Entra возвращает исключение в SQL Azure.

  • Может возникнуть ошибка SQL 33134, содержащая сообщение об ошибке идентификатора Майкрософт. Ошибка обычно говорит, что доступ запрещен, что пользователь должен зарегистрировать в MFA для доступа к ресурсу или что доступ между сторонними приложениями должен обрабатываться с помощью предварительной проверки подлинности. В первых двух случаях проблема обычно вызвана политиками условного доступа, установленными в клиенте Microsoft Entra пользователя: они препятствуют доступу пользователя к внешнему поставщику. Обновление политик условного доступа и разрешение в них доступа к приложению "00000003-0000-0000-C000-000000000000" (идентификатор приложения API Microsoft Grap) должно устранить эту проблему. Если ошибка говорит, что доступ между сторонними приложениями должен обрабатываться с помощью предварительной проверки подлинности, проблема заключается в том, что пользователь вошел в систему в качестве субъекта-службы. Команда должна завершиться успешно, если она выполняется пользователем.
  • Если истек срок действия подключения, может потребоваться задать TransparentNetworkIPResolution для параметра строка подключения значение false. Дополнительные сведения см. в статье Connection timeout issue with .NET Framework 4.6.1 — TransparentNetworkIPResolution (Проблема с временем ожидания подключения в .NET Framework 4.6.1 — TransparentNetworkIPResolution).

Дополнительные сведения о создании пользователей автономной базы данных на основе удостоверений Microsoft Entra см. в статье CREATE USER.

Настройка многофакторной проверки подлинности

Для повышения безопасности ресурса SQL Azure рекомендуется настроить многофакторную проверку подлинности (MFA), которая предложит пользователю использовать второй альтернативный метод для проверки подлинности в базе данных, например телефонный звонок или приложение проверки подлинности.

Чтобы использовать многофакторную проверку подлинности с ресурсом SQL Azure, сначала включите многофакторную проверку подлинности, а затем используйте политику условного доступа для применения MFA для ресурса SQL Azure.

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

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

Устранение неполадок проверки подлинности Microsoft Entra

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