Habilitación de la autenticación de bases de datos en Microsoft Entra

Completado

En esta unidad se muestra cómo usar microsoft Entra ID para la autenticación con Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics.

Nota:

Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).

Como alternativa, también puede configurar la autenticación de Microsoft Entra para SQL Server en Azure Virtual Machines.

Prerrequisitos

Para usar la autenticación de Microsoft Entra con el recurso de Azure SQL, necesita los siguientes requisitos previos:

Creación y rellenado de un inquilino de Microsoft Entra

A fin de poder configurar la autenticación de Microsoft Entra para el recurso de Azure SQL, debe crear un inquilino de Microsoft Entra y rellenarlo con usuarios y grupos. Los inquilinos de Microsoft Entra se pueden administrar completamente en Azure o usarse para la federación de una instancia de Active Directory Domain Services local.

Para obtener más información, consulte:

Configuración de un administrador de Microsoft Entra

Para usar la autenticación de Microsoft Entra con el recurso, debe tener configurado el administrador de Microsoft Entra. Aunque conceptualmente los pasos son los mismos para Azure SQL Database, Azure Synapse Analytics y Azure SQL Managed Instance, en esta sección se describen detalladamente las distintas API y experiencias del portal para hacerlo por cada producto.

El administrador de Microsoft Entra también se puede configurar cuando se crea el recurso de Azure SQL. Si ya hay un administrador de Microsoft Entra configurado, omita esta sección.

Azure SQL Database y Azure Synapse Analytics

Al configurar el administrador de Microsoft Entra, se habilita la autenticación de Microsoft Entra para el servidor lógico para Azure SQL Database y Azure Synapse Analytics. Puede configurar un administrador de Microsoft Entra para el servidor mediante Azure Portal, PowerShell, la CLI de Azure o las API REST.

En Azure Portal, puede encontrar el nombre del servidor lógico.

  • En el campo nombre del servidor de la página Información general de Azure SQL Database.
  • En el campo Nombre del servidor de la página Información general del grupo independiente de SQL dedicado en Azure Synapse Analytics.
  • En el punto de conexión SQL correspondiente de la página Información general del área de trabajo de Azure Synapse Analytics.
  • Azure Portal
  • PowerShell
  • Azure CLI
  • API de REST

A fin de configurar el administrador de Microsoft Entra para el servidor lógico en Azure Portal, siga estos pasos:

  1. En el panel Directorios y suscripciones de Azure Portal, elija el directorio que contiene el recurso de Azure SQL como directorio actual.
  2. Busque servidores SQL Server y, a continuación, seleccione el servidor lógico del recurso de base de datos para abrir el panel SQL Server.
  3. En el panel SQL Server del servidor lógico, seleccione Microsoft Entra ID en Configuración para abrir el panel Microsoft Entra ID.
  4. En el panel Microsoft Entra ID, seleccione Establecer administrador para abrir el panel Microsoft Entra ID.
  5. El panel Id. de Microsoft Entra muestra todos los usuarios, grupos y aplicaciones del directorio actual y le permite buscar por nombre, alias o identificador. Busque su identidad deseada para el administrador de Microsoft Entra y selecciónela y haga clic en Seleccionar para cerrar el panel.
  6. En la parte superior de la página Microsoft Entra ID del servidor lógico, seleccione Guardar.

El id. de objeto se muestra junto al nombre de administrador para usuarios y grupos de Microsoft Entra. En el caso de las aplicaciones (entidades de servicio), se muestra el identificador de la aplicación.

El proceso de cambio del administrador puede tardar varios minutos. A continuación, el nuevo administrador aparece en el campo Administrador de Microsoft Entra.

Para quitar el administrador, en la parte superior de la página Microsoft Entra ID, seleccione Quitar administrador y, a continuación, seleccione Guardar. Al eliminar el administrador de Microsoft Entra, se deshabilita la autenticación de Microsoft Entra para el servidor lógico.

Nota:

