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 VM 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:

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:

  1. Abra Roles y administradores de Microsoft Entra ID en Azure Portal:

  2. 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:

    Captura de pantalla de la página Roles y administradores de Azure Portal, donde se busca y se selecciona el rol Lectores de directorios.

  3. En la página Lectores de directorios | Asignaciones, seleccione + Agregar asignaciones para abrir la página Agregar asignación.

    Captura de pantalla de la página Lectores de directorios de Azure Portal.

  4. En la página Agregar asignaciones, elija Ningún miembro seleccionado en Seleccionar miembros para abrir la página Seleccionar un miembro.

    Captura de pantalla de la página Agregar asignación de Azure Portal, con Ningún miembro seleccionado resaltado.

  5. 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.

    Captura de pantalla en la que se buscan los miembros que se van a seleccionar en Azure Portal.

  6. Compruebe que ve la identidad elegida en Seleccionar miembros y, a continuación, elija Siguiente.

    Captura de pantalla de la página Agregar asignación en Azure Portal, con VM2 agregada como una asignación.

  7. 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.

    Captura de pantalla de los valores en Agregar asignación en Azure Portal.

  8. En la páginaLectores de directorios | Asignaciones, confirme que ve la identidad que se acaba de agregar en Lectores de directorios.

    Captura de pantalla de la página Lectores de directorios de Azure Portal, que muestra la asignación de máquina virtual agregada al rol.

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 desde el 30 de marzo de 2024. Para obtener más información, lea la actualización de desuso. Después de esta fecha, la compatibilidad con 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, consulte las Preguntas más frecuentes sobre migración. Nota: Las versiones 1.0.x de MSOnline pueden experimentar interrupciones después del 30 de junio de 2024.

  1. Búsqueda en Microsoft Graph

    $AAD_SP = Get-AzureADServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    
  2. Recupere la identidad administrada:

    $MSI = Get-AzureADServicePrincipal -Filter "DisplayName eq '<your managed identity display name>'"
    
  3. Asigne el rol User.Read.All a la identidad:

    $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. Asigne el rol GroupMember.Read.All a la identidad:

    $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. Asigne el rol Application.Read.All a la identidad:

    $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 
    

Puede validar que los permisos se asignaron a la identidad administrada haciendo lo siguiente:

  1. En Azure Portal, vaya a Microsoft Entra ID.
  2. Elija Aplicaciones empresariales y, a continuación, seleccione Todas las aplicaciones en Administrar.
  3. Filtre el tipo de aplicación por Managed identities.
  4. Seleccione la identidad administrada y, a continuación, elija Permisos en Seguridad. Debería ver los siguientes permisos: User.Read.All, GroupMember.Read.All y Application.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:

  1. Vaya al recurso de máquinas virtuales de SQL en Azure Portal.

  2. Seleccione Configuración de seguridad en Configuración.

  3. Elija Habilitar en Autenticaciónde Microsoft Entra.

  4. 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.

    Captura de pantalla de la página de configuración de seguridad de la máquina virtual de SQL en Azure Portal, con la autenticación de Microsoft Entra seleccionada.

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 máquinas virtuales de SQL Server 2022 que se ejecutan en máquinas virtuales Windows registradas con la extensión agente de IaaS de SQL e implementadas en la nube pública. Solo se admiten escenarios admitidos de la extensión agente de IaaS de SQL, como una instancia predeterminada o una única instancia con nombre.
  • 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 y Application.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: