Análisis detallado de la seguridad de la autenticación transferida de Microsoft Entra

En este artículo se proporciona una descripción más detallada sobre cómo funciona la autenticación transferida de Microsoft Entra. Se centra más en los aspectos de seguridad de la característica. Este artículo está dirigido a administradores de seguridad y TI, encargados de cumplimiento y seguridad y otros profesionales de TI responsables de la seguridad y el cumplimiento de TI en organizaciones o empresas de cualquier tamaño.

Entre los temas a tratar se incluyen:

  • Información técnica detallada sobre cómo se instalan y registran los agentes de autenticación.
  • Información técnica detallada sobre el cifrado de contraseñas durante el inicio de sesión de usuario.
  • La seguridad de los canales entre los agentes de autenticación locales y Microsoft Entra ID.
  • Información técnica detallada sobre cómo se mantiene la seguridad operativa de los agentes de autenticación.

Funcionalidades de seguridad de clave de autenticación transferida

La autenticación transferida tiene estas funcionalidades de seguridad clave:

  • Se basa en una arquitectura segura de varios inquilinos que proporciona aislamiento a las solicitudes de inicio de sesión entre los inquilinos.
  • Las contraseñas locales nunca se almacenan en la nube.
  • Los agentes de autenticación locales que escuchan las solicitudes de validación de contraseña y responden a ellas solo realizan conexiones salientes desde la red. No es necesario instalar estos agentes de autenticación en una red perimetral (también conocida como DMZ, zona desmilitarizada y subred filtrada). Como procedimiento recomendado, trate todos los servidores que ejecutan los agentes de autenticación como sistemas de nivel 0 (consulte la referencia).
  • Solo se usan puertos estándar (puerto 80 y puerto 443) para la comunicación saliente de los agentes de autenticación a Microsoft Entra ID. No es necesario abrir puertos entrantes en el firewall.
    • El puerto 443 se usa en todas las comunicaciones salientes autenticadas.
    • Solo se usa el puerto 80 para descargar las listas de revocación de certificados (CRL) a fin de garantizar que ninguno de los certificados que use la característica hayan sido revocados.
    • Para obtener la lista completa de los requisitos de red, consulte Inicio rápido de la autenticación transferida de Microsoft Entra.
  • Las contraseñas que proporciona el usuario durante el inicio de sesión se cifran en la nube antes de que los agentes de autenticación locales las acepten para validarlas en Windows Server Active Directory (Windows Server AD).
  • El canal HTTPS entre Microsoft Entra ID y el agente de autenticación local está protegido gracias a la autenticación mutua.
  • La autenticación transferida protege las cuentas de usuario y, para ello, trabaja sin problemas con directivas de acceso condicional de Microsoft Entra, incluida la autenticación multifactor (MFA), el bloqueo de autenticación heredada y el filtrado de ataques por fuerza bruta.

Componentes implicados en la autenticación transferida

Para obtener información general sobre la seguridad operativa, del servicio y de los datos de Microsoft Entra ID, consulte el Centro de confianza. Los siguientes componentes son necesarios al usar la autenticación transferida del inicio de sesión de usuario:

  • Servicio de token de seguridad de Microsoft Entra (STS de Microsoft Entra): un STS sin estado que procesa solicitudes de inicio de sesión y emite tokens de seguridad a exploradores, clientes o servicios de usuario según sea necesario.
  • Azure Service Bus: proporciona comunicación habilitada para la nube con mensajería empresarial y retransmite comunicación que ayuda a conectar las soluciones locales con la nube.
  • Agente de autenticación de Microsoft Entra Connect: es un componente local que escucha las solicitudes de validación de contraseña y responde a ellas.
  • Azure SQL Database: retiene información sobre los agentes de autenticación del inquilino, incluidos los metadatos y las claves de cifrado.
  • Windows Server AD: entorno local de Active Directory, donde se almacenan las cuentas de usuario y las contraseñas correspondientes.

Instalación y registro de los agentes de autenticación

Los agentes de autenticación se instalan y registran con Microsoft Entra ID cuando se realiza una de las siguientes acciones:

La obtención de un agente de autenticación operacional implica tres fases principales:

  • Instalación
  • Registro
  • Inicialización

En las secciones siguientes se tratan estas fases en detalle.

Instalación del agente de autenticación

Solo se puede instalar un agente de autenticación (con Microsoft Entra Connect o de forma independiente) en un servidor local con una cuenta de administrador de identidad híbrida.

La instalación agrega dos nuevas entradas a la lista de Panel de control>Programas>Programas y características:

  • La propia aplicación del agente de autenticación. Esta aplicación se ejecuta con privilegios NetworkService.
  • La aplicación del actualizador que se usa para actualizar automáticamente el agente de autenticación. Esta aplicación se ejecuta con privilegios LocalSystem.

Importante

Desde el punto de vista de la seguridad, los administradores deben tratar el servidor que ejecuta el agente de autenticación transferida como si fuera un controlador de dominio. Los servidores del agente de autenticación transferida deben protegerse como se describe en Protección de controladores de dominio contra ataques.

Registro del agente de autenticación

Después de instalar el agente de autenticación, se registra en Microsoft Entra ID. Microsoft Entra ID asigna a cada agente de autenticación un certificado de identidad digital exclusivo que se puede usar para proteger las comunicaciones con Microsoft Entra ID.

El procedimiento de registro también enlaza al agente de autenticación con el inquilino. Después, Microsoft Entra ID sabe que este agente de autenticación específico es el único autorizado para controlar las solicitudes de validación de contraseña del inquilino. Este procedimiento se repite para cada nuevo agente de autenticación que se registra.

Los agentes de autenticación realizan los siguientes pasos para registrarse con Microsoft Entra ID:

Diagram that depicts authentication agent registration with Azure AD.

  1. Microsoft Entra primero solicita que un administrador de identidades híbrido inicie sesión en Microsoft Entra ID con sus credenciales. Durante el inicio de sesión, el agente de autenticación adquiere un token de acceso que puede usar en nombre del usuario.
  2. A continuación, el agente de autenticación genera un par de claves: una clave pública y otra privada.
    • Este par de claves se genera mediante el cifrado estándar de 2048 bits de RSA.
    • La clave privada permanece en el servidor local donde reside el agente de autenticación.
  3. El agente de autenticación realiza una solicitud de "registro" a Microsoft Entra ID a través de HTTPS, con los siguientes componentes incluidos en la solicitud:
    • El token de acceso que adquirió el agente.
    • La clave pública que se generó.
    • Una solicitud de firma de certificado (CSR o solicitud de certificado). Esto sirve para solicitar un certificado de identidad digital que tenga Microsoft Entra ID como entidad de certificación.
  4. Microsoft Entra ID valida el token de acceso en la solicitud de registro y verifica que la solicitud provenga de un administrador de identidad híbrida.
  5. A continuación, Microsoft Entra ID firma y emite un certificado de identidad digital al agente de autenticación.
    • La entidad de certificación raíz en Microsoft Entra ID se usa para firmar el certificado.

      Nota:

      Tenga en cuenta que esta entidad de certificación no está en el almacén de entidades de certificación raíz de confianza de Windows.

    • Esa entidad de certificación se usa solo con la característica de autenticación transferida. La entidad de certificación solo se usa para firmar CSR durante el registro del agente de autenticación.

    • Ningún otro servicio de Microsoft Entra usa esta entidad de certificación.

    • El sujeto del certificado (también llamado nombre distintivo o DN) se establece en su identificador de inquilino. Este DN es un GUID que identifica al inquilino de forma exclusiva. Asimismo, limita el uso del certificado a dicho inquilino.

  6. Microsoft Entra ID almacena la clave pública del agente de autenticación en una base de datos de Azure SQL Database. Solo Microsoft Entra ID puede acceder a la base de datos.
  7. El nuevo certificado que se emitió se almacena en el servidor local del almacén de certificados de Windows (concretamente, en CERT_SYSTEM_STORE_CURRENT_USER). Tanto el agente de autenticación como la aplicación Updater usan el certificado.

Inicialización del agente de autenticación

Cuando se inicia el agente de autenticación, ya sea por primera vez después del registro o después de reiniciar un servidor, este necesita comunicarse de forma segura con el servicio Microsoft Entra para poder empezar a aceptar solicitudes de validación de contraseña.

Diagram that depicts authentication agent initialization.

A continuación se muestra cómo se inicializan los agentes de autenticación:

  1. El agente de autenticación emite una solicitud de arranque saliente a Microsoft Entra ID.

    Esta solicitud se realiza a través del puerto 443 y se encuentra en un canal HTTPS autenticado mutuamente. La solicitud usa el mismo certificado que se emitió durante el registro del agente de autenticación.

  2. Para responder a esta solicitud, Microsoft Entra ID proporciona una clave de acceso a una cola de Azure Service Bus que sea única en el inquilino y que esté identificada mediante el identificador de inquilino.

  3. El agente de autenticación realiza una conexión HTTPS saliente persistente (a través del puerto 443) a la cola.

