Autenticación de Microsoft Entra para Azure Synapse Analytics

Este artículo ofrece una visión general en profundidad sobre cómo utilizar la autenticación Microsoft Entra con Synapse SQL en Azure Synapse Analytics.

Note

Las entidades de seguridad de servidor de Microsoft Entra se encuentran actualmente en versión preliminar para Azure Synapse Analytics.

Para configurar la autenticación de Microsoft Entra, consulte Configurar y gestionar la autenticación de Microsoft Entra con Azure Synapse Analytics.

Overview

Microsoft Entra ID permite administrar centralmente las identidades de los seres humanos y los servicios del patrimonio de datos. Al integrar Microsoft Entra con Azure Synapse Analytics para la autenticación, puedes simplificar la gestión de identidades y permisos, al tiempo que permites un acceso condicional detallado y una gobernanza sobre las conexiones a tus datos.

El uso de la autenticación de Microsoft Entra incluye las siguientes ventajas:

  • Reemplaza métodos de autenticación menos seguros como nombres de usuario y contraseñas.
  • Elimina o ayuda a detener la proliferación de identidades de usuario en los servidores.
  • Los grupos de Microsoft Entra permiten que la administración de permisos de base de datos se abstraiga de cuentas individuales a grupos operativos.
  • Permite la rotación de contraseñas en un solo lugar.
  • La autenticación solo de Microsoft Entra ofrece una alternativa completa a la autenticación de SQL.
  • Las identidades administradas para recursos de Azure eliminan la necesidad de almacenar contraseñas para los servicios que se conectan a las bases de datos y las conexiones de las bases de datos a otros recursos de Azure.
  • Permite controles de seguridad modernos, incluida una sólida autenticación multifactor con una gama de sencillas opciones de verificación, como llamada telefónica, mensaje de texto, tarjeta inteligentes con PIN o notificación de aplicación móvil.
  • Microsoft Entra ID permite la integración con muchos protocolos de autenticación moderna, como OpenID Connect, OAuth2.0, delegación restringida de Kerberos, etc.
  • Habilita la supervisión centralizada de conexiones a orígenes de datos.
  • Habilita controles de acceso condicional, como requerir dispositivos compatibles o métodos de autenticación para conexiones correctas.

Note

La autenticación de Microsoft Entra solo admite tokens de acceso que se originen en Microsoft Entra ID y no admite tokens de acceso de terceros. Microsoft Entra ID tampoco admite la redirección de consultas de Microsoft Entra ID a puntos de conexión de terceros. Esta limitación se aplica a todas las plataformas SQL y a todos los sistemas operativos que soportan la autenticación Microsoft Entra.

Pasos de configuración

Los pasos generales para configurar la autenticación de Microsoft Entra son los siguientes:

  1. Cree y configure un tenant de Microsoft Entra.
  2. Crea un espacio de trabajo de Azure Synapse o un pool SQL dedicado independiente.
  3. Asigna un administrador de Microsoft Entra al espacio de trabajo o al servidor lógico.
  4. Crear entidades SQL en la base de datos que estén asignadas a identidades de Microsoft Entra.
  5. Configura tus aplicaciones cliente para que se conecten utilizando bibliotecas y métodos de autenticación de Azure Identity.
  6. Conéctese a la base de datos con identidades de Microsoft Entra.

Identidades admitidas y métodos de autenticación

Azure Synapse Analytics admite el uso de las siguientes identidades de Microsoft Entra como inicios de sesión y usuarios (entidades de seguridad) en Synapse SQL:

  • Usuarios de Microsoft Entra: cualquier tipo de usuario de un inquilino de Microsoft Entra, incluidos los usuarios internos, los externos, los invitados y los miembros. También se admiten los miembros de un dominio de Active Directory federado con Microsoft Entra ID y se pueden configurar para el inicio de sesión único sin problemas.
  • Aplicaciones: las aplicaciones que existen en Azure pueden utilizar entidades de seguridad de servicio o identidades administradas para autenticarse directamente en Azure Synapse Analytics. Es preferible usar identidades gestionadas porque la autenticación es sin contraseña y elimina la necesidad de credenciales gestionadas por los desarrolladores.
  • Grupos de Microsoft Entra, que pueden simplificar la administración de acceso en toda la organización mediante la administración del acceso de usuarios y aplicaciones en función de la pertenencia a grupos.

