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


Включение проверки подлинности Microsoft Entra для SQL Server на виртуальных машинах Azure

Область применения:SQL Server на виртуальной машине Azure

В этой статье описано, как включить проверку подлинности с помощью идентификатора Microsoft Entra (ранее Azure Active Directory) для SQL Server на виртуальных машинах Azure.

Примечание.

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

Обзор

Начиная с SQL Server 2022, вы можете подключиться к SQL Server на виртуальных машинах Azure с помощью одного из следующих методов проверки подлинности Microsoft Entra:

  • Пароль обеспечивает проверку подлинности с помощью учетных данных Microsoft Entra
  • Универсальная с MFA добавляет многофакторную проверку подлинности
  • Интегрированные поставщики федерации, такие как службы федерации Active Directory (AD FS) (ADFS), позволяют включить единый вход (SSO)
  • Субъект-служба включает проверку подлинности из приложений Azure
  • Управляемое удостоверение включает проверку подлинности из приложений, назначенных удостоверениям Microsoft Entra

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

При включении управляемого удостоверения для ресурса в Azure граница безопасности удостоверения — это ресурс, к которому он подключен. Например, граница безопасности для виртуальной машины с управляемыми удостоверениями для ресурсов Azure включена. Любой код, работающий на этой виртуальной машине, может вызывать конечную точку управляемых удостоверений и запрашивать маркеры. При включении управляемого удостоверения для SQL Server на виртуальных машинах Azure удостоверение присоединено к виртуальной машине, поэтому граница безопасности — это виртуальная машина. Этот интерфейс аналогичен при работе с другими ресурсами, поддерживающими управляемые удостоверения. Дополнительные сведения см. в часто задаваемых вопросы о управляемых удостоверениях.

Управляемые удостоверения, назначаемые системой и назначаемые пользователем, используются для проверки подлинности Microsoft Entra с помощью SQL Server на виртуальных машинах Azure, предоставляют следующие преимущества:

  • Назначаемое системой управляемое удостоверение предлагает упрощенный процесс настройки. Так как управляемое удостоверение имеет то же время существования, что и виртуальная машина, при удалении виртуальной машины ее не нужно удалять отдельно.
  • Назначаемое пользователем управляемое удостоверение обеспечивает масштабируемость, так как оно может быть присоединено и использоваться для проверки подлинности Microsoft Entra для нескольких SQL Server на виртуальных машинах Azure.

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

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

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

  • Используйте SQL Server 2022.
  • Зарегистрируйте виртуальную машину SQL Server с расширением агента SQL Server Iaas в любом облаке.
  • Укажите существующее управляемое удостоверение, назначаемое системой или назначаемое пользователем, в том же клиенте Microsoft Entra, что и виртуальная машина SQL Server. Настройте управляемые удостоверения с помощью портал Azure, чтобы узнать больше.
  • Azure CLI 2.48.0 или более поздней версии , если вы планируете использовать Azure CLI для настройки проверки подлинности Microsoft Entra для виртуальной машины SQL Server.

Предоставить разрешения

Управляемое удостоверение, которое вы выбираете для упрощения проверки подлинности между SQL Server и идентификатором Microsoft Entra ID, должно иметь следующие три разрешения приложения Microsoft Graph (роли приложения): User.Read.Allи GroupMember.Read.AllApplication.Read.All.

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

Добавление управляемого удостоверения в роль

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

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

  1. Откройте роли и администраторы идентификатора Microsoft Entra в портал Azure:

  2. Введите средства чтения каталогов в поле поиска и выберите читатели каталогов ролей, чтобы открыть средства чтения каталогов | Страница назначений:

    Снимок экрана: страница

  3. Читатели каталогов | Страница "Назначения" выберите + Добавить назначения , чтобы открыть страницу "Добавить назначение ".

    Снимок экрана: страница

  4. На странице "Добавление назначений" выберите "Нет участника", выбранного в разделе "Выбор участников", чтобы открыть страницу "Выбор элемента".

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

  5. На странице "Выбор члена" найдите имя управляемого удостоверения, которое вы хотите использовать с виртуальной машиной SQL Server, и добавьте его в роль "Читатели каталогов". Для управляемых удостоверений, назначаемых системой, найдите имя виртуальной машины. Используйте команду Select , чтобы подтвердить удостоверение и вернуться на страницу "Добавление назначений ".

    Снимок экрана: поиск элементов для выбора в портал Azure.

  6. Убедитесь, что вы видите выбранное удостоверение в разделе "Выбор участников" , а затем нажмите кнопку "Далее".

    Снимок экрана: страница

  7. Убедитесь, что для типа назначения задано значение "Активный" и установлен флажок рядом с постоянным назначением . Введите бизнес-обоснование, например добавление разрешений роли читателя каталогов в удостоверение, назначаемое системой для VM2 , а затем выберите " Назначить ", чтобы сохранить параметры и вернуться к читателю каталогов | Страница назначений .

    Снимок экрана: параметры назначения

  8. Читатели каталогов | Страница "Назначения" подтвердите, что добавленное удостоверение отображается в разделе "Читатели каталогов".

    Снимок экрана: страница

