Uso de la autenticación de Azure Active Directory
Se aplica a:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
En este artículo se proporciona información general sobre el uso de Azure Active Directory para autenticarse en Azure SQL Database, Azure SQL Managed Instance, SQL Server en máquinas virtuales de Azure en Windows, Synapse SQL en Azure Synapse Analytics y SQL Server para Windows y Linux mediante el uso de identidades en Azure AD.
Para aprender a crear y rellenar Azure AD y, posteriormente, configurar Azure AD con Azure SQL Database, Azure SQL Managed Instance y Synapse SQL en Azure Synapse Analytics, revise Configuración de Azure AD y Azure AD con SQL Server en máquinas virtuales de Azure.
Información general
La autenticación de Azure Active Directory (Azure AD) es un mecanismo para conectarse a su recurso SQL mediante identidades de Azure AD.
Con la autenticación de Azure AD puede administrar centralmente las identidades de los usuarios de la base de datos y otros servicios de Microsoft en una ubicación central. La administración de identificadores central ofrece una ubicación única para administrar usuarios de base de datos y simplifica la administración de permisos. Entre las ventajas se incluyen las siguientes:
Ofrece una alternativa a la autenticación de SQL Server.
Ayuda a detener la proliferación de identidades de usuario en los servidores.
Permite la rotación de contraseñas en un solo lugar.
Los clientes pueden administrar los permisos de la base de datos con grupos externos (Azure AD).
Puede eliminar el almacenamiento de contraseñas mediante la habilitación de la autenticación integrada de Windows y otras formas de autenticación compatibles con Azure Active Directory.
La autenticación de Azure AD utiliza usuarios de base de datos independiente para autenticar las identidades en el nivel de base de datos.
Azure AD admite la autenticación basada en token para las aplicaciones que se conectan a SQL Database y a Instancia administrada de SQL.
La autenticación de Azure AD admite lo siguiente:
- Identidades solo en la nube de Azure AD.
- Identidades híbridas de Azure AD que admiten:
- Autenticación en la nube con dos opciones asociadas al inicio de sesión único de conexión directa (SSO): la autenticación de paso a través y hash de contraseña.
- Autenticación federada.
- Para obtener más información acerca de los métodos de autenticación de Azure AD y cuál de ellos elegir, consulte el siguiente artículo:
Azure AD admite conexiones de SQL Server Management Studio que usan la autenticación universal de Active Directory, lo que incluye Multi-Factor Authentication. Multi-Factor Authentication incluye una sólida autenticación con una gama de opciones sencillas de comprobación: llamada de teléfono, mensaje de texto, tarjetas inteligentes con PIN o notificación de aplicación móvil. Para obtener más información, vea Compatibilidad de SSMS para Multi-Factor Authentication de Azure AD con Azure SQL Database, Instancia administrada de SQL y Azure Synapse.
Azure AD admite conexiones similares desde SQL Server Data Tools (SSDT) que usan la autenticación interactiva de Active Directory. Para obtener más información, consulte Compatibilidad de Azure Active Directory con SQL Server Data Tools (SSDT).
En los pasos de configuración se incluyen los siguientes procedimientos para configurar y usar la autenticación de Azure Active Directory.
- Cree y rellene una instancia de Azure AD.
- Opcional: asocie o cambie la instancia de Active Directory que esté asociada a la suscripción de Azure.
- Cree un administrador de Azure Active Directory.
- Configure los equipos cliente.
- Cree usuarios de bases de datos independientes en la base de datos y asignados a identidades de Azure AD.
- Conéctese a la base de datos mediante identidades de Azure AD.
Nota:
Para Azure SQL, las máquinas virtuales de Azure y SQL Server 2022, la autenticación de Azure AD solo admite tokens de acceso que se originen en Azure AD y no admite tokens de acceso de terceros. Azure AD tampoco admite la redirección de consultas de Azure AD a puntos de conexión de terceros. Esto se aplica a todas las plataformas SQL y a todos los sistemas operativos que admiten la autenticación de Azure AD.
Arquitectura de confianza
- Solo la parte de la nube de Azure AD, SQL Database, SQL Managed Instance, SQL Server en máquinas virtuales de Azure en Windows y Azure Synapse se considera compatible con las contraseñas de usuario nativas de Azure AD.
- Para admitir las credenciales de inicio de sesión único de Windows (o el usuario y contraseña para las credenciales de Windows), use las credenciales de Azure Active Directory desde un dominio federado o administrado que esté configurado para el inicio de sesión único de conexión directa con autenticación de paso a través y hash de contraseña. Para obtener más información, consulte Inicio de sesión único de conexión directa de Azure Active Directory.
- Para admitir la autenticación federada (o el usuario o contraseña para las credenciales de Windows), se requiere la comunicación con el bloque ADFS.
Para obtener más información sobre las identidades híbridas de Azure AD, la configuración y la sincronización, consulte los siguientes artículos:
- Autenticación de hash de contraseñas - Implementación de la sincronización de hash de contraseñas con la sincronización de Azure AD Connect
- Autenticación de paso a través: Autenticación de paso a través de Azure Active Directory.
- Autenticación federada: Implementación de Servicios de federación de Active Directory en Azure y Azure AD Connect y la federación.
Para obtener una autenticación federada de ejemplo con la infraestructura de ADFS (o el usuario y contraseña para las credenciales de Windows), consulte el diagrama siguiente. Las flechas indican las rutas de comunicación.
En el diagrama siguiente se indica la federación, la confianza y las relaciones de hospedaje que permiten que un cliente se conecte a una base de datos mediante el envío de un token que una instancia de Azure AD autenticó y que es de confianza para la base de datos. El cliente 1 puede representar una instancia de Azure Active Directory con usuarios nativos o una instancia de AD con usuarios federados. El cliente 2 representa una posible solución, incluidos los usuarios importados; en este ejemplo proceden de una instancia de Azure Active Directory federada con ADFS sincronizado con Azure Active Directory. Es importante comprender que el acceso a una base de datos mediante la autenticación de Azure AD requiere que la suscripción de hospedaje esté asociada a Azure AD. Debe utilizarse la misma suscripción para crear los recursos de Azure SQL Database, Instancia administrada de SQL o Azure Synapse.
Estructura del administrador
Cuando se usa la autenticación de Azure AD, existen dos cuentas de administrador: el administrador original de Azure SQL Database y el de Azure AD. Los mismos conceptos se aplican a Azure Synapse. Solo el administrador basado en una cuenta de Azure AD puede crear el primer usuario de base de datos independiente en Azure AD en una base de datos de usuario. El inicio de sesión del administrador de Azure AD puede ser un usuario de Azure AD o un grupo de Azure AD. Cuando el administrador es una cuenta de grupo, cualquier miembro del grupo lo puede usar, lo que permite varios administradores de Azure AD para el servidor. Mediante el uso de la cuenta de grupo como un administrador, se mejora la administración al permitir agregar y quitar miembros de grupo de forma centralizada en Azure AD sin cambiar los usuarios ni los permisos de SQL Database o Azure Synapse. Solo un administrador de Azure AD (un usuario o grupo) se puede configurar en cualquier momento.
Nota
La autenticación de Azure AD con Azure SQL solo admite un único inquilino de Azure AD donde reside actualmente el recurso de Azure SQL. Todos los objetos de Azure AD de este inquilino se pueden configurar como usuarios que permiten el acceso a Azure SQL en este inquilino. Solo se puede configurar un administrador de Azure AD desde este inquilino para habilitar el acceso a Azure SQL en este inquilino. No se admite la autenticación multiinquilino de Azure AD que accede a Azure SQL desde distintos inquilinos. Los administradores de Azure AD multiinquilino no se pueden configurar para un recurso de Azure SQL.
Permisos
Para crear nuevos usuarios, debe tener el permiso ALTER ANY USER
en la base de datos. El permiso ALTER ANY USER
se puede conceder a cualquier usuario de la base de datos. Las cuentas de administrador del servidor también disponen del permiso ALTER ANY USER
, así como los usuarios de la base de datos con los permisos CONTROL ON DATABASE
o ALTER ON DATABASE
para esa base de datos y los miembros del rol de la base de datos db_owner
.
Para crear un usuario de base de datos independiente en Azure SQL Database, Azure SQL Managed Instance o Azure Synapse, debe conectarse a la base de datos o la instancia con una identidad de Azure AD. Para crear el primer usuario de base de datos independiente , debe conectarse a la base de datos con un administrador de Azure AD (que es el propietario de la base de datos). Esto se muestra en Configuración y administración de la autenticación de Azure Active Directory con SQL Database o Azure Synapse. La autenticación de Azure AD solo es posible si se ha creado el administrador de Azure AD para Azure SQL Database, Azure SQL Managed Instance o Azure Synapse. Si se ha quitado el administrador de Azure Active Directory desde el servidor, los usuarios de Azure Active Directory creados previamente en SQL Server ya no podrán conectarse a la base de datos utilizando sus credenciales de Azure Active Directory.
Características y limitaciones de Azure AD
Los miembros siguientes de Azure AD se pueden aprovisionar para Azure SQL Database:
- Miembros nativos: un miembro creado en Azure AD en el dominio administrado o en un dominio personalizado. Para más información, consulte Incorporación de su nombre de dominio personalizado a Azure Active Directory.
- Los miembros de un dominio de Active Directory federado con Azure Active Directory en un dominio administrado configurado para el inicio de sesión único de conexión directa mediante la autenticación de paso a través o de hash de contraseña. Para obtener más información, consulte Federación con Azure AD e inicio de sesión único de conexión directa de Azure Active Directory.
- Miembros importados de otros directorios de Azure AD que son miembros nativos o miembros de dominio federado.
- Grupos de Active Directory creados como grupos de seguridad.
Los usuarios de Azure AD que forman parte de un grupo que es miembro del rol de base de datos
db_owner
no pueden usar la sintaxis CREATE DATABASE SCOPED CREDENTIAL en Azure SQL Database y Azure Synapse. Verá el siguiente error: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 problema CREATE DATABASE SCOPED CREDENTIAL, agregue directamente al usuario individual de Azure AD el rol
db_owner
.Estas funciones del sistema no se admiten y devuelven valores NULL cuando se ejecutan en las entidades de seguridad de Azure AD:
SUSER_ID()
SUSER_NAME(<ID>)
SUSER_SNAME(<SID>)
SUSER_ID(<name>)
SUSER_SID(<name>)
Azure SQL Database no crea usuarios implícitos para los usuarios que han iniciado sesión como parte de una pertenencia a grupos de Azure AD. Debido a esto, se producirá un error en varias operaciones que requieren la asignación de propiedad, incluso si el grupo de Azure AD se agrega como miembro a 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 Azure AD con el rol de db_ddladmin, no podrá ejecutar CREATE SCHEMA, ALTER SCHEMA y otras instrucciones de creación de objetos sin un esquema definido explícitamente (como tabla, vista o tipo, por ejemplo). Para resolver esto, se debe crear un usuario de Azure AD para ese usuario o el grupo de Azure AD debe modificarse para asignar el DEFAULT_SCHEMA a dbo.
Instancia administrada de SQL
Se admiten las entidades de seguridad (inicios de sesión) del servidor y los usuarios de Azure AD para Instancia administrada de SQL.
No se admite el establecimiento de entidades de seguridad de servidor (inicios de sesión) de Azure AD asignadas a un grupo de Azure AD como propietarias de base de datos en SQL Managed Instance.
- Una ampliación de este escenario es que cuando se agrega un grupo como parte del rol del servidor
dbcreator
, los usuarios de este grupo pueden conectarse a SQL Managed Instance y crear bases de datos, pero no podrán acceder a ellas. El motivo es que el propietario de la nueva base de datos es SA y no el usuario de Azure AD. Este problema no se manifiesta si el usuario se agrega al rol de servidordbcreator
.
- Una ampliación de este escenario es que cuando se agrega un grupo como parte del rol del servidor
Se admite la administración del agente SQL y las ejecuciones de los trabajos en las entidades de seguridad (inicios de sesión) de un servidor de Azure AD.
Las entidades de seguridad (inicios de sesión) de un servidor de Azure AD pueden ejecutar operaciones de copia de seguridad y restauración de bases de datos.
Se admite la auditoría de todas las instrucciones relacionadas con las entidades de seguridad (inicios de sesión) de un servidor de Azure AD y los eventos de autenticación.
Se admite la conexión de administrador dedicada para las entidades de seguridad (inicios de sesión) de un servidor de Azure AD que son miembros del rol del servidor de administrador del sistema.
- Se admite mediante la utilidad SQLCMD y SQL Server Management Studio.
Se admiten desencadenadores de inicio de sesión para los eventos de inicio de sesión procedentes de las entidades de seguridad (inicios de sesión) de un servidor de Azure AD.
Se puede configurar Service Broker y el correo electrónico de la base de datos mediante una entidad de seguridad (inicio de sesión) de un servidor de Azure AD.
Conectarse con identidades de Azure AD.
La autenticación de Azure Active Directory admite los siguientes métodos de conexión a una base de datos mediante identidades de Azure AD:
- Contraseña de Azure Active Directory
- Azure Active Directory integrado
- Azure Active Directory universal con Multi-Factor Authentication
- Mediante la autenticación de token de aplicación
Se admiten los siguientes métodos de autenticación para las entidades de seguridad (inicios de sesión) de un servidor de Azure AD:
- Contraseña de Azure Active Directory
- Azure Active Directory integrado
- Azure Active Directory universal con Multi-Factor Authentication
Consideraciones adicionales
- Para mejorar la capacidad de administración, se recomienda que aprovisione un grupo dedicado de Azure AD como administrador.
- Solo se puede configurar un administrador de Azure AD (un usuario o grupo) en un servidor de SQL Database o Azure Synapse al mismo tiempo.
- La incorporación de entidades de seguridad (inicios de sesión) de un servidor de Azure AD para Instancia administrada de SQL ofrece la posibilidad de crear varias de estas entidades que se pueden agregar al rol
sysadmin
.
- La incorporación de entidades de seguridad (inicios de sesión) de un servidor de Azure AD para Instancia administrada de SQL ofrece la posibilidad de crear varias de estas entidades que se pueden agregar al rol
- Inicialmente, solo un administrador de Azure AD para el servidor puede conectarse al servidor o a la instancia administrada con una cuenta de Azure Active Directory. El administrador de Active Directory puede configurar los usuarios de la base de datos de Azure AD sucesivos.
- No se admite que los usuarios y las entidades de servicio de Azure AD (aplicaciones de Azure AD) que forman parte de más de 2048 grupos de seguridad de Azure AD inicien sesión en la base de datos en SQL Database, SQL Managed Instance o Azure Synapse.
- Se recomienda establecer el tiempo de espera de conexión a 30 segundos.
- SQL Server 2016 Management Studio y SQL Server Data Tools para Visual Studio 2015 (versión 14.0.60311.1 abril de 2016 o posterior) admiten la autenticación de Azure Active Directory. (La autenticación de Azure AD es compatible con el proveedor de datos .NET Framework para SqlServer; al menos la versión 4.6 de .NET Framework). Por lo tanto, las versiones más recientes de estas herramientas y aplicaciones de capa de datos (DAC y BACPAC) pueden usar la autenticación de Azure AD.
- 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 Multi-Factor Authentication.
- SQL Server Data Tools para Visual Studio 2015 requiere al menos la versión de abril de 2016 de Data Tools (versión 14.0.60311.1). Actualmente, los usuarios de Azure AD no se muestran en el Explorador de objetos de SSDT. Como solución alternativa, vea los usuarios de sys.database_principals.
- Microsoft JDBC Driver 6.0 para SQL Server es compatible con la autenticación de Azure AD. Consulte también Configurar las propiedades de conexión.
- PolyBase no se puede autenticar mediante la autenticación de Azure AD.
- La autenticación de Azure AD se admite para Azure SQL Database y Azure Synapse con las hojas de Azure Portal Importar base de datos y Exportar base de datos. La importación y exportación mediante la autenticación de Azure AD también se admite desde un comando de PowerShell.
- La autenticación de Azure AD se admite para SQL Database, Instancia administrada de SQL y Azure Synapse mediante la CLI. Para obtener más información, vea Configuración y administración de la autenticación de Azure AD con SQL Database o Azure Synapse y SQL Server: az sql server.
Pasos siguientes
- Para obtener información sobre cómo crear y rellenar una instancia de Azure AD y, posteriormente, configurarla con Azure SQL Database, SQL Managed Instance o Azure Synapse, vea Configuración y administración de la autenticación de Azure Active Directory con SQL Database, SQL Managed Instance o Azure Synapse.
- Para obtener un tutorial sobre el uso de entidades de seguridad (inicios de sesión) de un servidor de Azure AD con Instancia administrada de SQL, vea Entidades de seguridad (inicios de sesión) de un servidor de Azure AD con Instancia administrada de SQL.
- Para obtener información general de los inicios de sesión, usuarios, roles de base de datos y permisos de SQL Database, consulte Inicios de sesión, usuarios, roles de base de datos y permisos.
- Para más información acerca de las entidades de seguridad de bases de datos, consulte Entidades de seguridad.
- Para más información acerca de los roles de base de datos, consulte Roles de nivel de base de datos.
- Para obtener información sobre la sintaxis de creación de entidades de seguridad (inicios de sesión) de un servidor de Azure AD para SQL Managed Instance, consulte CREATE LOGIN.
- Para más información general acerca de las reglas de firewall de SQL Database, consulte Introducción a las reglas de firewall de Azure SQL Database.