Para las identidades de usuario, se admiten los siguientes métodos de autenticación:

  • Microsoft Entra Integrated (autenticación de Windows), compatible con Microsoft Entra Hybrid Identities con [federación] de Active Directory.
  • Microsoft Entra MFA o autenticación multifactor, que requiere comprobaciones de seguridad adicionales más allá del conocimiento del usuario.
  • Autenticación con Contraseña de Microsoft Entra, que usa credenciales de usuario almacenadas y administradas en Microsoft Entra ID.
  • Autenticación predeterminada de Microsoft Entra, que analiza diversas cachés de credenciales en el equipo de la aplicación y puede utilizar tokens de usuario para autenticarse en SQL.

Para las identidades de carga de trabajo o de servicio, se admiten los siguientes métodos de autenticación:

  • Identidades administradas para recursos de Azure, asignadas por el sistema y por el usuario. La autenticación de identidad administrada se basa en tokens, en la que la identidad se asigna al recurso que quiere autenticarse. La plataforma de identidad de Azure valida esa relación, lo que permite la autenticación sin contraseña.
  • Nombre de entidad de servicio de Microsoft Entra y secreto de aplicación (cliente). Este método de autenticación no se recomienda debido al riesgo asociado a las contraseñas que se pueden adivinar y filtrar.
  • Autenticación predeterminada de Microsoft Entra, que analiza diversas cachés de credenciales en el equipo de la aplicación y puede utilizar tokens de aplicación para autenticarse en SQL.

Administrador de Microsoft Entra

Para habilitar la autenticación de Microsoft Entra, debe configurarse un administrador de Microsoft Entra para tu espacio de trabajo o servidor lógico de Azure Synapse. Este administrador existe junto al administrador SQL. El administrador de Microsoft Entra puede ser un usuario, grupo, principal de servicio o identidad gestionada en tu tenant de Azure. Solo se puede configurar una identidad a la vez. Eliminar el administrador de Microsoft Entra desactiva las conexiones basadas en autenticación de Microsoft Entra, incluso para usuarios existentes de Microsoft Entra con permisos en una base de datos.

Tip

Los grupos de Microsoft Entra permiten que varias identidades actúen como administrador de Microsoft Entra en el servidor. Cuando el administrador se establece en un grupo, todos los miembros del grupo heredan el rol de administrador de Microsoft Entra. Un administrador de grupo de Microsoft Entra mejora la capacidad de administración al trasladar la administración administrativa de las acciones del plano de datos del servidor a Microsoft Entra ID y a manos de los propietarios del grupo. Los grupos se pueden usar para todas las identidades de Microsoft Entra que se conectan a SQL, lo que permite la configuración de permisos y usuarios únicos en el servidor y las bases de datos, lo que deja toda la administración de usuarios en los grupos.

El administrador de Microsoft Entra desempeña un papel especial: es la primera cuenta que puede crear otros inicios de sesión y usuarios de Microsoft Entra, denominados colectivamente entidades. El administrador es un usuario de base de datos independiente en la base de datos master del servidor. Las cuentas de administrador son miembros del rol db_owner en todas las bases de datos de usuarios y acceden a cada base de datos de usuario con el usuario dbo. Para obtener más información sobre las cuentas de administrador, consulte cómo administrar bases de datos e inicios de sesión.

Entidades de Microsoft Entra

Note

Las entidades de seguridad del servidor de Microsoft Entra (inicios de sesión de servidor) están actualmente en vista previa para Azure Synapse Analytics.