Добавление разрешений роли приложения

Azure PowerShell можно использовать для предоставления ролей приложения управляемому удостоверению. Для этого выполните следующие шаги:

Примечание.

Модули Azure AD и MSOnline PowerShell устарели с 30 марта 2024 г. Дополнительные сведения см. в обновлении об отмене. После этой даты поддержка этих модулей ограничена поддержкой миграции в пакет SDK Для Microsoft Graph PowerShell и исправления безопасности. Устаревшие модули будут продолжать функционировать до 30 марта 2025 года.

Рекомендуется перенести в Microsoft Graph PowerShell для взаимодействия с идентификатором Microsoft Entra (ранее — Azure AD). Часто задаваемые вопросы о миграции см. в разделе "Вопросы и ответы о миграции". Примечание. Версии 1.0.x MSOnline могут возникнуть сбоем после 30 июня 2024 г.

  1. Подключение к Microsoft Graph

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. Получение управляемого удостоверения:

    $Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
    
  3. User.Read.All Назначьте роль удостоверению:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  4. Назначьте GroupMember.Read.All роль удостоверению:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    
  5. Назначьте Application.Read.All роль удостоверению:

    $AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
    

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

  1. Перейдите к идентификаторуMicrosoft Entra в портал Azure.
  2. Выберите корпоративные приложения и выберите "Все приложения" в разделе "Управление".
  3. Фильтрация типа приложения по Managed identities.
  4. Выберите управляемое удостоверение и выберите "Разрешения" в разделе "Безопасность". Вы увидите следующие разрешения: User.Read.All, GroupMember.Read.All. Application.Read.All

Включение исходящего взаимодействия

Для работы проверки подлинности Microsoft Entra вам потребуется следующее:

  • Исходящее взаимодействие с SQL Server с идентификатором Microsoft Entra и конечной точкой Microsoft Graph.
  • Исходящее подключение от клиента SQL к идентификатору Microsoft Entra.

Конфигурации виртуальных машин Azure по умолчанию позволяют исходящему обмену данными с конечной точкой Microsoft Graph, а также идентификатором Microsoft Entra, но некоторые пользователи предпочитают ограничить исходящее взаимодействие с помощью брандмауэра уровня ОС или группы безопасности сети Виртуальной сети Azure (NSG).

Брандмауэры на виртуальной машине SQL Server и любом клиенте SQL должны разрешать исходящий трафик через порты 80 и 443.

Правило NSG виртуальной сети Azure для виртуальной сети, на котором размещена виртуальная машина SQL Server, должна иметь следующее:

  • Тег AzureActiveDirectoryслужбы .
  • Диапазоны портов назначения: 80, 443.
  • Для параметра "Разрешить" задано значение "Разрешить".
  • Высокий приоритет (который является низким числом).

Включите проверку подлинности Microsoft Entra для зарегистрированного экземпляра

При регистрации экземпляра SQL Server с расширением агента IaaS SQL можно включить проверку подлинности Microsoft Entra для зарегистрированного экземпляра с помощью портала Azure, Azure CLI или PowerShell. Использование портала Azure или Azure CLI для управления экземпляром поддерживается только в зарегистрированном экземпляре SQL Server.

Примечание.

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

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

  1. Перейдите к ресурсу виртуальных машин SQL в портал Azure.

  2. Выберите конфигурацию безопасности в разделе "Безопасность".

  3. Выберите "Включить" в разделе проверки подлинности Microsoft Entra.

  4. Выберите тип управляемого удостоверения из раскрывающегося списка, назначаемого системой или назначаемого пользователем. Если вы выберете назначение пользователем, выберите удостоверение, которое вы хотите использовать для проверки подлинности в SQL Server на виртуальной машине Azure, из раскрывающегося списка управляемых удостоверений , назначаемых пользователем.

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

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

