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

Применимо к:SQL Server на виртуальной машине Azure

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

Обзор

Начиная с 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. Для внесения изменений в назначения ролей читателя каталогов необходимо иметь права глобального Администратор istrator. Если у вас недостаточно разрешений, обратитесь к администратору 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

    $AAD_SP = Get-AzureADServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    
  2. Получение управляемого удостоверения:

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

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id
    
  4. Назначьте GroupMember.Read.All роль удостоверению:

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id 
    
  5. Назначьте Application.Read.All роль удостоверению:

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $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

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

Примечание.

После включения проверки подлинности 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 2022, работающей на виртуальных машинах Windows, зарегистрированных в расширении агента IaaS SQL и развернутых в общедоступном облаке. Поддерживаются только поддерживаемые сценарии расширения агента IaaS SQL, например экземпляр по умолчанию или один именованный экземпляр.
  • Удостоверение, выбранное для проверки подлинности в 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, ознакомьтесь с часто задаваемыми вопросами.

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