Puedes crear identidades de Microsoft Entra como entidades de seguridad en Azure Synapse Analytics de tres maneras:

  • como entidades de servidor o inicios de sesión
  • como usuarios basados en inicio de sesión (un tipo de entidad de base de datos)
  • como usuarios de bases de datos contenidas

Importante

La autenticación de Microsoft Entra para Azure SQL no se integra con RBAC de Azure. Para usar identidades de Microsoft Entra y conectarte a Azure SQL y ejecutar consultas, necesitas crear esas identidades como entidades de seguridad de Microsoft Entra en las bases de datos a las que deben acceder. Los roles SQL Server Contributor y SQL DB Contributor aseguran las operaciones de implementación relacionadas con la administración, no el acceso a la conectividad de bases de datos.

Inicios de sesión (entidades de seguridad del servidor) en grupos de SQL dedicados

Las entidades de seguridad de servidor (inicios de sesión) para identidades de Microsoft Entra están en versión preliminar para los grupos de SQL dedicados de Azure Synapse Analytics.

En el siguiente T-SQL se muestra cómo crear un inicio de sesión de Microsoft Entra:

CREATE LOGIN [MSEntraUser] FROM EXTERNAL PROVIDER

Un inicio de sesión de Microsoft Entra tiene los siguientes valores de propiedad en sys.server_principals:

Property Value
SID (Identificador de seguridad) Representación binaria del ID de objeto de la identidad de Microsoft Entra
tipo E = Inicio de sesión externo o aplicación de Microsoft Entra ID
X = Grupo externo de Microsoft Entra ID
type_desc EXTERNAL_LOGIN para el inicio de sesión o la aplicación de Microsoft Entra
EXTERNAL_GROUP para el grupo de Microsoft Entra

Usuarios basados en autenticación

Los usuarios basados en inicio de sesión heredan los roles y permisos en el nivel de servidor asignados a su inicio de sesión de Microsoft Entra.

En el siguiente T-SQL se muestra cómo crear un usuario basado en inicio de sesión para una identidad de Microsoft Entra:

CREATE USER [MSEntraUser] FROM LOGIN [MSEntraUser]

La siguiente tabla detalla los valores de las propiedades de los usuarios basados en un inicio de sesión de Microsoft Entra en sys.database_principals:

Property Value
SID (Identificador de seguridad) Representación binaria del ID de objeto de la identidad de Microsoft Entra, más AADE
tipo E = Inicio de sesión externo o aplicación de Microsoft Entra ID
X = Grupo externo de Microsoft Entra ID
type_desc EXTERNAL_LOGIN para el inicio de sesión o la aplicación de Microsoft Entra
EXTERNAL_GROUP para el grupo de Microsoft Entra

Usuarios de bases de datos independientes

Los usuarios de base de datos independientes son portátiles con la base de datos. No tienen vínculos con identidades definidas en el servidor o instancia, y puedes moverlas fácilmente junto con la base de datos de un servidor o instancia a otra sin interrupciones.

En el siguiente T-SQL se muestra cómo crear un usuario de base de datos independiente para una identidad de Microsoft Entra:

CREATE USER [MSEntraUser] FROM EXTERNAL PROVIDER

Un usuario de base de datos de Microsoft Entra tiene los mismos valores de propiedad que los usuarios basados en un inicio de sesión en sys.database_principals, salvo por la forma en que se construye el SID:

Property Value
SID (Identificador de seguridad) Representación binaria del ID de objeto de la identidad de Microsoft Entra
tipo E = Inicio de sesión externo o aplicación de Microsoft Entra ID
X = Grupo externo de Microsoft Entra ID
type_desc EXTERNAL_LOGIN para el inicio de sesión o la aplicación de Microsoft Entra
EXTERNAL_GROUP para el grupo de Microsoft Entra

Para obtener el GUID de Microsoft Entra original en el que se basa el SID, use la siguiente conversión de T-SQL:

SELECT CAST(sid AS UNIQUEIDENTIFIER) AS EntraID FROM sys.database_principals

Caution