Примечание.

Ошибка The selected managed identity does not have enough permissions for Microsoft Entra authentication указывает, что разрешения не назначены правильно выбранному удостоверению. Проверьте раздел "Предоставление разрешений", чтобы назначить соответствующие разрешения.

Включите проверку подлинности Microsoft Entra для незарегистрированных экземпляров

Если экземпляр SQL Server не зарегистрирован в расширении агента IaaS SQL, например при наличии нескольких экземпляров SQL Server на одной виртуальной машине, можно включить проверку подлинности Microsoft Entra с помощью PowerShell. Вы можете включить проверку подлинности Microsoft Entra для конкретных незарегистрированных экземпляров или для всех экземпляров на виртуальной машине.

Примечание.

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

При использовании Set-AzVMExtension -ExtensionName "SqlIaasExtension" команды для включения проверки подлинности Microsoft Entra для экземпляра SQL Server рассмотрите следующее:

  • Разрешения управляемого удостоверения проверяются только в том случае, если CheckPermissions для параметра задано значение true.
  • Укажите идентификатор клиента параметра удостоверения ClientID для использования управляемого удостоверения, назначаемого пользователем. ClientID Если параметр пуст, используется управляемое удостоверение, назначаемое системой.
  • Укажите список экземпляров в EnableForGivenInstances параметре, чтобы включить проверку подлинности Microsoft Entra для конкретных незарегистрированных экземпляров. В противном случае используйте параметр EnableForAllInstances, чтобы включить аутентификацию Microsoft Entra для всех незарегистрированных экземпляров на виртуальной машине.

Следующий пример включает проверку подлинности Microsoft Entra для всех экземпляров на виртуальной машине с помощью удостоверения, назначаемого системой:

Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":"", "EnableForAllInstances":true, "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'

Следующий пример позволяет использовать аутентификацию Microsoft Entra для определенных не зарегистрированных экземпляров с помощью удостоверения, назначаемого пользователем:

Set-AzVMExtension -ExtensionName "SqlIaasExtension" -ResourceGroupName $resourceGroupName -VMName $sqlVMName -Publisher "Microsoft.SqlServer.Management" -ExtensionType "SqlIaaSAgent" -TypeHandlerVersion 2.0 -Location $region -SettingString '{"ServerConfigurationsManagementSettings": {"AADAuthenticationSettings": {"ClientId":$clientId, "EnableForGivenInstances":["MSSQLSERVER","MSSQLSERVER01"], "CheckPermissions":true}},"DeploymentTokenSettings":{"DeploymentToken":12345678}}'

Создание имен для входа и пользователей

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

Ограничения

Необходимо учитывать следующие ограничения.

  • Проверка подлинности Microsoft Entra поддерживается только в SQL Server 2022, работающей на виртуальных машинах Windows, зарегистрированных с расширением агента IaaS SQL, развернутой в любом облаке.
  • Управление проверкой подлинности Microsoft Entra на портале Azure доступно только для экземпляров, поддерживаемых расширением агента IaaS SQL, например экземпляром по умолчанию или одним именованным экземпляром. Используйте Azure CLI или PowerShell для управления дополнительными экземплярами проверки подлинности Microsoft Entra на виртуальной машине SQL Server, которые не зарегистрированы в расширении агента IaaS SQL.
  • Использование проверки подлинности Microsoft Entra с экземплярами отказоустойчивого кластера не поддерживается.
  • Удостоверение, выбранное для проверки подлинности в SQL Server, требуется либо роль читателя каталогов в идентификаторе Microsoft Entra, либо следующие три разрешения приложения Microsoft Graph (роли приложения): User.Read.Allи GroupMember.Read.AllApplication.Read.All.
  • После включения проверки подлинности Microsoft Entra его невозможно отключить.
  • В настоящее время проверка подлинности в SQL Server на виртуальных машинах Azure с помощью проверки подлинности Microsoft Entra с помощью метода FIDO2 не поддерживается.

Следующие шаги

Ознакомьтесь с рекомендациями по обеспечению безопасности SQL Server.

Другие статьи, связанные с запуском SQL Server на виртуальных машинах Azure, см. в обзоре SQL Server в Azure Виртуальные машины. Если у вас есть вопросы о виртуальных машинах SQL Server, ознакомьтесь с часто задаваемыми вопросами.

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