> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Describe cómo configurar Cisco Duo Security para MFA.

# Configurar Cisco Duo Security para MFA

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****ENMASCARADO*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

<Card title="Antes de empezar">
  * Configura tu cuenta de Duo. Para obtener más información, consulta [Getting Started on Duo Docs](https://duo.com/docs/getting-started#getting-started).
  * Crea una [integración de Duo Security Web SDK](https://duo.com/docs/duoweb) y anota las credenciales de **Integration Key**, **Secret Key,** y **API hostname**.
</Card>

Cisco Duo es un proveedor de autenticación multifactor y solo puede usarse en tu inquilino de Auth0 si todos los demás factores están deshabilitados. Tu cuenta de Duo puede admitir notificaciones push, SMS, OTP, devolución de llamada por teléfono y más, según tu configuración.

Tampoco puedes habilitar Duo si hay otros factores habilitados. Duo solo está disponible para los usuarios cuando es el único factor habilitado.

La aplicación solicitará al usuario el segundo factor con Duo y mostrará las opciones que hayas habilitado en tu cuenta de Duo.

Tus usuarios pueden descargar Duo desde [Google Play](https://play.google.com/store/apps/details?id=com.duosecurity.duomobile) o la [App Store](https://itunes.apple.com/us/app/duo-mobile/id422663827?mt=8) para usarlo como segundo factor.

<div id="configure-duo">
  ## Configurar Duo
</div>

Para configurar Duo Security, debe proporcionar las credenciales de Duo a la aplicación en el <Tooltip tip="Auth0 Dashboard: el producto principal de Auth0 para configurar sus servicios." cta="Ver glosario" href="/es/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>.

1. Vaya a [Dashboard > Security > Multi-factor Auth > Duo Security](https://manage.auth0.com/#/security/mfa/duo) y actívelo.
2. Introduzca la información en los campos para vincular su cuenta de Duo con Auth0.
3. Seleccione **Guardar**.

<div id="use-actions-to-enable-duo">
  ## Usa Actions para habilitar Duo
</div>

Para habilitar Duo dentro de una Action, pasa `duo` como parámetro `provider` al habilitar la <Tooltip tip="Autenticación multifactor (MFA): proceso de autenticación de usuarios que utiliza un factor además del nombre de usuario y la contraseña, como un código enviado por SMS." cta="Ver glosario" href="/es/docs/glossary?term=multi-factor+authentication">autenticación multifactor</Tooltip>.

```js lines theme={null}
exports.onExecutePostLogin = async (event, api) => {
  api.multifactor.enable('duo', { allowRememberBrowser: false });
};
```

Duo no ofrece una opción para el comportamiento de "Recuérdame". La sesión de MFA de 30 días está configurada de forma fija para recordar al usuario después del inicio de sesión inicial.

Para obligar a sus usuarios a iniciar sesión con Duo cada vez, cree una Rule con `allowRememberBrowser: false`.

<div id="actions-template-for-duo">
  ## Plantilla de Actions para Duo
</div>

Esta plantilla proporciona un ejemplo y un punto de partida para activar la autenticación multifactor con [Duo Security](http://duosecurity.com/) cuando se cumple una condición.

En el primer inicio de sesión, el usuario puede inscribir el dispositivo.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Debe crear dos integraciones en Duo Security: una de tipo **Web SDK** y otra de tipo **Admin SDK**.
</Callout>

export const codeExample = `exports.onExecutePostLogin = async (event, api) => {

	const CLIENTS_WITH_MFA = ['{yourClientId}'];
	// ejecutar solo para los clientes especificados
	if (CLIENTS_WITH_MFA.includes(event.client.client_id)) {

		// descomenta la siguiente condición if si quieres solicitar un segundo factor solo a los usuarios que tengan user_metadata.use_mfa === true
		//if (event.user.user_metadata && event.user.user_metadata.use_mfa){

		// opcional; el valor predeterminado es true. Establécelo en false para forzar DuoSecurity siempre.
		// Consulta https://auth0.com/docs/multifactor-authentication/custom#change-the-frequency-of-authentication-requests para obtener más información
		api.multifactor.enable('duo', {
			providerOptions.ikey: configuration.DUO_IKEY,
			providerOptions.skey: configuration.DUO_SKEY,
			providerOptions.host: configuration.DUO_HOST,
			allowRememberBrowser: false
		})

		// opcional. Usa algún atributo del perfil como username en DuoSecurity. Esto también es útil si tus usuarios ya están inscritos en Duo.
		// username: event.user.nickname
	};
	// }

};`;

<AuthCodeBlock children={codeExample} language="js" />

<div id="current-limitations">
  ## Limitaciones actuales
</div>

* No puede usar [Auth0 MFA Enrollment Tickets](/es/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/create-custom-enrollment-tickets) para inscribir usuarios con Duo. Inscriba a esos usuarios directamente en Duo.
* Si usa <Tooltip tip="Universal Login: Su aplicación redirige a Universal Login, alojado en el servidor de autorización de Auth0, para verificar la identidad de un usuario." cta="Ver glosario" href="/es/docs/glossary?term=Universal+Login">Universal Login</Tooltip>, debe habilitar Duo en una Action con `provider` establecido en `duo`, como se describió anteriormente. Puede usar de forma condicional Duo o el proveedor integrado de Auth0 según la aplicación.