El agente de autenticación ya está listo para recuperar y administrar las solicitudes de validación de contraseñas.

Si tiene varios agentes de autenticación registrados en el inquilino, el procedimiento de inicialización garantiza que cada uno de ellos se conecte a la misma cola de Service Bus.

Cómo procesa la autenticación transferida las solicitudes de inicio de sesión

En el diagrama siguiente se muestra cómo la autenticación transferida procesa las solicitudes de inicio de sesión de los usuarios.

Diagram that depicts how pass-through authentication processes user sign-in requests.

Cómo controla la autenticación transferida una solicitud de inicio de sesión de usuario:

  1. Un usuario intenta acceder a una aplicación (por ejemplo, Outlook Web App).

  2. Si el usuario todavía no ha iniciado sesión, la aplicación redirige el explorador a la página de inicio de sesión de Microsoft Entra.

  3. El servicio STS de Microsoft Entra ID responde con la página de inicio de sesión de usuario.

  4. El usuario escribe su nombre de usuario en la página Inicio de sesión del usuario y después selecciona el botón Siguiente.

  5. El usuario escribe su contraseña en la página Inicio de sesión de usuario y después selecciona el botón Inicio de sesión.

  6. El nombre de usuario y la contraseña se envían al STS de Microsoft Entra en una solicitud POST HTTPS.

  7. El STS de Microsoft Entra recupera las claves públicas de todos los agentes de autenticación registrados en el inquilino de Azure SQL Database y las usa para cifrar la contraseña.

    Genera un valor de contraseña cifrado para cada agente de autenticación registrado en el inquilino.

  8. El STS de Microsoft Entra coloca la solicitud de validación de contraseña (que se compone del nombre de usuario y los valores de las contraseñas cifradas) en la cola de Service Bus específica del inquilino.

  9. Puesto que los agentes de autenticación inicializados están conectados de forma persistente a la cola de Service Bus, uno de los agentes de autenticación disponibles recupera la solicitud de validación de contraseña.

  10. El agente de autenticación usa un identificador para buscar el valor de contraseña cifrado específico de su clave pública. Descifra la clave pública mediante su clave privada.

  11. El agente de autenticación intenta validar el nombre de usuario y la contraseña en Windows Server AD con Win32 LogonUser API mediante el parámetro dwLogonType definido en LOGON32_LOGON_NETWORK.

    • Se trata de la misma API que usa Servicios de federación de Active Directory (AD FS) para que los usuarios inicien sesión en un escenario de inicio de sesión federado.
    • Esta API se basa en el proceso de resolución estándar de Windows Server para buscar el controlador de dominio.
  12. El agente de autenticación recibe el resultado de Windows Server AD, como el éxito, el nombre de usuario o la contraseña son incorrectos, o la contraseña ha expirado.

    Nota

    Si el agente de autenticación produce un error durante el proceso de inicio de sesión, se elimina completamente la solicitud de inicio de sesión. Las solicitudes de inicio de sesión no se entregan de un agente de autenticación local a otro agente de autenticación local. Estos agentes solo se comunican con la nube y no entre sí.

  13. El agente de autenticación reenvía el resultado al servicio STS de Microsoft Entra por un canal HTTPS saliente autenticado mutuamente a través del puerto 443. La autenticación mutua usa el certificado que se emitió al agente de autenticación durante el registro.

  14. STS de Microsoft Entra verifica que este resultado se pone en correlación con la solicitud de inicio de sesión específica del inquilino.

  15. STS de Microsoft Entra continúa con el procedimiento de inicio de sesión según la configuración. Por ejemplo, si la validación de contraseña es correcta, el usuario podría tener que someterse a MFA o se le podría redirigir de nuevo a la aplicación.

Seguridad operativa del agente de autenticación

Para garantizar la seguridad operativa de la autenticación transferida, Microsoft Entra ID renueva periódicamente los certificados de los agentes de autenticación. Microsoft Entra ID desencadena las renovaciones. Las renovaciones no se rigen por los propios agentes de autenticación.

Diagram that depicts how operational security works with pass-through authentication.

Para renovar la confianza de un agente de autenticación con Microsoft Entra ID:

  1. El agente de autenticación hace ping periódicamente a Microsoft Entra (cada pocas horas) para comprobar si es el momento de renovar su certificado. El certificado se renueva 30 días antes de que expire.

    Esta comprobación se realiza a través de un canal HTTPS autenticado mutuamente y usa el mismo certificado que se emitió durante el registro.

  2. Si el servicio indica que es el momento de renovar, el agente de autenticación genera un nuevo par de claves: una clave pública y una clave privada.

    • Estas claves se generan con el cifrado estándar de 2048 bits de RSA.
    • La clave privada nunca abandona el servidor local.
  3. A continuación, el agente de autenticación realiza una solicitud de renovación de certificados en Microsoft Entra ID a través de HTTPS. Los siguientes componentes se incluyen en la solicitud:

    • El certificado existente que se recupera de la ubicación CERT_SYSTEM_STORE_LOCAL_MACHINE en el almacén de certificados de Windows. No hay ningún administrador global implicado en este procedimiento, por lo que no se requiere ningún token de acceso para un administrador global.
    • La clave pública generada en el paso 2.
    • Un CSR. Esto sirve para solicitar un nuevo certificado de identidad digital que tenga Microsoft Entra ID como entidad de certificación.
  4. Microsoft Entra ID el certificado existente en la solicitud de renovación de certificado. Después, verifica que la solicitud proviene de un agente de autenticación registrado en el inquilino.

  5. Si el certificado existente sigue siendo válido, Microsoft Entra ID firma un nuevo certificado de identidad digital y lo emite de nuevo al agente de autenticación.

  6. Si ha expirado el certificado existente, Microsoft Entra ID elimina el agente de autenticación de lista de los agentes de autenticación registrados en el inquilino. A continuación, un administrador global o un administrador de identidades híbridas deben instalar y registrar manualmente un nuevo agente de autenticación.

    • Use la entidad de certificación raíz de Microsoft Entra ID para firmar el certificado.
    • El DN del certificado se establece en su identificador de inquilino, que es un GUID que identifica al inquilino de forma exclusiva. Es decir, el DN limita el certificado solo al inquilino.
  7. Microsoft Entra ID almacena la nueva clave pública del agente de autenticación en una base de datos de Azure SQL Database, a la que solo Microsoft Entra ID tiene acceso. Además, invalida la antigua clave pública asociada con el agente de autenticación.

  8. El nuevo certificado (que se emitió en el paso 5) se almacena en el servidor en el almacén de certificados de Windows (concretamente, en la ubicación CERT_SYSTEM_STORE_CURRENT_USER).

    Puesto que el procedimiento de renovación de confianza ocurre de manera no interactiva (sin la presencia del administrador global o administrador de identidades híbridas), el agente de autenticación ya no tiene acceso para actualizar el certificado existente en la ubicación CERT_SYSTEM_STORE_LOCAL_MACHINE.

    Nota:

    Tenga en cuenta que el certificado de la ubicación CERT_SYSTEM_STORE_LOCAL_MACHINE no se elimina durante este procedimiento.

  9. Desde este punto, el nuevo certificado se usa para la autenticación. Cada renovación posterior del certificado reemplaza al certificado de la ubicación CERT_SYSTEM_STORE_LOCAL_MACHINE.

Actualización automática del agente de autenticación

La aplicación del actualizador actualiza automáticamente el agente de autenticación cuando se lanza una nueva versión (con correcciones de errores o mejoras de rendimiento). Esta aplicación no controla las solicitudes de validación de contraseña del inquilino.

Microsoft Entra ID hospeda la nueva versión del software como un paquete de Windows Installer (MSI) firmado. El archivo MSI se firma mediante Microsoft Authenticode con SHA256 como algoritmo de resumen.

Diagram that shows how an authentication agent is auto updated.

Para actualizar automáticamente un agente de autenticación:

  1. La aplicación actualizadora hace ping cada hora a Microsoft Entra para comprobar si hay una nueva versión del agente de autenticación.

    Esta comprobación se realiza a través de un canal HTTPS autenticado mutuamente y usa el mismo certificado que se emitió durante el registro. El agente de autenticación y el actualizador comparten el certificado almacenado en el servidor.

  2. Si hay disponible una nueva versión, Microsoft Entra ID devuelve el archivo MSI firmado al actualizador.

  3. El actualizador verifica si el archivo MSI está firmado por Microsoft.

  4. El actualizador ejecuta el archivo MSI. En este proceso, la aplicación Updater:

    Nota:

    El actualizador funciona con privilegios del sistema local.

    1. Detiene el servicio del agente de autenticación.
    2. Instala la nueva versión del agente de autenticación en el servidor.
    3. Reinicia el servicio del agente de autenticación.

Nota:

Si tiene varios agentes de autenticación registrados en el inquilino, Microsoft Entra ID no renueva sus certificados ni los actualiza al mismo tiempo. En su lugar, Microsoft Entra ID renueva los certificados uno a la vez para garantizar la alta disponibilidad de las solicitudes de inicio de sesión.

Pasos siguientes