El administrador de Microsoft Entra se almacena en la base de datos maestra del servidor como usuario (principal de la base de datos). Dado que los nombres principales de base de datos deben ser únicos, el nombre visible del administrador no puede ser el mismo que el nombre de ningún usuario de la base de datos maestra del servidor. Si ya existe un usuario con ese nombre, se produce un error en la configuración del administrador de Microsoft Entra y se revierte, lo que indica que el nombre ya está en uso.

Instancia Gestionada de Azure SQL

Al configurar el administrador de Microsoft Entra, se habilita la autenticación de Microsoft Entra para Azure SQL Managed Instance. Puede configurar un administrador de Microsoft Entra para la instancia administrada de SQL mediante Azure Portal, PowerShell, la CLI de Azure o las API REST.

Para conceder a la instancia administrada de SQL permisos de lectura a Microsoft Entra ID mediante Azure Portal, inicie sesión como administrador de roles con privilegios y siga estos pasos:

  1. En Azure Portal, en la esquina superior derecha, seleccione su cuenta y, a continuación, elija Cambiar directorios para confirmar qué directorio es el directorio actual. Cambie de directorio si fuera necesario.
  2. En el panel Directorios y suscripciones de Azure Portal, elija el directorio que contiene la instancia administrada como directorio actual".
  3. Busque instancias administradas de SQL y, a continuación, seleccione la instancia administrada para abrir el panel Instancia administrada de SQL. A continuación, seleccione Microsoft Entra ID en Configuración para abrir el panel de Microsoft Entra ID para tu instancia.
  4. En el panel Administrador de Microsoft Entra, seleccione Establecer administrador en la barra de navegación para abrir el panel Id. de Microsoft Entra.
  5. En el panel Microsoft Entra ID (Id. de Microsoft Entra), busque un usuario, active la casilla situada junto al usuario o grupo para que sea administrador y, a continuación, presione Seleccionar para cerrar el panel y volver a la página de administración de Microsoft Entra para la instancia administrada. En el panel Id. de Microsoft Entra se muestran todos los miembros y grupos del directorio actual. No se pueden seleccionar los usuarios o grupos que aparecen atenuados porque no se admiten como administradores de Microsoft Entra. Seleccione la identidad que quiere asignar como administrador.
  6. En la barra de navegación de la página de administración de Microsoft Entra para la instancia administrada, seleccione Guardar para confirmar el administrador de Microsoft Entra. Una vez se complete la operación de cambio de administrador, el nuevo administrador aparece en el campo Administrador de Microsoft Entra. El id. de objeto se muestra junto al nombre de administrador para usuarios y grupos de Microsoft Entra. En el caso de las aplicaciones (entidades de servicio), se muestra el identificador de la aplicación.

Sugerencia

Para quitar el administrador, seleccione Quitar administrador en la parte superior de la página Microsoft Entra ID y, a continuación, seleccione Guardar.

Asignación de permisos de Microsoft Graph

SQL Managed Instance necesita permisos para leer en Microsoft Entra ID en escenarios como la autenticación de usuarios que se conectan mediante la pertenencia a grupos de seguridad y la creación de usuarios. Para que la autenticación de Microsoft Entra funcione, debe asignar la identidad de instancia administrada al rol Lectores de directorio. Para ello, puede usar Azure Portal o PowerShell.

Para algunas operaciones, Azure SQL Database y Azure Synapse Analytics también requieren permisos a fin de consultar Microsoft Graph, como se explica en Permisos de Microsoft Graph. Azure SQL Database y Azure Synapse Analytics soportan permisos detallados de Graph para estos escenarios, mientras que SQL Managed Instance requiere el rol "Directory Readers". Los permisos específicos y su asignación se describen en detalle en Habilitación de entidades de servicio para crear usuarios de Microsoft Entra.

Rol de lectores de directorio

