Las versiones recientes de Microsoft 365 bloquean toda macro que intente conectar con servidores que todavía utilizan autenticación básica (Basic Auth/WebDAV). Este artículo explica por qué ocurre, cómo habilitar dominios seguros en el registro o GPO y qué alternativas existen a corto y medio plazo.
Problema planteado
Desde la actualización de enero de 2024, Excel / Word 2016 (o posterior) muestran el aviso:
«Microsoft Office has blocked access to ‘https://…’ because the source uses a sign‑in method that may be unsecure.»
El cuadro aparece antes de que la macro, la QueryTable
o el vínculo WebDAV intente autenticar; es la propia capa de Identidad de Office la que interrumpe el flujo. Internamente, Office consulta una lista de métodos “permitidos” (OAuth 2.0, SAML, Kerberos, certificados cliente) y, si encuentra cabeceras WWW‑Authenticate: Basic
o Authorization: Basic
, rechaza la conexión salvo que el host figure en la lista de confianza.
En la práctica, esto ha afectado a miles de hojas de cálculo corporativas, portales de administraciones públicas (como el de producción petrolera de Dakota del Norte) y servidores WebDAV heredados que aún dependen de usuario / contraseña sin Modern Auth.
Solución principal comprobada
Paso | Acción | Detalles |
---|---|---|
1 | Añadir el host a la lista de confianza basichostallowlist | Office permite excluir dominios concretos del bloqueo. Solo hay que indicar el FQDN sin esquema (dmr.nd.gov , no https:// ). |
2 | Crear la clave de registro (o desplegar por GPO) | REG ADD "HKCU\Software\Policies\Microsoft\Office\16.0\Common\Identity" ^ /t REGEXPANDSZ /v basichostallowlist /d "dmr.nd.gov" Ejecútalo con privilegios elevados. Sustituye dmr.nd.gov por tu dominio, o por varios separados por punto y coma (dominio1;dominio2 ). |
3 | Cerrar y reabrir todas las aplicaciones Office | La librería MSOID lee la clave al iniciarse. Si algunos procesos (p. ej. Teams.exe ) siguen en memoria, reinicia Windows. |
Resultado típico: Tras reiniciar, la macro vuelve a descargar datos con normalidad.
Errores frecuentes al aplicar la solución
- Introducir solo el dominio principal cuando la URL responde desde un subdominio (
feeservices.dmr.nd.gov
). - Escribir la clave en
HKLM
; la política correcta reside enHKCU
para el usuario en sesión. - Olvidar el reinicio completo de Office / Windows.
- Usar un canal Beta / Enterprise todavía sin el parche (versión anterior a 16.0.17231.20194).
Alternativas cuando el registro no basta
Política de grupo
En entornos empresariales resulta preferible usar GPO o un perfil de Intune/MDM. Busca la plantilla administrativa Allow basic authentication for selected hosts (Office 2016 o posterior) situada en:Usuario > Configuración > Plantillas Administrativas > Microsoft Office 2016 > Configuration Access
Detrás de la plantilla hay exactamente la misma clave de registro, pero con control centralizado, auditoría y herencia de dominio.
Modificar el método de acceso en la macro
- WinHTTP o XMLHTTP en VBA
El bloqueo se produce en objetos de Office (QueryTable
,WorkbookConnection
,Hyperlink
). Si tu código usaMSXML2.XMLHTTP60
oWinHTTP.WinHTTPRequest.5.1
, la llamada se realiza fuera de la capa Office y no se bloquea.Dim http As Object Set http = CreateObject("WinHTTP.WinHTTPRequest.5.1") http.Open "GET", "https://dmr.nd.gov/.../CSV", False http.SetCredentials "usuario", "contraseña", 0 http.Send If http.Status = 200 Then ' Procesar respuesta End If
- Descarga previa con PowerShell
Invoke-WebRequest ` -Uri "https://dmr.nd.gov/..." ` -OutFile "C:\Temp\datos.csv" ` -Credential (Get-Credential)
Una vez guardado localmente, la macro solo tiene que abrir el archivo.
Migrar a autenticación moderna
La solución definitiva consiste en mover el servidor a OAuth 2.0, SAML o Kerberos. Es el único modo de garantizar compatibilidad futura: Microsoft anunció que la lista de confianza será una medida temporal y que en ciclos de soporte posteriores podría deshabilitarse o requerir firmas digitales de servidor.
Solución temporal “documento abierto”
Algunos usuarios observan que, si antes de ejecutar la macro abren un documento Word alojado en el mismo dominio, la sesión se crea y la hoja Excel deja de bloquearse. El efecto se debe a que Word accede primero, guarda un token en la caché de Identidad y Excel lo reutiliza. No es fiable para producción, pero sirve como workaround de diagnóstico.
Preguntas frecuentes (FAQ)
¿Puedo poner comodines del tipo *.midominio.com
?
No. Cada FQDN debe ir separado por punto y coma. Sin embargo, puedes añadir todos los subdominios necesarios.
¿La clave funciona con OneDrive o SharePoint?
Sí, pero Microsoft 365 ya utiliza Modern Auth para sus propios servicios, por lo que la clave apenas se aplica a recursos externos.
¿Existe un límite de hosts?
La documentación interna no menciona ningún tope, aunque añadir cientos de dominios puede ralentizar la resolución de políticas. Mantén la lista tan breve como sea posible.
¿Cómo verifico la versión mínima compatible?
En cualquier aplicación de Office ve a Archivo → Cuenta → Acerca de. Debes ver al menos 16.0.17231.20194
(enero 2024, canal mensual) o una compilación posterior. Si tu organización está en canal semestral, pide el parche correspondiente o espera al ciclo natural.
Buenas prácticas y precauciones
- Copia de seguridad del registro: Exporta
HKCU\Software\Policies\Microsoft\Office
antes de cualquier cambio. - Limita la lista a dominios de confianza: Aunque viaje por TLS, la cabecera
Authorization: Basic
se puede reutilizar en ataques MITM si se expone el certificado. - Documenta el bypass: Agrega comentarios en la GPO o en el script de despliegue aclarando la razón y la fecha de caducidad prevista.
- Programa la migración: Acordar con el proveedor la habilitación de OAuth 2.0 o, al menos, de certificados cliente para cierre del bypass.
- Usa Intune cuando sea posible: Un perfil de configuración evita privilegios locales y ofrece reporting de estado.
Resumen operativo
- Identifica el dominio exacto (o subdominios) que la macro solicita.
- Añádelo a
basichostallowlist
mediante GPO oREG ADD
. - Reinicia Office; si persiste, reinicia Windows.
- Comprueba versión de Office y que la URL coincida con la lista; si falla, usa WinHTTP o PowerShell como plan B.
- Migra a autenticación moderna para garantizar compatibilidad a largo plazo.
Ejemplo completo paso a paso
Un escenario típico con Excel 2019 (versión 2312) y un servidor datos.midominio.local
podría resolverse así:
- Abrir PowerShell como administrador.
- Ejecutar:
REG ADD "HKCU\Software\Policies\Microsoft\Office\16.0\Common\Identity" ` /t REGEXPANDSZ /v basichostallowlist /d "datos.midominio.local"
- Cerrar Excel y Word por completo (
taskkill /IM excel.exe /F
opcional). - Volver a abrir el libro e iniciar la macro. Ya no debería aparecer el aviso.
- Registrar el cambio en la base de conocimiento interna y abrir solicitud de Modern Auth a TI.
Scripts reutilizables para departamentos de TI
Batch / CMD
@echo off
setlocal
set HOSTS=dmr.nd.gov;feeservices.dmr.nd.gov
REG ADD "HKCU\Software\Policies\Microsoft\Office\16.0\Common\Identity" ^
/t REGEXPANDSZ /v basichostallowlist /d "%HOSTS%" /f
echo Hosts añadidos a la lista de confianza: %HOSTS%
pause
PowerShell + Intune (import XML)
# Script de detección
$Path = "HKCU:\Software\Policies\Microsoft\Office\16.0\Common\Identity"
$Value = "basichostallowlist"
$Desired = "dmr.nd.gov;feeservices.dmr.nd.gov"
try {
$actual = (Get-ItemProperty -Path $Path -Name $Value -ErrorAction Stop).$Value
if ($actual -eq $Desired) { exit 0 } else { exit 1 }
} catch { exit 1 }
Monitoreo y auditoría
Añadir la clave no deja eventos en el visor de sucesos, pero sí puedes rastrear accesos WebDAV vía ETW
o auditoría de IIS. Configura un sensor que alerte sobre peticiones Authorization: Basic
para saber qué usuarios siguen dependiendo del bypass y planificar la retirada.
Conclusión
La decisión de Microsoft de deshabilitar la autenticación básica en macros VBA persigue mejorar la seguridad del ecosistema, pero introduce fricciones en entornos con aplicaciones heredadas. El uso de basichostallowlist
permite restaurar la compatibilidad mientras se migra a métodos modernos. Documenta cada excepción, limita su alcance y programa la transición para evitar bloqueos futuros.