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

# Configurer Cisco Duo Security pour MFA

> Décrit comment configurer Cisco Duo Security pour 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) + "*****MASKED*****";
          }
          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="Avant de commencer">
  * Configurez votre compte Duo. Pour en savoir plus, consultez [Premiers pas avec Duo Docs](https://duo.com/docs/getting-started#getting-started).
  * Créez une [intégration trousse SDK Web double sécurité](https://duo.com/docs/duoweb) et enregistrez la **clé d’intégration**, la **clé secrète** et les informations d’identification du **nom d’hôte de l’API**.
</Card>

Cisco Duo est un fournisseur d’authentification multiforme et ne peut être utilisé sur votre locataire Auth0 que si tous les autres facteurs sont désactivés. Selon votre configuration, votre compte Duo peut prendre en charge divers moyens de vérification tels que les notifications poussées, les SMS, les OTP, rappels téléphoniques, et bien d’autres encore.

Vous ne pouvez pas non plus activer Duo si d’autres facteurs sont activés. Duo n’est disponible pour les utilisateurs que lorsqu’il est le seul facteur activé.

L’application demandera à l’utilisateur le deuxième facteur avec Duo, répertoriant les options que vous avez activées dans votre compte Duo.

Vos utilisateurs peuvent télécharger Duo depuis [Google Play](https://play.google.com/store/apps/details?id=com.duosecurity.duomobile) ou l’[App Store](https://itunes.apple.com/us/app/duo-mobile/id422663827?mt=8) à utiliser comme deuxième facteur.

## Configurer Duo

Pour configurer Duo Security, vous devez transmettre vos informations d’identification Duo à votre application dans l’<Tooltip href="/docs/fr-ca/glossary?term=auth0-dashboard" tip="Auth0 Dashboard
Principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire">Auth0 Dashboard</Tooltip>.

1. Accédez à [Dashboard > Sécurité > Authentification multi-facteurs > Duo Security](https://manage.auth0.com/#/security/mfa/duo) et activez-le.
2. Saisissez les informations dans les champs pour lier votre compte Duo à Auth0.
3. Sélectionnez **Enregistrer**.

## Utiliser les Actions pour activer Duo

Pour activer Duo dans une Action, passez `duo` comme le paramètre `provider` lorsque vous activez l’authentification multifacteur (<Tooltip href="/docs/fr-ca/glossary?term=multifactor-authentication" tip="Authentification multifacteur (MFA)
Processus d’authentification de l’utilisateur qui utilise un facteur en plus du nom d’utilisateur et du mot de passe, tel qu’un code par SMS." cta="Voir le glossaire">MFA</Tooltip>).

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

Duo ne propose pas d’option pour le comportement « Souvenez-vous de moi ». La session MFA de 30 jours est préconfigurée pour mémoriser l’utilisateur après la connexion initiale.

Pour exiger que vos utilisateurs se connectent systématiquement avec Duo, créez une règle en définissant le paramètre `allowRememberBrowser: false`.

## Modèle d’Actions pour Duo

Ce modèle offre un exemple et un point de départ pour activer l’authentification multifacteur (MFA) avec  [Duo Security](http://duosecurity.com/) lorsque certaines conditions sont remplies.

Lors de la première connexion, l’utilisateur peut inscrire l’appareil.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Vous devez créer deux intégrations dans Duo Security : une de type **Trousse SDK Web** et une de type **Trousse SDK Admin**.
</Callout>

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

	const CLIENTS_WITH_MFA = ['{yourClientId}'];
	// run only for the specified clients
	if (CLIENTS_WITH_MFA.includes(event.client.client_id)) {

		// uncomment the following if clause in case you want to request a second factor only from user's that have user_metadata.use_mfa === true
		//if (event.user.user_metadata && event.user.user_metadata.use_mfa){

		// optional, defaults to true. Set to false to force DuoSecurity every time.
		// See https://auth0.com/docs/multifactor-authentication/custom#change-the-frequency-of-authentication-requests for details
		api.multifactor.enable('duo', {
			providerOptions.ikey: configuration.DUO_IKEY,
			providerOptions.skey: configuration.DUO_SKEY,
			providerOptions.host: configuration.DUO_HOST,
			allowRememberBrowser: false
		})

		// optional. Use some attribute of the profile as the username in DuoSecurity. This is also useful if you already have your users enrolled in Duo.
		// username: event.user.nickname
	};
	// }

};`;

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

## Limitations actuelles

* Vous ne pouvez pas utiliser [un billet d’inscription MFA Auth0](/docs/fr-ca/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/create-custom-enrollment-tickets) pour inscrire des utilisateurs avec Duo. Embarquez ces utilisateurs depuis Duo lui-même.
* Si vous utilisez la connexion universelle, vous devez activer Duo dans une action en définissant `provider` sur `Duo`, comme décrit précédemment. Vous pouvez utiliser Duo ou le fournisseur Auth0 intégré de manière conditionnelle pour des applications spécifiques.

## En savoir plus

* [Dépannage des problèmes d’authentification multifacteur (MFA)](/docs/fr-ca/troubleshoot/authentication-issues/troubleshoot-mfa-issues)