La página Microsoft Entra ID para SQL Managed Instance en Azure Portal muestra un banner práctico cuando la instancia no tiene asignados los permisos de lector de directorios.

  1. Seleccione el banner situado en la parte superior de la página Microsoft Entra ID y conceda permiso a la identidad administrada asignada por el sistema o asignada por el usuario que representa la instancia. Solo un administrador de roles con privilegios o un rol superior en el inquilino pueden realizar esta operación.
  2. Cuando la operación tiene éxito, se muestra una notificación de Éxito en la esquina superior derecha.

Ahora se puede usar el administrador de Microsoft Entra para crear entidades de seguridad de servidor (inicios de sesión) y de base de datos (usuarios) de Microsoft Entra. Para más información, vea Integración de Microsoft Entra con Azure SQL Managed Instance.

Creación de entidades de seguridad de Microsoft Entra en SQL

Para conectarse a una base de datos en SQL Database o Azure Synapse Analytics con la autenticación de Microsoft Entra, se debe configurar una entidad de seguridad en la base de datos para esa identidad con al menos el permiso CONNECT.

Permisos de usuario de base de datos

Cuando se crea un usuario de base de datos, recibe el permiso CONNECT para la base de datos de forma predeterminada. Un usuario de base de datos también hereda los permisos en dos circunstancias:

  • Si el usuario es miembro de un grupo de Microsoft Entra que también tiene permisos asignados en el servidor.
  • Si el usuario se crea a partir de un inicio de sesión, hereda los permisos asignados por el servidor del inicio de sesión aplicable en la base de datos.

La administración de permisos para entidades de seguridad de servidor y de base de datos funciona igual, independientemente del tipo de entidad de seguridad (Microsoft Entra ID, autenticación de SQL, etc.). Se recomienda conceder permisos a los roles de base de datos en lugar de conceder permisos directamente a los usuarios. Después, los usuarios se pueden agregar a roles con los permisos adecuados. Esto simplifica la administración de permisos a largo plazo y reduce la probabilidad de que una identidad conserve el acceso cuando ya no sea adecuado.

Para obtener más información, consulte:

Usuarios de bases de datos independientes

Un usuario de base de datos contenida es un tipo de usuario SQL que no está conectado a un inicio de sesión en la base de datos maestra. Para crear un usuario de base de datos independiente de Microsoft Entra, conéctese a la base de datos con una identidad de Microsoft Entra que tenga al menos el permiso ALTER ANY USER. En el siguiente ejemplo de T-SQL se crea una entidad de seguridad de base de datos Microsoft_Entra_principal_name desde Microsoft Entra ID.

SQL

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;


SQL

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;


SQL

CREATE USER [appName] FROM EXTERNAL PROVIDER;


SQL

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;


Usuarios basados en inicio de sesión

Nota:

Las entidades de seguridad de servidor (inicios de sesión) de Microsoft Entra están actualmente en versión preliminar pública para Azure SQL Database y Azure Synapse Analytics. Los inicios de sesión de Microsoft Entra están disponibles con carácter general para Azure SQL Managed Instance y SQL Server 2022.

Se admiten entidades de seguridad de servidor (o inicios de sesión) de Microsoft Entra, lo que significa que los usuarios de bases de datos independientes no son necesarios. Las entidades de seguridad de base de datos (usuarios) se pueden crear en función de una entidad de seguridad de servidor, lo que significa que los usuarios de Microsoft Entra pueden heredar permisos asignados de nivel de servidor de un inicio de sesión.

SQL

CREATE USER [appName] FROM LOGIN [appName];


Para más información, vea Información general sobre SQL Managed Instance. Para obtener la sintaxis de creación de entidades de seguridad de servidor (inicios de sesión) de Microsoft Entra, vea CREATE LOGIN.

Usuarios externos

No puede crear directamente un usuario de base de datos para una identidad administrada en un inquilino de Microsoft Entra diferente al asociado a la suscripción de Azure. Pero los usuarios de otros directorios se pueden importar al directorio asociado como usuarios externos. Se pueden usar para crear usuarios de base de datos independientes que puedan acceder a la base de datos. Los usuarios externos también pueden obtener acceso mediante la pertenencia a grupos de Microsoft Entra.