Podrías crear sin querer un usuario contenido de la base de datos de Microsoft Entra con el mismo nombre que un inicio de sesión de Microsoft Entra a nivel de servidor o instancia. Como las entidades de seguridad no están conectadas entre sí, el usuario de la base de datos no hereda permisos del inicio de sesión del servidor. Las identidades pueden fusionarse en las solicitudes de conexión, lo que resulta en comportamientos indefinidos.

Use la siguiente consulta de T-SQL para determinar si un usuario de base de datos es un usuario basado en inicio de sesión o un usuario de base de datos independiente:

SELECT CASE
    WHEN CONVERT(VARCHAR(100), sid, 2) LIKE '%AADE' AND len(sid) = 18 THEN 'login-based user'
    ELSE 'contained database user'
    END AS user_type,
    *
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Utilice la siguiente consulta T-SQL para ver todos los principales de Microsoft Entra en una base de datos:

SELECT
  name,
  CAST(sid AS UNIQUEIDENTIFIER) AS EntraID,
  CASE WHEN TYPE = 'E' THEN 'App/User' ELSE 'Group' AS user_type,
  sid
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Autenticación exclusiva para Microsoft Entra

Cuando activas la autenticación exclusiva de Microsoft Entra, desactivas la autenticación SQL. No puedes usar autenticación SQL para conectarte al espacio de trabajo, al pool SQL o a la base de datos.

Para empezar, consulta Configurar autenticación solo de Microsoft Entra.

Autenticación multifactor (MFA)

La autenticación multifactor de Microsoft Entra es una característica de seguridad proporcionada por el servicio de administración de identidades y accesos basado en la nube de Microsoft. La autenticación multifactor mejora la seguridad de los inicios de sesión de usuario al requerir que los usuarios proporcionen pasos de comprobación adicionales más allá de una contraseña.

La autenticación multifactor de Microsoft Entra ayuda a proteger el acceso a los datos y las aplicaciones, además de satisfacer la demanda de los usuarios de un proceso de inicio de sesión simple. MFA agrega una capa adicional de seguridad a los inicios de sesión de usuario al requerir que los usuarios proporcionen dos o más factores de autenticación. Estos factores suelen incluir algo que el usuario conoce (contraseña), algo que posee el usuario (smartphone o token de hardware) o algo que el usuario es (datos biométricos). Al combinar varios factores, MFA reduce significativamente la probabilidad de acceso no autorizado.

La autenticación multifactor es un método de autenticación compatible con Azure Synapse Analytics.

Para empezar, consulta Configurar la autenticación multifactor de Microsoft Entra.

Soporte de Microsoft Entra B2B

La autenticación de Microsoft Entra en todos los productos SQL también es compatible con la colaboración B2B de Microsoft Entra, que permite a las empresas invitar a usuarios invitados a colaborar con su organización. Los usuarios invitados pueden conectarse a las bases de datos como usuarios individuales o como miembros de un grupo de Microsoft Entra.

Arquitectura de confianza para la federación de Microsoft Entra con Active Directory

Microsoft Entra ID también se integra con soluciones conocidas de administración de identidades y acceso, como Active Directory. Al unir híbridamente tu Active Directory local, habilitas identidades de Windows federadas a través de Microsoft Entra ID para usar credenciales de inicio de sesión único y conectarse a Azure Synapse Analytics.

Para la federación, Microsoft Entra ID ofrece dos métodos de autenticación seguros: la autenticación por traspaso y la autenticación mediante hash de contraseña. Si está pensando en federar su instancia de Active Directory local a Microsoft Entra ID, revise Selección del método de autenticación adecuado para la solución de identidad híbrida de Microsoft Entra.

Para obtener más información sobre la configuración y la sincronización de las identidades híbridas de Microsoft Entra, consulte los siguientes artículos:

Microsoft Entra ID autentica el token y la base de datos confía en él, y valida el emisor y otros detalles. El cliente 1 puede representar Microsoft Entra ID con usuarios nativos o Microsoft Entra ID con usuarios federados. El cliente 2 representa una posible solución, incluidos los usuarios importados, que en este ejemplo proceden de una instancia de Microsoft Entra ID federada con ADFS sincronizado con Microsoft Entra ID. Es importante entender que el acceso a una base de datos mediante la autenticación Microsoft Entra requiere que la suscripción de alojamiento esté asociada al Microsoft Entra ID. Debes usar la misma suscripción para crear los recursos de Azure SQL o Azure Synapse.

Permissions

Los permisos asignados al administrador de Microsoft Entra difieren de los permisos asignados a otras entidades de seguridad en Azure Synapse Analytics. En algunos casos, Azure Synapse Analytics también necesita permisos de Microsoft Graph para usar la autenticación Microsoft Entra.

Permisos de administrador

Los siguientes permisos y roles se asignan al administrador de Microsoft Entra cuando se crea:

  • db_owner de cada base de datos

Permisos de Azure Synapse Analytics

Un principal necesita el permiso ALTER ANY USER en la base de datos para crear un usuario.

Por defecto, las cuentas de administrador del servidor, los usuarios de bases de datos con CONTROL ON DATABASE, y los miembros del db_owner rol de base de datos tienen el ALTER ANY USER permiso.

Para crear un principal Microsoft Entra en Azure SQL, la identidad solicitante debe consultar Microsoft Graph para obtener detalles sobre el principal. En la implementación inicial, la única identidad que puede consultar Microsoft Graph es el administrador de Microsoft Entra. Por lo tanto, el administrador debe ser la primera identidad para crear otras entidades de seguridad de Microsoft Entra. Después de eso, el administrador puede asignar ALTER ANY USER a otras entidades de seguridad para que puedan crear otras entidades de seguridad de Microsoft Entra.

Implementaciones sin intervención con autenticación de Microsoft Entra

Dado que el administrador de Microsoft Entra debe ser la primera identidad en conectarse a la base de datos y crear otros usuarios de Microsoft Entra, puede ser útil añadir la identidad de tu infraestructura de despliegue como administrador. Sus implementaciones pueden entonces realizar la configuración inicial, como crear otros sujetos de Microsoft Entra y asignarles permisos. Para implementaciones, utilice herramientas como las plantillas ARM de PowerShell para automatizar mediante scripts la creación de entidades de seguridad. Azure SQL hoy en día no soporta APIs nativas para configurar la creación de usuarios y la gestión de permisos. Solo puedes realizar estas operaciones usando una conexión directa a la instancia SQL.

Permisos de Microsoft Graph

Para crear entidades de Microsoft Entra y en algunos otros escenarios, Azure SQL necesita realizar llamadas a Microsoft Graph para recuperar información sobre la identidad en Microsoft Entra ID y validar su existencia. Para ello, el proceso SQL debe tener u obtener acceso a permisos de lectura de Microsoft Graph dentro del tenant del cliente. Puedes lograr este acceso de varias maneras:

  • Si el principal SQL que ejecuta el comando es una identidad de usuario, no necesitas conceder permisos adicionales a la instancia SQL para consultar Microsoft Graph.
  • Si el principal SQL que ejecuta el comando es una identidad de servicio, como un principal de servicio o una identidad gestionada, la instancia de Azure SQL requiere sus propios permisos para consultar Microsoft Graph.
    • Asigne los permisos de aplicación a la identidad de servidor principal (identidad administrada) del servidor lógico o de la instancia administrada. El proceso SQL puede usar la identidad principal del servidor para autenticarse a otros servicios de Azure en un tenant, como Microsoft Graph. La siguiente tabla explica varios escenarios y los permisos de Microsoft Graph necesarios para que el comando se ejecute correctamente.
Scenario Permiso mínimo
CREATE USER o CREATE LOGIN para una entidad de servicio (service principal) de Microsoft Entra o una identidad gestionada Application.Read.All
CREATE USERo CREATE LOGIN para un usuario de Microsoft Entra User.Read.All
CREATE USERo CREATE LOGIN para un grupo Microsoft Entra GroupMember.Read.All

