Configuración de la protección de bloqueo de extranet de AD FS

En AD FS en Windows Server 2012 R2, se introdujo una característica de seguridad denominada Bloqueo de extranet. Con esta característica, AD FS "detiene" la autenticación de una cuenta de usuario "malintencionada" desde fuera durante un período de tiempo. Esto evita que las cuentas de usuario se bloqueen en Active Directory. Además de proteger a los usuarios de un bloqueo de cuenta en AD, el bloqueo de extranet de AD FS también protege contra ataques de adivinación de contraseña por fuerza bruta.

Nota

Esta característica solo funciona en un escenario de extranet donde las solicitudes de autenticación pasan por el Proxy de aplicación web, y solo se aplica a la autenticación con nombre de usuario y contraseña.

Ventajas del bloqueo de extranet

El bloqueo de extranet proporciona las siguientes ventajas clave:

  • Protege las cuentas de usuario frente a ataques por fuerza bruta, en los que un atacante intenta adivinar la contraseña de un usuario mediante el envío continuo de solicitudes de autenticación. En este caso, AD FS bloquea el acceso de la cuenta de usuario malintencionada a la extranet.
  • Protege sus cuentas de usuario frente al bloqueo de cuentas malintencionadas, donde un atacante quiere bloquear una cuenta de usuario mediante el envío de solicitudes de autenticación con contraseñas incorrectas. En este caso, aunque AD FS bloquea el acceso de la cuenta de usuario a la extranet, la cuenta de usuario real de AD no está bloqueada y el usuario todavía puede acceder a los recursos corporativos dentro de la organización. Esto se conoce como bloqueo parcial.

Cómo funciona

Hay tres opciones en AD FS que debe configurar para habilitar esta característica:

  • EnableExtranetLockout <valor booleano>: establezca este valor booleano en True si desea habilitar el bloqueo de extranet.
  • ExtranetLockoutThreshold <valor entero>: define el número máximo de intentos con una contraseña incorrecta. Una vez alcanzado el umbral, AD FS rechaza inmediatamente las solicitudes de la extranet sin intentar ponerse en contacto con el controlador de dominio para la autenticación, al margen de si la contraseña es correcta o incorrecta, hasta que transcurre la ventana de observación de la extranet. Esto significa que el valor del atributo badPwdCount de una cuenta de AD no aumenta mientras la cuenta está bloqueada parcialmente.
  • ExtranetObservationWindow <intervalo de tiempo>: determina cuánto tiempo se bloquea parcialmente la cuenta de usuario. AD FS vuelve a iniciar la autenticación de nombre de usuario y contraseña cuando transcurre este período de tiempo. AD FS usa el atributo badPasswordTime de AD como referencia para determinar si ha transcurrido o no la ventana de observación de la extranet. El período ha transcurrido si la hora actual es mayor que la suma de badPasswordTime y ExtranetObservationWindow.

Nota

El bloqueo de extranet de AD FS funciona independientemente de las directivas de bloqueo de AD. Sin embargo, se recomienda encarecidamente establecer el valor del parámetro ExtranetLockoutThreshold en un valor menor que el umbral de bloqueo de cuentas de AD. Si no se hace así, AD FS no puede proteger las cuentas para que no se bloqueen en Active Directory.

El siguiente es un ejemplo en el que se habilita el bloqueo de extranet con un máximo de 15 intentos con una contraseña incorrecta y una duración del bloqueo parcial de 30 minutos:

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (new-timespan -Minutes 30)

Esta configuración se aplica a todos los dominios que el servicio AD FS puede autenticar. El funcionamiento consiste en que, cuando AD FS recibe una solicitud de autenticación, accede al controlador de dominio principal (PDC) a través de una llamada LDAP y busca el atributo badPwdCount para el usuario en el PDC. Si AD FS encuentra que el valor de badPwdCount es mayor o igual que el valor de ExtranetLockoutThreshold y el tiempo definido en la ventana de observación de la extranet aún no ha transcurrido, AD FS rechaza la solicitud inmediatamente, lo que significa que, al margen de que el usuario escriba una contraseña correcta o incorrecta desde la extranet, el inicio de sesión no se produce porque AD FS no envía las credenciales a AD. AD FS no mantiene ningún estado con respecto a badPwdCount ni a cuentas de usuario bloqueadas. AD FS utiliza AD para todo el seguimiento del estado.

Advertencia

Cuando el bloqueo de extranet de AD FS en Server 2012 R2 está habilitado, AD FS valida todas las solicitudes de autenticación a través de WAP en el PDC. Cuando el PDC no está disponible, los usuarios no pueden autenticarse desde la extranet.

Server 2016 ofrece un parámetro adicional que permite a AD FS recurrir a otro controlador de dominio cuando el PDC no está disponible:

  • ExtranetLockoutRequirePDC <valor booleano>: cuando está habilitado: el bloqueo de extranet requiere un controlador de dominio principal (PDC). Cuando está deshabilitado, el bloqueo de extranet recurre a otro controlador de dominio si el PDC no está disponible.

Use el siguiente comando de Windows PowerShell para configurar el bloqueo de extranet de AD FS en Server 2016:

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (new-timespan -Minutes 30) -ExtranetLockoutRequirePDC $false

