Autenticación de Microsoft Entra para SQL Server

Se aplica a: SQL Server 2022 (16.x)

SQL Server 2022 (16.x) presenta compatibilidad con la autenticación de Microsoft Entra ID (anteriormente, Azure Active Directory), tanto en Windows como en Linux en el entorno local y SQL Server en máquinas virtuales de Windows Azure.

Información general

Ahora puedes conectarte a SQL Server mediante la autenticación de Microsoft Entra:

  • Autenticación predeterminada
  • Nombre de usuario y contraseña
  • Integrado
  • Universal con autenticación multifactor
  • Entidad de servicio
  • Identidad administrada
  • Access token

Los modos de autenticación actuales, como la autenticación SQL y la autenticación de Windows, permanecen inalterados.

Microsoft Entra ID es un servicio de Azure de administración de acceso e identidad basado en la nube. Microsoft Entra ID es conceptualmente similar a Active Directory, ya que proporciona un repositorio centralizado para administrar el acceso a los recursos de la organización. Las identidades son objetos en el identificador de Microsoft Entra que representan usuarios, grupos o aplicaciones. Se pueden asignar permisos a través del control de acceso basado en roles y utilizarse para la autenticación en los recursos de Azure. Se admite la autenticación Microsoft Entra para lo siguiente:

  • Azure SQL Database
  • Instancia administrada de Azure SQL
  • SQL Server en máquinas virtuales Windows Azure
  • Azure Synapse Analytics
  • SQL Server

Para obtener más información, consulta Uso de la autenticación de Microsoft Entra con Azure SQL y Configuración y administración de la autenticación de Microsoft Entra con Azure SQL.

Si tu instancia de Windows Server Active Directory está federada con Microsoft Entra ID, los usuarios podrán autenticarse con SQL Server con sus credenciales de Windows, ya sea como inicios de sesión de Windows o inicios de sesión de Microsoft Entra. Sin embargo, Microsoft Entra ID no admite todas las características de AD compatibles con Windows Service Active Directory, como las cuentas de servicio o la compleja arquitectura de bosques de red. Hay otras funcionalidades de Microsoft Entra ID, como la autenticación multifactor, que no están disponibles con Active Directory. Comparar Microsoft Entra ID con Active Directory para obtener más información.

Conectar SQL Server a Azure con Microsoft Entra ID

Para que SQL Server se comunique con Azure, tanto SQL Server como el host de Windows o Linux en el que se ejecuta deben registrarse con Azure Arc. Para habilitar la comunicación de SQL Server con Azure, deberás instalar el agente de Azure Arc y la extensión de Azure para SQL Server.

Para obtener una introducción, vea Conexión de la instancia de SQL Server a Azure Arc.

Nota:

Si ejecutas SQL Server en una máquina virtual de Azure, no es necesario registrar la máquina virtual con Azure Arc; en su lugar, debes registrar la máquina virtual con la extensión Agente de IaaS de SQL. Una vez registrada la máquina virtual, consulta Habilitar la autenticación de Azure AD para SQL Server en máquinas virtuales para obtener más información.

Autenticación predeterminada

La opción de autenticación predeterminada con Microsoft Entra ID que habilita la autenticación a través de mecanismos sin contraseña y no interactivos, como identidades administradas, Visual Studio, Visual Studio Code, la CLI de Azure, etc.

Nombre de usuario y contraseña

Permite especificar el nombre de usuario y la contraseña en el cliente y el controlador. El nombre de usuario y el método de contraseña se suelen deshabilitar en muchos inquilinos por motivos de seguridad. Aunque las conexiones están cifradas, se recomienda evitar el uso de nombres de usuario y contraseñas siempre que sea posible, ya que esto requiere el envío de contraseñas a través de la red.

Integrado

Con Autenticación integrada de Windows (IWA), Microsoft Entra ID proporciona una solución a las organizaciones con infraestructuras locales y en la nube. Los dominios en el entorno local de Active Directory se pueden sincronizar con Microsoft Entra ID mediante federación, lo que permite controlar la administración y el control de acceso dentro de Microsoft Entra ID, mientras que la autenticación de usuario permanece en el entorno local. Con IWA, las credenciales de Windows del usuario se autentican en Active Directory y, tras una autenticación correcta, el token de autenticación del usuario de Microsoft Entra ID se devuelve a SQL.

Universal con autenticación multifactor

Este es el método interactivo estándar con la opción de autenticación multifactor para las cuentas de Microsoft Entra. Funciona en la mayoría de los escenarios.

Entidad de servicio

Una entidad de servicio es una identidad que se puede crear para su uso con herramientas, trabajos y aplicaciones automatizados. Con el método de autenticación de la entidad de servicio, puedes conectarte a la instancia de SQL mediante el identificador de cliente y el secreto de una identidad de entidad de servicio.

Identidad administrada

Las identidades administradas son tipos especiales de entidades de servicio. Hay dos tipos de identidades administradas: asignadas por el sistema y asignadas por el usuario. Las identidades administradas asignadas por el sistema se habilitan directamente en un recurso de Azure, mientras que las identidades administradas asignadas por el usuario son un recurso independiente que se puede asignar a uno o varios recursos de Azure.

Nota:

Para usar una identidad administrada para conectarse a un recurso de SQL a través de clientes de GUI como SSMS y ADS, la máquina que ejecuta la aplicación cliente debe tener una aplicación cliente de Microsoft Entra que se ejecute con el certificado de la identidad almacenado en él. Esto se logra normalmente a través de una máquina virtual de Azure, ya que la identidad se puede asignar fácilmente a la máquina a través del panel del portal de la máquina virtual.

Para herramientas que usan bibliotecas de identidades de Azure, como SQL Server Management Studio (SSMS), al conectarse con una identidad administrada, debes usar el GUID para el inicio de sesión, como abcd1234-abcd-1234-abcd-abcd1234abcd1234. Para obtener más información, consulta ManagedIdentityCredential. Si pasas incorrectamente el nombre de usuario, se produce un error como el siguiente:

ManagedIdentityCredential authentication unavailable. The requested identity has not been assigned to this resource.
Status: 400 (Bad Request)
Content:
{"error":"invalid_request","error_description":"Identity not found"}

Access token

Algunos clientes que no son de GUI, como Invoke-sqlcmd, permiten proporcionar un token de acceso. El ámbito o la audiencia del token de acceso debe ser https://database.windows.net/.

Comentarios

  • Solo SQL Server 2022 (16.x) en el entorno local con un sistema operativo Windows o Linux compatible, o SQL Server 2022 en máquinas virtuales de Windows Azure, es compatible con la autenticación de Microsoft Entra.
  • Para conectar SQL Server a Azure Arc, la cuenta de Microsoft Entra necesita los permisos siguientes:
    • Miembro del grupo Incorporación de Azure Connected Machine o del rol Colaborador en el grupo de recursos.
    • Miembro del rol Administrador de recursos de Azure Connected Machine en el grupo de recursos.
    • Miembro del rol Lector en el grupo de recursos.