Tip

El rol de Lectores de Directorio es el de menor alcance que puedes asignar a una identidad y cubre todos los permisos necesarios. Al usar roles, puede asignarlos a grupos de seguridad de Microsoft Entra, lo que desvincula la administración de las entidades individuales y la lleva a grupos conceptuales.

Soporte técnico de herramientas

SQL Server Management Studio (SSMS) admite varias opciones de conexión de autenticación de Microsoft Entra, incluida la autenticación multifactor.

SQL Server Data Tools (SSDT) para Visual Studio, a partir de 2015, admite la autenticación de contraseña, integrada e interactiva con Microsoft Entra ID. Para obtener más información, consulte Compatibilidad de Microsoft Entra ID con SQL Server Data Tools (SSDT).

  • Actualmente, SSDT Explorador de objetos no muestra usuarios de Microsoft Entra. Como solución alternativa, vea los usuarios de sys.database_principals.

Versiones mínimas

Para utilizar la autenticación Microsoft Entra con Azure Synapse Analytics, necesitas las siguientes versiones mínimas al utilizar estas herramientas:

  • SQL Server Management Studio (SSMS) 18.6 o versiones posteriores
  • SQL Server Data Tools para Visual Studio 2015, versión 14.0.60311.1 (abril de 2016) o versiones posteriores
  • Proveedor de datos .NET Framework para SQL Server, versión mínima .NET Framework 4.6
  • A partir de la versión 15.0.1, la utilidad sqlcmd y la utilidad bcp admiten la autenticación interactiva de Active Directory con la autenticación multifactor.
  • Microsoft JDBC Driver 6.0 para SQL Server es compatible con la autenticación de Microsoft Entra. Consulte también Configurar las propiedades de conexión.

Conectarse con Microsoft Entra a Azure Synapse Analytics

Después de configurar la autenticación Microsoft Entra para tu recurso Azure SQL, puedes conectarte usando SQL Server Management Studio, SQL Server Data Tools y una aplicación cliente.

Limitations

Al utilizar la autenticación Microsoft Entra con Azure Synapse Analytics, ten en cuenta las siguientes limitaciones:

  • Los usuarios y entidades de servicio de Microsoft Entra (aplicaciones de Microsoft Entra) que sean miembros de más de 2048 grupos de seguridad de Microsoft Entra no son compatibles y no pueden iniciar sesión en la base de datos.

  • Las siguientes funciones del sistema no son compatibles y devuelven valores NULL cuando los principales de Microsoft Entra las ejecutan:

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Se recomienda establecer el tiempo de espera de conexión a 30 segundos.

  • Los usuarios de Microsoft Entra que forman parte de un grupo que es miembro del db_owner rol de base de datos pueden experimentar el siguiente error al intentar usar CREATE DATABASE SCOPED CREDENTIAL en Azure Synapse Analytics:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.

    Para solucionar el problema CREATE DATABASE SCOPED CREDENTIAL, añade la identidad del usuario de Microsoft Entra directamente al rol db_owner.

  • Azure Synapse Analytics no crea usuarios implícitos para los usuarios que inician sesión a través de la membresía de grupo de Microsoft Entra. Por ello, las operaciones que requieren asignar la propiedad pueden fracasar, incluso si el grupo de Microsoft Entra es miembro de un rol con esos permisos.

    Por ejemplo, un usuario que inició sesión en una base de datos a través de un grupo de Microsoft Entra con el rol de db_ddladmin no puede ejecutar CREATE SCHEMA, ALTER SCHEMAy otras instrucciones de creación de objetos sin un esquema definido explícitamente (por ejemplo, tabla, vista o tipo). Para resolver esto, se debe crear un usuario de Microsoft Entra para ese usuario o el grupo de Microsoft Entra debe modificarse para asignar un DEFAULT_SCHEMA elemento como dbo.

  • Eliminar el administrador de Microsoft Entra impide las conexiones de autenticación de Microsoft Entra.