Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2022 (16.x) y versiones posteriores.
En este artículo se describe cómo autenticarse con microsoft Entra ID sin configurar Azure Arc para sql Server 2022 local y versiones posteriores. La autenticación de Microsoft Entra es un servicio de administración de identidades basado en la nube que proporciona acceso seguro a las bases de datos de SQL Server. Este tutorial le guía por el proceso de configuración de la autenticación de Microsoft Entra para SQL Server en Windows sin Azure Arc.
Nota:
Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).
En este tutorial, aprenderá a:
- Agregue un certificado para SQL Server.
- Instale adal.dll para conectarse a SQL Server.
- Cree y registre una aplicación de ID de Microsoft Entra.
- Conceda permisos de aplicación.
- Cargue el certificado en la aplicación.
- Agregue valores del Registro para habilitar la autenticación de Microsoft Entra para SQL Server.
Prerrequisitos
- Una versión local de SQL Server 2022 o posterior.
- Un inquilino activo de Microsoft Entra ID .
- Esta configuración usa un registro de aplicación para asociar SQL Server con el identificador de Microsoft Entra. Siga la guía para registrar una aplicación en microsoft Entra ID.
- Compruebe que SQL Server tiene conexión de red con Azure, específicamente con el siguiente servicio de Microsoft Entra ID y direcciones:
- login.windows.net.
- login.microsoftonline.com.
- graph.microsoft.com.
- graph.windows.net.
- database.windows.net.
- No se necesitan la lista completa de direcciones IP y direcciones URL, pero pueden encontrarse en el artículo, Direcciones URL de Microsoft 365 y rangos de direcciones IP.
Obtención de un certificado
- Obtenga un certificado que se usará para SQL Server e impórtelo en el almacén de certificados del equipo. Se recomienda un certificado firmado por entidad de certificación.
Use un nombre CN único para el certificado que no coincida con ningún certificado instalado en el almacén de certificados.
Instale el certificado en el almacén de certificados del equipo. Para obtener más información, consulte Importación del certificado en el almacén de equipos local.
Agregue
Readpermisos para la cuenta de servicio de SQL Server en el certificado.
Instalar adal.dll
Instale adal.dll para SQL Server. Esta biblioteca es necesaria para conectarse a SQL Server con la autenticación de Microsoft Entra. Puede obtener adal.dll de la última instalación del Controlador OLE DB de Microsoft para SQL Server.
Después de instalar Microsoft OLE DB Driver for SQL Server, asegúrese de que adal.dll está en la carpeta
C:\windows\system32.También debe tener la clave
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirdel Registro con el valorC:\windows\system32\adal.dll. Si no existe, créelo.
Para obtener más información sobre el Registro de Windows, consulte Información del Registro de Windows para usuarios avanzados.
Creación y registro de una aplicación de Id. de Microsoft Entra
- Ve a Azure Portal, selecciona Microsoft Entra ID>Registros de aplicaciones>Nuevo registro.
- Especificar un nombre: en el ejemplo de este artículo se usa SQLServer.
- Seleccione Tipos de cuenta admitidos, y utilice Solo las cuentas de este directorio organizativo
- No establezca un URI de redireccionamiento
- Seleccione Registrar.
Vea el registro de la aplicación a continuación:
Conceder permisos de aplicación
Seleccione la aplicación recién creada y, en el menú izquierdo, seleccione Permisos de API.
Seleccione Agregar un permiso>Microsoft Graph>Permisos de la aplicación
- Compruebe Directory.Read.All
- Seleccione Agregar permisos.
O bien,
Seleccione Agregar un permiso>Microsoft Graph>Permisos de la aplicación
Compruebe Application.Read.All
Compruebe Group.Read.All
Compruebe User.Read.All
Seleccione Agregar permisos.
Selecciona Conceder consentimiento de administrador
Nota:
Para conceder consentimiento de administrador a los permisos anteriores, se requiere que la cuenta de Microsoft Entra tenga el rol de Administrador de roles con privilegios o permisos más altos.
Carga del certificado
Cargue el certificado que creó en la sección Obtención de un certificado en el .cer formato o .pem en el registro de la aplicación en Azure Portal.
Adición de valores del Registro para habilitar la autenticación de Microsoft Entra para SQL Server
Actualice la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication del Registro con los valores siguientes para habilitar la autenticación de Microsoft Entra para SQL Server. Un ejemplo de la ruta de acceso de la clave del Registro para SQL Server 2022 es HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Advertencia
Es posible que se produzcan problemas graves si modifica el registro incorrectamente mediante el Editor del Registro o mediante otro método. Estos problemas pueden requerir la reinstalación del sistema operativo. Microsoft no puede garantizar que estos problemas se puedan solucionar. La modificación del Registro se hará bajo su propia responsabilidad.
- Si la
FederatedAuthenticationclave no existe, créela con todos los valores siguientes. - Las cinco primeras entradas enumeradas deben actualizarse con los valores de la aplicación que creó en la sección anterior. El resto de las entradas son valores predeterminados.
-
<sql-server-certificate-name>es el nombre del certificado que creó en la sección Obtención de un certificado y cargado en Azure. -
<application-client-id>es el identificador de aplicación (cliente) de la aplicación que creó en la sección Crear y registrar una aplicación de Id. de Microsoft Entra. Para obtener más información sobre cómo buscar el identificador de cliente, consulte Identificador de cliente. -
<tenant-id>es el identificador de inquilino del inquilino de Azure. Puede encontrar el identificador de inquilino en el portal de Azure en Microsoft Entra ID>Descripción general.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication]
"AADCertSubjectName"="<sql-server-certificate-name>"
"AADTenantSpecificSQLServicePrincipalCertSubjectName"="<sql-server-certificate-name>"
"ClientId"="<application-client-id>"
"AADTenantSpecificSQLServicePrincipalClientId"="<application-client-id>"
"PrimaryAADTenant"="<tenant-id>"
"AADChannelMaxBufferedMessageSize"="200000"
"AADGraphEndPoint"="graph.windows.net"
"AADGroupLookupMaxRetryAttempts"="10"
"AADGroupLookupMaxRetryDuration"="30000"
"AADGroupLookupRetryInitialBackoff"="100"
"AuthenticationEndpoint"="login.microsoftonline.com"
"CacheMaxSize"="300"
"FederationMetadataEndpoint"="login.windows.net"
"GraphAPIEndpoint"="graph.windows.net"
"IssuerURL"="https://sts.windows.net/"
"MsGraphEndPoint"="graph.microsoft.com"
"OnBehalfOfAuthority"="https://login.windows.net/"
"SendX5c"="false"
"ServicePrincipalName"="https://database.windows.net/"
"ServicePrincipalNameForArcadia"="https://sql.azuresynapse.net"
"ServicePrincipalNameForArcadiaDogfood"="https://sql.azuresynapse-dogfood.net"
"ServicePrincipalNameNoSlash"="https://database.windows.net"
"STSURL"="https://login.windows.net/"
"ClientCertBlackList"=""
Para obtener más información sobre el Registro de Windows, incluida la copia de seguridad, la edición y la restauración de claves del Registro, consulte Información del Registro de Windows para usuarios avanzados.
Prueba de la autenticación
Después de configurar el servidor y editar los valores del Registro, la autenticación de Microsoft Entra debe ser funcional. Pruebe la configuración mediante la creación de inicios de sesión con los siguientes comandos de T-SQL:
CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER
Problemas comunes
Puede aparecer el error siguiente:
Keyset does not exist (AdalDll) with error code: 21
Este error podría deberse a problemas de permisos en el certificado. Asegúrese de que la cuenta de servicio de SQL Server tiene Read permisos en el certificado. Si el problema persiste, asegúrese de que el certificado tiene un nombre CN único que no coincide con ningún otro certificado del almacén de certificados.