Trabajo con la directiva de bloqueo de Active Directory

La característica Bloqueo de extranet de AD FS funciona independientemente de la directiva de bloqueo de AD. Sin embargo, debe asegurarse de que el bloqueo de extranet esté bien configurado para que pueda cumplir su propósito de seguridad con la directiva de bloqueo de AD.

Echemos un vistazo primero a la directiva de bloqueo de AD. Hay tres opciones de configuración relacionadas con la directiva de bloqueo en AD:

  • Umbral de bloqueo de cuenta: esta opción de configuración es similar a ExtranetLockoutThreshold en AD FS. Determina el número de intentos de inicio de sesión erróneos que harán que una cuenta de usuario se bloquee. Para proteger las cuentas de usuario frente a un ataque de bloqueo de cuenta malintencionado, establezca ExtranetLockoutThreshold en AD FS en un valor menor que el de Umbral de bloqueo de cuenta en AD.
  • Duración del bloqueo de cuenta: esta opción de configuración determina cuánto tiempo se bloquea una cuenta de usuario. No tiene gran importancia en esta conversación, ya que el bloqueo de extranet siempre debe ocurrir antes de que se produzca el bloqueo de AD si está configurado correctamente.
  • Restablecer el contador de bloqueos tras: esta opción de configuración determina cuánto tiempo debe transcurrir desde el último error de inicio de sesión del usuario antes de que badPwdCount se restablezca en 0. Para que la característica Bloqueo de extranet de AD FS funcione bien con la directiva de bloqueo de AD, asegúrese de que el valor de ExtranetObservationWindow en AD FS sea mayor que el valor de Restablecer el contador de bloqueos tras en AD. Los ejemplos siguientes explican por qué.

Echemos un vistazo a dos ejemplos y veamos cómo cambia badPwdCount a lo largo del tiempo en función de diferentes valores y estados. Supongamos que en ambos ejemplos el valor de Umbral de bloqueo de cuenta es 4 y el de ExtranetLockoutThreshold es 2. La flecha roja representa un intento con una contraseña incorrecta, la flecha verde representa un intento con una contraseña correcta. En el ejemplo 1, ExtranetObservationWindow es mayor que Restablecer el contador de bloqueos tras. En el ejemplo 2, ExtranetObservationWindow es menor que Restablecer el contador de bloqueos tras.

Ejemplo 1

Diagram that shows how badPwdCount changes over time based on different settings and states.

Ejemplo 2

Example1

Como puede ver en lo anterior, hay dos situaciones en las que badPwdCount se restablece en 0. Una es cuando se produce un inicio de sesión correcto. La otra es cuando llega el momento de restablecer este contador como indica el valor de Restablecer el contador de bloqueos tras. Cuando Restablecer el contador de bloqueos tras es menor que ExtranetObservationWindow, una cuenta no tiene ningún riesgo de ser bloqueada por AD. Sin embargo, si Restablecer el contador de bloqueos tras es mayor que ExtranetObservationWindow, existe la posibilidad de que AD bloquee una cuenta, pero "con retraso". AD puede tardar un tiempo en bloquear una cuenta en función de la configuración, ya que AD FS solo permite un intento con contraseña incorrecta durante la ventana de observación hasta que badPwdCount alcanza el Umbral de bloqueo de cuenta.

Para obtener más información, consulte Configuración del bloqueo de cuentas.

Problemas conocidos

Hay un problema conocido por el que la cuenta de usuario de AD no se puede autenticar en AD FS porque el atributo badPwdCount no se replica en el controlador de dominio que ADFS consulta. Para obtener más información, consulte 2971171. Aquí puede consultar todas las QFE de AD FS que se han publicado hasta ahora.

Puntos clave que debe recordar:

  • La característica Bloqueo de extranet solo funciona en un escenario de extranet en el que las solicitudes de autenticación pasan por el Proxy de aplicación web.
  • La característica Bloqueo de extranet solo se aplica a la autenticación con nombre de usuario y contraseña.
  • AD FS no hace ningún seguimiento de badPwdCount ni de los usuarios que se bloquean parcialmente. AD FS utiliza AD para todo el seguimiento del estado.
  • AD FS busca en el PDC el atributo badPwdCount para el usuario por medio de una llamada LDAP en cada intento de autenticación.
  • Las versiones de AD FS anteriores a la de 2016 producirán un error si no pueden acceder al PDC. AD FS 2016 introdujo mejoras que permiten que AD FS recurra a otros controladores de dominio en el caso de que el PDC no esté disponible.
  • AD FS permite solicitudes de autenticación desde la extranet si badPwdCount es menor que ExtranetLockoutThreshold.
  • Si badPwdCount es mayor o igual que ExtranetLockoutThreshold Y la suma de badPasswordTime y ExtranetObservationWindow es menor que la hora actual, AD FS rechaza las solicitudes de autenticación de la extranet.
  • Para evitar el bloqueo de cuentas malintencionadas, debe asegurarse de que ExtranetLockoutThreshold es menor que Umbral de bloqueo de cuenta Y ExtranetObservationWindow es mayor que Restablecer el contador de bloqueos tras