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 están actualmente en vista previa 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 principales de SQL en la base de datos 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 soporta 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 servicio o identidades gestionadas 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 identidades híbridas de Microsoft Entra con Active Directory [federación].
  • 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 examina varias memorias caché de credenciales en la máquina de la aplicación y puede usar tokens de usuario para autenticarse con 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 la entidad de seguridad del servicio de Microsoft Entra y secreto de la 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 examina varias memorias caché de credenciales en la máquina de la aplicación y puede usar tokens de aplicación para autenticarse con 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 cambiando la administración de las acciones del plano de datos del servidor a Microsoft Entra ID y a 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 una función especial: es la primera cuenta que puede crear otras cuentas de inicio de sesión y usuarios de Microsoft Entra, denominados en conjunto identidades. 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.

Principales 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 principales de servidor o inicios de sesión
  • como usuarios basados en credenciales de inicio de sesión (un tipo de entidad de seguridad de base de datos)
  • como usuarios contenidos en bases de datos

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. Las SQL Server Contributor funciones 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 del servidor (inicios de sesión) para las identidades de Microsoft Entra están en vista previa 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 que inician sesión heredan los roles y permisos de 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]

En la tabla siguiente se detallan los valores de propiedad basados en el inicio de sesión del usuario 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 basado en base de datos de Microsoft Entra tiene los mismos valores de propiedad que los usuarios basados en inicio de sesión en sys.database_principals, excepto la forma SID en que se construye:

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 Microsoft Entra es una característica de seguridad proporcionada por el servicio administrado de acceso e identidades 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 proporciona dos métodos de autenticación seguros: autenticación de hash de contraseñas y autenticación de paso. 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 funciones 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 el despliegue 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 interacción con la 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. Entonces, las implementaciones pueden realizar la configuración inicial, como crear otros principales de Microsoft Entra y asignarles permisos. Para despliegues, utiliza herramientas como plantillas ARM de PowerShell para crear scripts para la creación automatizada 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 seguridad en Microsoft Entra y en algunos otros escenarios, Azure SQL debe realizar llamadas a Microsoft Graph para recuperar información sobre la identidad y validar su existencia en Microsoft Entra ID. 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.
    • Asignar permisos de aplicación a la identidad primaria del servidor (identidad gestionada) del servidor lógico o instancia gestionada. 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 MiembroDelGrupo.Leer.Todo

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, puedes 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 las entidades de servicio de Microsoft Entra (aplicaciones de Microsoft Entra) que forman parte de más de 2048 grupos de seguridad de Microsoft Entra no se admiten 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 mitigar el CREATE DATABASE SCOPED CREDENTIAL problema, agregue directamente la identidad del usuario de Microsoft Entra al db_owner rol.

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