Habilitación de la autenticación de Microsoft Entra para SQL Server en las máquinas virtuales de Azure
Se aplica a: SQL Server en máquina virtual de Azure
En este artículo, se explica cómo habilitar la autenticación con Microsoft Entra ID (antes llamado Azure Active Directory) para SQL Server en las máquinas virtuales de Azure (VM).
Información general
A partir de SQL Server 2022, puede conectarse a SQL Server en la máquina virtual de Azure mediante uno de los siguientes métodos de autenticación de identidad de Microsoft Entra:
- La contraseña ofrece autenticación con credenciales de Microsoft Entra
- Universal con MFA añade autenticación multifactor
- Integrado usa proveedores de federación como Servicios de federación de Active Directory (ADFS) para habilitar experiencias de inicio de sesión único (SSO)
- La entidad de servicio permite la autenticación de las aplicaciones de Azure
- Identidad administrada permite la autenticación de las aplicaciones asignadas a identidades de Microsoft Entra
Al crear un inicio de sesión de Microsoft Entra para SQL Server y un usuario se conecta usando ese inicio sesión, SQL Server usa una identidad administrada para consultar Microsoft Graph. Al habilitar la autenticación de Microsoft Entra para la instancia de SQL Server en la máquina virtual de Azure, debe proporcionar una identidad administrada que SQL Server pueda usar para comunicarse con Microsoft Entra. Esta identidad administrada debe tener permisos para consultar Microsoft Graph.
Al habilitar una identidad administrada para SQL Server en máquinas virtuales de Azure, el límite de seguridad de la identidad es el recurso al que está asociado. Por ejemplo, el límite de seguridad para una máquina virtual que tenga las identidades administradas para recursos de Azure habilitadas es la máquina virtual. Cualquier código que se ejecute en esa máquina virtual puede llamar a los tokens de punto de conexión y solicitud de las identidades administradas. Al habilitar una identidad administrada para SQL Server en máquinas virtuales de Azure, la identidad se asocia a la máquina virtual, por lo que el límite de seguridad es la máquina virtual. La experiencia es similar cuando se trabaja con otros recursos que admiten identidades administradas. Para obtener más información, lea las Preguntas frecuentes de las identidades administradas.
Las identidades administradas asignadas por el sistema y por el usuario que se usan para la autenticación de Microsoft Entra con SQL Server en máquinas virtuales de Azure ofrecen las siguientes ventajas:
- La identidad administrada asignada por el sistema ofrece un proceso de configuración simplificado. Como la identidad administrada tiene la misma duración que la máquina virtual, no es necesario eliminarla por separado al eliminar la máquina virtual.
- La identidad administrada asignada por el usuario ofrece escalabilidad, ya que se puede adjuntar y usar para la autenticación de Microsoft Entra para varias instancias de SQL Server en máquinas virtuales de Azure.
Para empezar a trabajar con identidades administradas, consulte Configuración de identidades administradas mediante Azure Portal.
Requisitos previos
Para habilitar la autenticación de Microsoft Entra en SQL Server, necesita los siguientes requisitos previos:
- Usar SQL Server 2022.
- Registre la máquina virtual con SQL Server con la extensión agente de Iaas de SQL Server en cualquier nube.
- Tenga una identidad administrada asignada por el sistema o asignada por el usuario en la misma cuenta empresarial de Microsoft Entra que la VM con SQL Server. Configuración de identidades administradas mediante Azure Portal para más información.
- CLI de Azure 2.48.0 o posterior si tiene previsto usar la CLI de Azure para configurar la autenticación de Microsoft Entra para la máquina virtual de SQL Server.
Concesión de permisos
La identidad administrada que decida autenticar entre SQL Server y Microsoft Entra debe tener tres permisos de aplicación (roles de aplicación) de Microsoft Graph: User.Read.All
, GroupMember.Read.All
y Application.Read.All
.
Como alternativa, agregar la identidad administrada al rol Lectores de directorio de Microsoft Entra concede permisos suficientes. Otra manera de asignar el rol Lectores de directorio a una identidad administrada es asignar este rol a un grupo en Microsoft Entra. De ese modo, los propietarios del grupo pueden agregar la identidad administrada de la máquina virtual como miembro de este grupo. Esto minimiza la participación de los administradores globales de Microsoft Entra y delega la responsabilidad a los propietarios del grupo.
Incorporación de una identidad administrada al rol
En esta sección se explica cómo agregar la identidad administrada al rol Lectores de directorio en Microsoft Entra ID. Debe tener privilegios administrativos globales para realizar cambios en las asignaciones de roles Lectores de directorio. Si no tiene permiso suficiente, trabaje con el administrador de Microsoft Entra para seguir estos pasos.
Para conceder a la identidad administrada el permiso de rol Lectores de directorio, siga estos pasos:
Abra Roles y administradores de Microsoft Entra ID en Azure Portal:
Escriba Lectores de directorios en el cuadro de búsqueda y, a continuación, seleccione el rol Lectores de directorios para abrir la página Lectores de directorio | Asignaciones:
En la página Lectores de directorios | Asignaciones, seleccione + Agregar asignaciones para abrir la página Agregar asignación.
En la página Agregar asignaciones, elija Ningún miembro seleccionado en Seleccionar miembros para abrir la página Seleccionar un miembro.
En la página Seleccionar un miembro, busque la identidad administrada que desea usar con la VM con SQL Server y agréguela al rol Lectores de directorio. En el caso de las identidades administradas asignadas por el sistema, busque el nombre de la máquina virtual. Haga clic en Seleccionar para confirmar la identidad y vuelva a la página Agregar asignaciones.
Compruebe que ve la identidad elegida en Seleccionar miembros y, a continuación, elija Siguiente.
Compruebe que el tipo de asignación esté establecido en Activo y que el cuadro situado junto a Asignado permanentemente esté activado. Escriba una justificación comercial, por ejemplo, Agregar permisos de rol Lectores de directorios a la identidad asignada por el sistema para VM2 y, a continuación, seleccione Asignar para guardar la configuración y volver a la página Lectores de directorios | Asignaciones.
En la páginaLectores de directorios | Asignaciones, confirme que ve la identidad que se acaba de agregar en Lectores de directorios.
Adición de permisos de rol de aplicación
Puede usar Azure PowerShell para conceder roles de aplicación a una identidad administrada. Para ello, siga estos pasos:
Nota:
Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. Para obtener más información, lee la actualización de desuso. Desde esta fecha, el soporte de estos módulos se limita a la asistencia de migración al SDK de PowerShell de Microsoft Graph y a las correcciones de seguridad. Los módulos en desuso seguirán funcionando hasta el 30 de marzo de 2025.
Se recomienda migrar a PowerShell de Microsoft Graph para interactuar con Microsoft Entra ID (anteriormente Azure AD). Para preguntas comunes sobre la migración, consulta las Preguntas más frecuentes sobre migración. Nota: versiones 1.0.x de MSOnline pueden experimentar interrupciones después del 30 de junio de 2024.
Conexión con Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
Recupere la identidad administrada:
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
Asigne el rol
User.Read.All
a la identidad:$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}
Asigne el rol
GroupMember.Read.All
a la identidad:$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}
Asigne el rol
Application.Read.All
a la identidad:$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}
Puede validar que los permisos se asignaron a la identidad administrada haciendo lo siguiente:
- En Azure Portal, vaya a Microsoft Entra ID.
- Elija Aplicaciones empresariales y, a continuación, seleccione Todas las aplicaciones en Administrar.
- Filtre el tipo de aplicación por
Managed identities
. - Seleccione la identidad administrada y, a continuación, elija Permisos en Seguridad. Debería ver los siguientes permisos:
User.Read.All
,GroupMember.Read.All
yApplication.Read.All
.
Habilitación de la comunicación saliente
Para que la autenticación de Microsoft Entra funcione, necesita lo siguiente:
- Comunicación saliente de SQL Server a Microsoft Entra y el punto de conexión de Microsoft Graph.
- Comunicación saliente desde el cliente SQL a Microsoft Entra.
Las configuraciones predeterminadas de máquinas virtuales de Azure permiten la comunicación saliente al punto de conexión de Microsoft Graph, así como a Microsoft Entra, pero algunos usuarios deciden restringir la comunicación saliente mediante un firewall en el nivel de sistema operativo o el grupo de seguridad de red (NSG) de red virtual de Azure.
Los firewalls de la máquina virtual de SQL Server y cualquier cliente SQL debe permitir el tráfico saliente en los puertos 80 y 443.
La regla de NSG de red virtual de Azure para la red virtual que hospeda la máquina virtual de SQL Server debe tener lo siguiente:
- Una etiqueta de servicio de
AzureActiveDirectory
. - Intervalos de puertos de destino de: 80, 443.
- Acción establecida en Permitir.
- Prioridad alta (que es un número bajo).
Habilitar la autenticación de Microsoft Entra
Puede habilitar la autenticación de Microsoft Entra en la máquina virtual de SQL Server mediante Azure Portal o la CLI de Azure.
Nota:
Una vez que se habilita la autenticación de Microsoft Entra, puede seguir los mismos pasos de esta sección para cambiar la configuración a fin de usar una otra identidad administrada.
Para habilitar la autenticación de Microsoft Entra en la VM con SQL Server, siga estos pasos:
Vaya al recurso de máquinas virtuales de SQL en Azure Portal.
Seleccione Configuración de seguridad en Configuración.
Elija Habilitar en Autenticaciónde Microsoft Entra.
Elija el tipo de identidad administrada en la lista desplegable, que puede ser Asignada por el sistema o Asignada por el usuario. Si elige Asignada por el usuario, seleccione la identidad que desee usar para autenticarse en SQL Server en la máquina virtual de Azure en la lista desplegable Identidad administrada asignada por el usuario que aparece.
Después de habilitar Microsoft Entra, puede seguir los mismos pasos para cambiar qué identidad administrada se puede autenticar en la VM con SQL Server.
Nota:
El error The selected managed identity does not have enough permissions for Microsoft Entra authentication
indica que no se han asignado correctamente los permisos a la identidad seleccionada. Consulte la sección Concesión de permisos para asignar los permisos adecuados.
Limitaciones
Tenga en cuenta las limitaciones siguientes:
- La autenticación de Microsoft Entra solo se admite con SQL Server 2022 que se ejecuta en máquinas virtuales Windows registradas con la extensión Agente iaaS de SQL, implementada en cualquier nube. Solo se admiten escenarios admitidos de la extensión agente de IaaS de SQL, como una instancia predeterminada o una única instancia con nombre. No se admiten instancias de clúster de conmutación por error.
- La identidad que decida autenticar en SQL Server debe tener los permisos de rol Lectores de directorio en Microsoft Entra ID o los tres permisos de aplicación de Microsoft Graph siguientes (roles de aplicación):
User.Read.All
,GroupMember.Read.All
yApplication.Read.All
. - Una vez que se habilita la autenticación de Microsoft Entra, no hay ninguna manera de deshabilitarla mediante Azure Portal.
- Actualmente, no se admite la autenticación en SQL Server en máquinas virtuales de Azure a través de la autenticación de Microsoft Entra con el método FIDO2.
Pasos siguientes
Revise las prácticas recomendadas de seguridad para SQL Server.
Para otros artículos relacionados con la ejecución de SQL Server en máquinas virtuales de Azure, consulte Información general de SQL Server en máquinas virtuales de Azure. Si tiene alguna pregunta sobre las máquinas virtuales de SQL Server, consulte las Preguntas más frecuentes.
Para más información, consulte los otros artículos de esta serie sobre procedimientos recomendados: