Usar la autenticación de Azure Active Directory para autenticación con SQLUse Azure Active Directory Authentication for authentication with SQL

La autenticación de Azure Active Directory es un mecanismo de conexión a Azure SQL Database, Instancia administrada y SQL Data Warehouse mediante identidades de Azure Active Directory (Azure AD).Azure Active Directory authentication is a mechanism of connecting to Azure SQL Database, Managed Instance, and SQL Data Warehouse by using identities in Azure Active Directory (Azure AD).

Nota

Este tema se aplica al servidor de Azure SQL y tanto a las bases de datos de SQL Database como a SQL Data Warehouse que se crean en el servidor de Azure SQL.This topic applies to Azure SQL server, and to both SQL Database and SQL Data Warehouse databases that are created on the Azure SQL server. Para simplificar, SQL Database se utiliza cuando se hace referencia tanto a SQL Database como a SQL Data Warehouse.For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

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.With Azure AD authentication, you can centrally manage the identities of database users and other Microsoft services in one central location. 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.Central ID management provides a single place to manage database users and simplifies permission management. Entre las ventajas se incluyen las siguientes:Benefits include the following:

  • Ofrece una alternativa a la autenticación de SQL Server.It provides an alternative to SQL Server authentication.
  • Ayuda a detener la proliferación de identidades de usuario en los servidores de base de datos.Helps stop the proliferation of user identities across database servers.
  • Permite la rotación de contraseñas en un solo lugar.Allows password rotation in a single place.
  • Los clientes pueden administrar los permisos de la base de datos con grupos externos (Azure AD).Customers can manage database permissions using external (Azure AD) groups.
  • 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.It can eliminate storing passwords by enabling integrated Windows authentication and other forms of authentication supported by 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 authentication uses contained database users to authenticate identities at the database level.
  • Azure AD admite la autenticación basada en token para las aplicaciones que se conectan a SQL Database.Azure AD supports token-based authentication for applications connecting to SQL Database.
  • La autenticación de Azure AD es compatible con ADFS (federación de dominio) o la autenticación nativa de usuario y contraseña para una instancia de Azure Active Directory local sin sincronización de dominios.Azure AD authentication supports ADFS (domain federation) or native user/password authentication for a local Azure Active Directory without domain synchronization.
  • Azure AD admite conexiones de SQL Server Management Studio que usan la autenticación universal de Active Directory, lo cual incluye Multi-Factor Authentication (MFA).Azure AD supports connections from SQL Server Management Studio that use Active Directory Universal Authentication, which includes Multi-Factor Authentication (MFA). MFA incluye una sólida autenticación con una gama de sencillas opciones de comprobación: llamada de teléfono, mensaje de texto, tarjetas inteligentes con PIN o notificación de aplicación móvil.MFA includes strong authentication with a range of easy verification options — phone call, text message, smart cards with pin, or mobile app notification. Para obtener más información, consulte Compatibilidad de SSMS con Azure AD MFA con SQL Database y SQL Data Warehouse.For more information, see SSMS support for Azure AD MFA with SQL Database and SQL Data Warehouse.
  • Azure AD admite conexiones similares desde SQL Server Data Tools (SSDT) que usan la autenticación interactiva de Active Directory.Azure AD supports similar connections from SQL Server Data Tools (SSDT) that use Active Directory Interactive Authentication. Para más información, consulte Compatibilidad de Azure Active Directory con SQL Server Data Tools (SSDT).For more information, see Azure Active Directory support in SQL Server Data Tools (SSDT).

Nota

La conexión a una instancia de SQL Server que se ejecute en una máquina virtual de Azure no se admite si se usa una cuenta de Azure Active Directory.Connecting to SQL Server running on an Azure VM is not supported using an Azure Active Directory account. Utilice en su lugar una cuenta de Active Directory del dominio.Use a domain Active Directory account instead.

En los pasos de configuración se incluyen los siguientes procedimientos para configurar y usar la autenticación de Azure Active Directory.The configuration steps include the following procedures to configure and use Azure Active Directory authentication.

  1. Cree y rellene una instancia de Azure AD.Create and populate Azure AD.
  2. Opcional: asocie o cambie la instancia de Active Directory que esté asociada a la suscripción de Azure.Optional: Associate or change the active directory that is currently associated with your Azure Subscription.
  3. Cree un administrador de Azure Active Directory para el servidor de Azure SQL Database, la instancia administrada o la instancia de Azure SQL Data Warehouse.Create an Azure Active Directory administrator for the Azure SQL Database server, the Managed Instance, or the Azure SQL Data Warehouse.
  4. Configure los equipos cliente.Configure your client computers.
  5. Cree usuarios de bases de datos independientes en la base de datos y asignados a identidades de Azure AD.Create contained database users in your database mapped to Azure AD identities.
  6. Conéctese a la base de datos mediante identidades de Azure AD.Connect to your database by using Azure AD identities.

Nota

Para aprender a crear y rellenar Azure AD y, posteriormente, configurarlo con Azure SQL Database, Instancia administrada y SQL Data Warehouse, consulte Configuración y administración de la autenticación de Azure Active Directory con SQL Database o SQL Data Warehouse.To learn how to create and populate Azure AD, and then configure Azure AD with Azure SQL Database, Managed Instance, and SQL Data Warehouse, see Configure Azure AD with Azure SQL Database.

Arquitectura de confianzaTrust architecture

En el siguiente diagrama de alto nivel se resume la arquitectura de la solución del uso de la autenticación de Azure AD con Azure SQL Database.The following high-level diagram summarizes the solution architecture of using Azure AD authentication with Azure SQL Database. Los mismos conceptos se aplican a SQL Data Warehouse.The same concepts apply to SQL Data Warehouse. Para admitir la contraseña de usuario nativa de Azure AD, se considera solo la parte de la nube y Azure SQL Database o Azure AD.To support Azure AD native user password, only the Cloud portion and Azure AD/Azure SQL Database is considered. 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.To support Federated authentication (or user/password for Windows credentials), the communication with ADFS block is required. Las flechas indican las rutas de comunicación.The arrows indicate communication pathways.

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 tokenThe following diagram indicates the federation, trust, and hosting relationships that allow a client to connect to a database by submitting a token. que una instancia de Azure AD autenticó y que es de confianza para la base de datos.The token is authenticated by an Azure AD, and is trusted by the database. El cliente 1 puede representar una instancia de Azure Active Directory con usuarios nativos o una instancia de AD con usuarios federados.Customer 1 can represent an Azure Active Directory with native users or an Azure AD with federated users. 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.Customer 2 represents a possible solution including imported users; in this example coming from a federated Azure Active Directory with ADFS being synchronized with 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.It's important to understand that access to a database using Azure AD authentication requires that the hosting subscription is associated to the Azure AD. Debe utilizarse la misma suscripción para crear el servidor SQL Server que hospeda Azure SQL Database o SQL Data Warehouse.The same subscription must be used to create the SQL Server hosting the Azure SQL Database or SQL Data Warehouse.

relación de suscripción

Estructura del administradorAdministrator structure

Cuando se usa la autenticación de Azure AD, existen dos cuentas de administrador para el servidor de SQL Database e Instancia administrada: el administrador del servidor SQL Server original y el administrador de Azure AD.When using Azure AD authentication, there are two Administrator accounts for the SQL Database server and Managed Instance; the original SQL Server administrator and the Azure AD administrator. Los mismos conceptos se aplican a SQL Data Warehouse.The same concepts apply to SQL Data Warehouse. 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.Only the administrator based on an Azure AD account can create the first Azure AD contained database user in a user database. El inicio de sesión del administrador de Azure AD puede ser un usuario de Azure AD o un grupo de Azure AD.The Azure AD administrator login can be an Azure AD user or an Azure AD group. Cuando el administrador es una cuenta de grupo, cualquier miembro del grupo lo puede usar, lo que permite varios administradores de Azure AD para la instancia de SQL Server.When the administrator is a group account, it can be used by any group member, enabling multiple Azure AD administrators for the SQL Server instance. 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.Using group account as an administrator enhances manageability by allowing you to centrally add and remove group members in Azure AD without changing the users or permissions in SQL Database. Solo un administrador de Azure AD (un usuario o grupo) se puede configurar en cualquier momento.Only one Azure AD administrator (a user or group) can be configured at any time.

estructura de administración

PermisosPermissions

Para crear nuevos usuarios, debe tener el permiso ALTER ANY USER en la base de datos.To create new users, you must have the ALTER ANY USER permission in the database. El permiso ALTER ANY USER se puede conceder a cualquier usuario de la base de datos.The ALTER ANY USER permission can be granted to any database user. 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.The ALTER ANY USER permission is also held by the server administrator accounts, and database users with the CONTROL ON DATABASE or ALTER ON DATABASE permission for that database, and by members of the db_owner database role.

Para crear un usuario de base de datos independiente en Azure SQL Database, Instancia administrada o SQL Data Warehouse, debe conectarse a la base de datos con una identidad de Azure AD.To create a contained database user in Azure SQL Database, Managed Instance, or SQL Data Warehouse, you must connect to the database or instance using an Azure AD identity. 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).To create the first contained database user, you must connect to the database by using an Azure AD administrator (who is the owner of the database). Esto se muestra en Configuración y administración de la autenticación de Azure Active Directory con SQL Database o SQL Data Warehouse.This is demonstrated in Configure and manage Azure Active Directory authentication with SQL Database or SQL Data Warehouse. La autenticación de Azure AD solo es posible si se creó el administrador de Azure AD para Azure SQL Database o para el servidor de SQL Data Warehouse.Any Azure AD authentication is only possible if the Azure AD admin was created for Azure SQL Database or SQL Data Warehouse server. 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.If the Azure Active Directory admin was removed from the server, existing Azure Active Directory users created previously inside SQL Server can no longer connect to the database using their Azure Active Directory credentials.

Características y limitaciones de Azure ADAzure AD features and limitations

  • Los siguientes miembros de Azure AD se pueden aprovisionar en Azure SQL Server o en SQL Data Warehouse:The following members of Azure AD can be provisioned in Azure SQL server or SQL Data Warehouse:

  • 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 SQL Data Warehouse.Azure AD users that are part of a group that has db_owner server role cannot use the CREATE DATABASE SCOPED CREDENTIAL syntax against Azure SQL Database and Azure SQL Data Warehouse. Verá este error:You will see the following 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.Grant the db_owner role directly to the individual Azure AD user to mitigate the CREATE DATABASE SCOPED CREDENTIAL issue.

  • Estas funciones del sistema devuelven valores NULL cuando se ejecutan en las entidades de seguridad de Azure AD:These system functions return NULL values when executed under Azure AD principals:

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

Instancias administradasManaged Instances

  • Se admiten las entidades de seguridad (inicios de sesión) del servidor y los usuarios de Azure AD como característica en versión preliminar para instancias administradas.Azure AD server principals (logins) and users are supported as a preview feature for Managed Instances.
  • 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 propietario de la base de datos en instancias administradas.Setting Azure AD server principals (logins) mapped to an Azure AD group as database owner is not supported in Managed Instances.
    • Una prolongación de este escenario es que cuando se agrega un grupo como parte del rol de servidor dbcreator, los usuarios de este grupo pueden conectarse a la instancia administrada y crear bases de datos, pero no podrán acceder a ellas.An extension of this is that when a group is added as part of the dbcreator server role, users from this group can connect to the Managed Instance and create new databases, but will not be able to access the database. El motivo es que el propietario de la nueva base de datos es SA y no el usuario de Azure AD.This is because the new database owner is SA, and not the Azure AD user. Este problema no se manifiesta si el usuario se agrega al rol de servidor dbcreator.This issue does not manifest if the individual user is added to the dbcreator server role.
  • 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.SQL Agent management and jobs execution is supported for Azure AD server principals (logins).
  • 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.Database backup and restore operations can be executed by Azure AD server principals (logins).
  • 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.Auditing of all statements related to Azure AD server principals (logins) and authentication events is supported.
  • 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.Dedicated administrator connection for Azure AD server principals (logins) which are members of sysadmin server role is supported.
    • Se admite mediante la utilidad SQLCMD y SQL Server Management Studio.Supported through SQLCMD Utility and 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.Logon triggers are supported for logon events coming from Azure AD server principals (logins).
  • 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.Service Broker and DB mail can be setup using an Azure AD server principal (login).

Conexión mediante identidades de Azure ADConnecting using Azure AD identities

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:Azure Active Directory authentication supports the following methods of connecting to a database using Azure AD identities:

  • Contraseña de Azure Active DirectoryAzure Active Directory Password
  • Azure Active Directory integradoAzure Active Directory Integrated
  • Azure Active Directory Universal con MFAAzure Active Directory Universal with MFA
  • Mediante la autenticación de token de aplicaciónUsing Application token authentication

Se admiten los siguientes métodos de autenticación para entidades de seguridad (inicios de sesión) de un servidor de Azure AD (versión preliminar pública):The following authentication methods are supported for Azure AD server principals (logins) (public preview):

  • Contraseña de Azure Active DirectoryAzure Active Directory Password
  • Azure Active Directory integradoAzure Active Directory Integrated
  • Azure Active Directory Universal con MFAAzure Active Directory Universal with MFA

Consideraciones adicionalesAdditional considerations

  • Para mejorar la capacidad de administración, se recomienda que aprovisione un grupo dedicado de Azure AD como administrador.To enhance manageability, we recommend you provision a dedicated Azure AD group as an administrator.
  • Solo se puede configurar un administrador de Azure AD (un usuario o grupo) en un servidor de Azure SQL Server o Azure SQL Data Warehouse al mismo tiempo.Only one Azure AD administrator (a user or group) can be configured for an Azure SQL Database server or Azure SQL Data Warehouse at any time.
    • La adición de entidades de seguridad (inicios de sesión) de un servidor de Azure AD para instancias administradas (versión preliminar pública) ofrece la posibilidad de crear varias de estas entidades que se pueden agregar al rol sysadmin.The addition of Azure AD server principals (logins) for Managed Instances (public preview) allows the possibility of creating multiple Azure AD server principals (logins) that can be added to the sysadmin role.
  • Inicialmente, solo un administrador de Azure AD para SQL Server puede conectarse al servidor de Azure SQL Database, a Instancia administrada o a Azure SQL Data Warehouse con una cuenta de Azure Active Directory.Only an Azure AD administrator for SQL Server can initially connect to the Azure SQL Database server, Managed Instance, or Azure SQL Data Warehouse using an Azure Active Directory account. El administrador de Active Directory puede configurar los usuarios de la base de datos de Azure AD sucesivos.The Active Directory administrator can configure subsequent Azure AD database users.
  • Se recomienda establecer el tiempo de espera de conexión a 30 segundos.We recommend setting the connection timeout to 30 seconds.
  • 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.SQL Server 2016 Management Studio and SQL Server Data Tools for Visual Studio 2015 (version 14.0.60311.1April 2016 or later) support Azure Active Directory authentication. (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).(Azure AD authentication is supported by the .NET Framework Data Provider for SqlServer; at least version .NET Framework 4.6). 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.Therefore the newest versions of these tools and data-tier applications (DAC and .BACPAC) can use Azure AD authentication.
  • 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 MFA.Beginning with version 15.0.1, sqlcmd utility and bcp utility support Active Directory Interactive authentication with MFA.
  • 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).SQL Server Data Tools for Visual Studio 2015 requires at least the April 2016 version of the Data Tools (version 14.0.60311.1). Actualmente, los usuarios de Azure AD no se muestran en el explorador de objetos de SSDT.Currently Azure AD users are not shown in SSDT Object Explorer. Como solución alternativa, vea los usuarios de sys.database_principals.As a workaround, view the users in sys.database_principals.  
  • Microsoft JDBC Driver 6.0 para SQL Server es compatible con la autenticación de Azure AD.Microsoft JDBC Driver 6.0 for SQL Server supports Azure AD authentication. Consulte también Configurar las propiedades de conexión.Also, see Setting the Connection Properties.
  • PolyBase no se puede autenticar mediante la autenticación de Azure AD.PolyBase cannot authenticate by using Azure AD authentication.  
  • La autenticación de Azure AD se admite para SQL Database con las hojas Importar base de datos y Exportar base de datos de Azure Portal.Azure AD authentication is supported for SQL Database by the Azure portal Import Database and Export Database blades. La importación y exportación mediante la autenticación de Azure AD también se admite desde el comando de PowerShell.Import and export using Azure AD authentication is also supported from the PowerShell command.
  • La autenticación de Azure AD se admite para SQL Database, Instancia administrada y SQL Data Warehouse mediante el uso de la CLI.Azure AD authentication is supported for SQL Database, Managed Instance, and SQL Data Warehouse by use CLI. Para obtener más información, consulte Configuración y administración de la autenticación de Azure Active Directory con SQL Database o SQL Data Warehouse y SQL Server - az sql server.For more information, see Configure and manage Azure Active Directory authentication with SQL Database or SQL Data Warehouse and SQL Server - az sql server.

Pasos siguientesNext steps