Uso de la autenticación de Azure Active Directory

SE APLICA A: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

La autenticación de Azure Active Directory (Azure AD) es un mecanismo de conexión a Azure SQL Database, Azure SQL Managed Instance y Synapse SQL en Azure Synapse Analytics mediante identidades de Azure AD.

Nota

Este artículo se aplica a Azure SQL Database, Instancia administrada de SQL y Azure Synapse Analytics.

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:

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

Nota

La conexión a una instancia de SQL Server que se ejecuta en una máquina virtual (VM) de Azure no se admite con una cuenta de Azure Active Directory. Utilice en su lugar una cuenta de Active Directory del dominio.

En los pasos de configuración se incluyen los siguientes procedimientos para configurar y usar la autenticación de Azure Active Directory.

  1. Cree y rellene una instancia de Azure AD.
  2. Opcional: asocie o cambie la instancia de Active Directory que esté asociada a la suscripción de Azure.
  3. Cree un administrador de Azure Active Directory.
  4. Configure los equipos cliente.
  5. Cree usuarios de bases de datos independientes en la base de datos y asignados a identidades de Azure AD.
  6. Conéctese a la base de datos mediante identidades de Azure AD.

Nota

Para aprender a crear y rellenar Azure AD y, posteriormente, configurar Azure AD con Azure SQL Database, SQL Managed Instance y Synapse SQL en Azure Synapse Analytics, vea Configuración de Azure AD con Azure SQL Database.

Arquitectura de confianza

  • Solo la parte de la nube de Azure AD, SQL Database, Instancia administrada de SQL y Azure Synapse se considera que es 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 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:

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.

diagrama de autenticación de aad

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.

relación de suscripción

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.

estructura de administración

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, Instancia administrada de SQL 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, Instancia administrada de SQL 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:

  • Los usuarios de Azure AD que forman parte de un grupo que tenga el rol de servidor db_owner no pueden usar la sintaxis CREATE DATABASE SCOPED CREDENTIAL en Azure SQL Database y Azure Synapse. Verá este error:

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

    Conceda el rol db_owner directamente al usuario de Azure AD para mitigar el problema de CREATE DATABASE SCOPED CREDENTIAL.

  • Estas funciones del sistema devuelven valores NULL cuando se ejecutan en las entidades de seguridad de Azure AD:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

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.
  • Sin embargo, no se admite el establecimiento de dichas entidades (inicios de sesión) de Azure AD asignadas a un grupo de Azure AD como propietarias de la base de datos en Instancia administrada de SQL.
    • 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 Instancia administrada de SQL y crear bases de datos nuevas, 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 servidor dbcreator.
  • 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.
  • 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.
  • 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