Al probar la conexión entre Microsoft Entra Provisioning y una base de datos SQL Server mediante el ECMA Connector Host, un fallo de “credenciales incorrectas” puede bloquear todo el flujo de aprovisionamiento. Este artículo guía paso a paso la investigación, explica los códigos de error de SQL Server y describe las mejores prácticas para garantizar una integración segura y estable.
Diagnóstico inicial del problema
Antes de modificar configuraciones complejas, valide la capa más evidente – las credenciales y la cadena de conexión:
- Confirmar nombre de usuario y contraseña. Copie y pegue los valores en una sesión interactiva de sqlcmd o SSMS para descartar errores tipográficos escondidos en caracteres UTF‑8, mayúsculas o espacios.
- Comprobar que el inicio de sesión exista en
sys.serverprincipals
y que su columnaisdisabled
sea 0. - Verificar la validez de la contraseña con la consulta:
SELECT LOGINPROPERTY('ecma_login', 'IsExpired') AS PassExpired, LOGINPROPERTY('ecma_login', 'IsLocked') AS PassLocked;
- Revisar la cadena de conexión: servidor, instancia, puerto (1433 por defecto) y parámetros como
encrypt
,trustServerCertificate
omultiSubnetFailover
.
Autenticación y permisos en SQL Server
Modos de autenticación compatibles
SQL Server puede usar autenticación de Windows, autenticación SQL o modo mixto. El ECMA Connector puede funcionar con cualquiera de los tres, pero las implicaciones varían:
Modo | Requisitos para el ECMA Host | Riesgos habituales |
---|---|---|
Windows | El servicio del Connector Host o del Provisioning Agent debe ejecutarse con una identidad de dominio que tenga inicio de sesión en SQL Server. | Desincronización de contraseñas de servicio; políticas de expiración de Kerberos. |
SQL | Inicio de sesión creado explícitamente, contraseña almacenada en el archivo de configuración del conector. | Contraseña caducada o complejidad insuficiente; modo mixto deshabilitado. |
Mixto | Permite ambos, ofrece flexibilidad. | Ataques de fuerza bruta si la contraseña de SQL es débil. |
Habilitar modo mixto (si aplica)
EXEC xpinstanceregwrite
N'HKEYLOCALMACHINE',
N'Software\Microsoft\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQLServer',
N'LoginMode',
REG_DWORD,
2; -- 2 = Mixto
Tras el cambio, reinicie el servicio SQL Server y restablezca la contraseña del inicio de sesión.
Principio de privilegio mínimo
El inicio de sesión empleado por ECMA rara vez necesita sysadmin
. Otorgue solamente:
dbdatareader
ydbdatawriter
sobre la base de datos destino.- Permisos de
EXECUTE
en procedimientos almacenados si existen. - Acceso al
schema
usado para insertar o actualizar filas.
Evaluación de la configuración del ECMA Connector Host
Los parámetros del conector residen en el archivo JSON de manifest y en los “secure strings” creados en el Portal de Microsoft Entra. Para cada instancia revise:
- Dirección del servidor. Prefiera FQDN en lugar de IP si usa TLS con certificados públicos.
- Instancia nombrada. Asegúrese de que esté habilitado el SQL Browser o especifique
serverName\instanceName,1433
. - Parámetro encrypt:
encrypt=true
obliga al host a negociar TLS 1.2/1.3.- Si el certificado es autofirmado, añada
trustServerCertificate=true
para evitar errores de confianza.
- Timeout. Un
Login Timeout
demasiado bajo (< 5 s) puede dar falsos positivos de “credenciales incorrectas” cuando en realidad hay latencia o pérdida de paquetes.
Revisión de políticas y seguridad en Microsoft Entra
Si el ECMA Host se autentica en Azure AD para obtener secretos, las Políticas de Acceso Condicional o las ubicaciones de confianza pueden bloquearlo:
- Excluya la principal service account del agente de reglas basadas en ubicación o MFA.
- Compruebe que la aplicación empresarial ECMA tiene asignados los permisos a la instancia correcta del host.
- Verifique que la dirección IP del servidor local aparezca en las Named Locations permitidas.
Interpretación avanzada de los códigos de error 18456
SQL Server registra los motivos de fallo de inicio de sesión con el código 18456
y un state adicional. Active la traza de seguridad (nivel 4) para obtener el estado numérico:
EXEC spaltermessage 18456, 'WITHLOG', 'true';
State | Significado | Acción recomendada |
---|---|---|
1, 2, 5 | Usuario o contraseña incorrecta | Volver a escribir credenciales; comprobar mayúsculas y codificación. |
7 | Cuenta deshabilitada | Habilitar el inicio de sesión o usar otra identidad. |
8 | Contraseña caducada | Restablecer contraseña; actualizar secreto en Microsoft Entra. |
11, 12 | Base de datos predeterminada inaccesible | Asignar master o una base existente como DEFAULT_DATABASE . |
18 | Política de contraseña obliga cambio | Haga ALTER LOGIN WITH CHECK_POLICY = OFF o cambie la contraseña. |
Captura y análisis de registros
El ECMA Connector Host y el Provisioning Agent generan archivos de registro en:
C:\ProgramData\Microsoft\Azure AD Connect Provisioning Agent\Logs\ConnectorHost
C:\ProgramData\Microsoft\Azure AD Connect Provisioning Agent\Logs\AadConnectProvisioningAgent
En el Portal de Microsoft Entra, vaya a Provisioning > Diagnostics y establezca el nivel Verbose. Busque líneas como:
[ConnectorHost] SQL Error 18456, State 8, Severity 14
Correlacione la marca temporal con los registros de SQL Server (ERRORLOG
) para revelar el motivo exacto.
Entorno de prueba controlado
Cuando la causa no sea evidente, aislé el problema:
- Implemente una máquina virtual con SQL Server Developer Edition, sin GPOs ni antivirus corporativos.
- Instale la última versión estable del ECMA Connector Host.
- Cree un inicio de sesión local y habilite la autenticación SQL.
- Configure un conector mínimo y ejecute la prueba de credenciales.
- Si funciona, compare:
- Versión de SQL Server (incluidos CUs).
- Protocolos de red habilitados (TCP, NP, SM).
- Configuraciones de TLS y conjuntos de cifrado.
Buenas prácticas operativas
- Parcheo continuo. Mantenga SQL Server y el Provisioning Agent con los últimos parches acumulativos.
- Rotación de secretos. Automatice el cambio de contraseña del inicio de sesión cada 90 días y actualice el secreto en Microsoft Entra mediante script.
- Monitorización proactiva. Use Azure Monitor o un SIEM para generar alertas ante eventos 18456 repetitivos.
- Backups de configuración. Exporte regularmente el archivo JSON del conector y guárdelo en un repositorio Git.
- Documentación. Mantenga un diagrama de flujo entre Microsoft Entra, ECMA Host y SQL Server con puertos, modos de autenticación y versiones.
Checklist rápido antes de abrir un ticket
Si después de todas las pruebas el error persiste, complete el siguiente checklist. Aportarlo al soporte reducirá el tiempo de resolución:
- Capturas de pantalla del asistente “Probar credenciales”.
- Fragmento del
ERRORLOG
con código 18456 y estado numérico. - Versión exacta de SQL Server y nivel de parche (
SELECT @@VERSION
). - Versión del ECMA Connector Host y del Provisioning Agent (
Get-Item 'C:\Program Files\Microsoft Entra Connect Provisioning Agent\AadCloudProvisioningAgent.exe'
). - Archivo JSON del conector con los valores sensibles redacted.
- Topología de red y puertos abiertos.
Conclusión
En la mayoría de los escenarios, un error de «credenciales incorrectas» en el ECMA Connector Host se remonta a una de dos causas: el modo de autenticación elegido no coincide con la configuración real de SQL Server, o la cuenta indicada carece de permisos adecuados. Siguiendo la secuencia de verificación descrita —desde la validación de credenciales hasta la inspección de registros detallados— se localiza rápidamente el punto de fallo y se restablece la conectividad. Implementar las buenas prácticas propuestas no solo previene incidencias futuras, sino que fortalece la seguridad general de la plataforma.