Ejemplos: Para crear un usuario de base de datos independiente que represente a un usuario de dominio federado o administrado de Microsoft Entra:

SQL

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;


Una cuenta de usuario de dominio federado que se importa en un dominio administrado como un usuario externo debe usar la identidad del dominio administrado.

Consideraciones de nomenclatura

No se admiten caracteres especiales como los dos puntos o la Y comercial cuando se incluyen como nombres de usuario en las instrucciones CREATE LOGIN y CREATE USER de T-SQL.

Microsoft Entra ID y Azure SQL divergen en su diseño de administración de usuarios de una manera clave: Microsoft Entra ID permite duplicar los nombres para mostrar dentro de un inquilino, mientras que en Azure SQL es necesario que todas las entidades de seguridad de servidor de un servidor o instancia, y todas las entidades de seguridad de base de datos de una base de datos tengan un nombre único. Como Azure SQL usa directamente el nombre para mostrar de Microsoft Entra de la identidad al crear entidades de seguridad, esto puede producir errores al crear usuarios. Para solucionar este problema, Azure SQL ha publicado la mejora WITH OBJECT_ID actualmente en versión preliminar, permitiendo a los usuarios especificar el identificador de objeto de Microsoft Entra de la identidad que se añade al servidor o a la instancia.

Permisos de Microsoft Graph

CREATE USER ... El comando FROM EXTERNAL PROVIDER requiere el acceso de Azure SQL a Microsoft Entra ID (el "proveedor externo") en nombre del usuario que ha iniciado sesión. En algunas circunstancias Microsoft Entra ID devuelve una excepción a Azure SQL.

  • Es posible que encuentre el error 33134 de SQL, que contiene el mensaje de error específico de Microsoft Entra ID. El error suele indicar que se deniega el acceso, que el usuario debe inscribirse en MFA para acceder al recurso, o que el acceso entre las aplicaciones propias debe controlarse con autorización previa. En los dos primeros casos, el problema se debe normalmente a las directivas de acceso condicional que se establecen en el inquilino de Microsoft Entra del usuario: impiden que el usuario acceda al proveedor externo. Al actualizar las directivas de acceso condicional para permitir el acceso a la aplicación "00000003-0000-0000-c000-000000000000" (el identificador de aplicación de Microsoft Graph API) se debería resolver el problema. Si el error indica que el acceso entre las aplicaciones propias debe controlarse con autorización previa, el problema se debe a que el usuario ha iniciado sesión como una entidad de servicio. El comando debe ejecutarse correctamente si lo ejecuta un usuario.
  • Si recibe un mensaje indicando que ha expirado el tiempo de espera de la conexión, es posible que tenga que establecer el parámetro TransparentNetworkIPResolution de la cadena de conexión en falso. Para más información, vea Problema de tiempo de espera de conexión agotado con .NET Framework 4.6.1: TransparentNetworkIPResolution.

Para más información sobre la creación de usuarios de bases de datos independientes basados en identidades de Microsoft Entra, vea CREATE USER.

Configuración de la autenticación multifactor

Para mejorar la seguridad en el recurso de Azure SQL, considere la posibilidad de configurar la autenticación multifactor (MFA), que pide al usuario que use un segundo método alternativo para autenticarse en la base de datos, como una llamada telefónica o una aplicación autenticadora.

Para usar la autenticación multifactor con el recurso de Azure SQL, habilite primero la autenticación multifactor y, después, use una directiva de acceso condicional a fin de aplicar MFA para el recurso de Azure SQL.

Conexión con Microsoft Entra

Una vez que configure la autenticación de Microsoft Entra, puede usarla para conectarse al recurso de SQL con herramientas de Microsoft, como SQL Server Management Studio y SQL Server Data Tools, y configurar aplicaciones cliente para conectarse mediante identidades de Microsoft Entra.

Solución de problemas de autenticación de Microsoft Entra

Para obtener instrucciones sobre cómo solucionar problemas, vea Blog: Solución de problemas relacionados con la autenticación de Microsoft Entra con Azure SQL Database y Azure Synapse.