> ## 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.

> Décrit comment configurer Cisco Duo Security pour l’authentification multifacteur (MFA).

# Configurer Cisco Duo Security pour l’authentification multifacteur (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 [Getting Started on Duo Docs](https://duo.com/docs/getting-started#getting-started).
  * Créez une [intégration Duo Security Web SDK](https://duo.com/docs/duoweb) et notez les identifiants **Integration Key**, **Secret Key,** et **API hostname**.
</Card>

Cisco Duo est un fournisseur d’authentification polyvalent et ne peut être utilisé dans votre locataire Auth0 que si tous les autres facteurs sont désactivés. Selon votre configuration, votre compte Duo peut prendre en charge les notifications push, les SMS, les OTP, le rappel téléphonique, et plus encore.

Vous ne pouvez pas non plus activer Duo si d’autres facteurs sont activés. Duo n’est offert aux utilisateurs que lorsqu’il s’agit du seul facteur activé.

L’application demandera à l’utilisateur son deuxième facteur avec Duo en affichant les options que vous avez activées dans votre compte Duo.

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

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

Pour configurer Duo Security, vous devez fournir vos identifiants Duo à votre application dans le <Tooltip tip="Auth0 Dashboard : console principale d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>.

1. Accédez à [Dashboard > Security > Multi-factor Auth > Duo Security](https://manage.auth0.com/#/security/mfa/duo) et activez-le.
2. Entrez les renseignements dans les champs pour lier votre compte Duo à Auth0.
3. Sélectionnez **Save**.

<div id="use-actions-to-enable-duo">
  ## Utiliser Actions pour activer Duo
</div>

Pour activer Duo dans une Action, passez `duo` comme valeur du paramètre `provider` lorsque vous activez l’<Tooltip tip="Authentification multifacteur (MFA) : processus d’authentification de l’utilisateur qui repose sur un facteur en plus du nom d’utilisateur et du mot de passe, comme un code envoyé par SMS." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=multi-factor+authentication">authentification multifacteur</Tooltip>.

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

Duo n’offre pas d’option de type "Se souvenir de moi". La session MFA de 30 jours est codée en dur pour mémoriser l’utilisateur après la connexion initiale.

Pour obliger vos utilisateurs à se connecter avec Duo à chaque fois, créez une Rule avec `allowRememberBrowser: false`.

<div id="actions-template-for-duo">
  ## Modèle d’Actions pour Duo
</div>

Ce modèle fournit un exemple et un point de départ pour déclencher l’authentification multifacteur avec [Duo Security](http://duosecurity.com/) lorsqu’une condition est remplie.

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

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

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

	const CLIENTS_WITH_MFA = ['{yourClientId}'];
	// exécuter uniquement pour les applications spécifiées
	if (CLIENTS_WITH_MFA.includes(event.client.client_id)) {

		// décommentez la clause if suivante si vous souhaitez demander un deuxième facteur uniquement aux utilisateurs dont user_metadata.use_mfa === true
		//if (event.user.user_metadata && event.user.user_metadata.use_mfa){

		// facultatif; la valeur par défaut est true. Définissez false pour forcer DuoSecurity à chaque fois.
		// Consultez https://auth0.com/docs/multifactor-authentication/custom#change-the-frequency-of-authentication-requests pour en savoir plus.
		api.multifactor.enable('duo', {
			providerOptions.ikey: configuration.DUO_IKEY,
			providerOptions.skey: configuration.DUO_SKEY,
			providerOptions.host: configuration.DUO_HOST,
			allowRememberBrowser: false
		})

		// facultatif. Utilisez un attribut du profil comme nom d’utilisateur dans DuoSecurity. C’est aussi utile si vos utilisateurs sont déjà inscrits à Duo.
		// username: event.user.nickname
	};
	// }

};`;

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

<div id="current-limitations">
  ## Limitations actuelles
</div>

* Vous ne pouvez pas utiliser les [tickets d’inscription MFA Auth0](/fr-CA/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/create-custom-enrollment-tickets) pour inscrire des utilisateurs avec Duo. Inscrivez plutôt ces utilisateurs directement dans Duo.
* Si vous utilisez <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur le serveur d’autorisation d’Auth0, pour vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Universal+Login">Universal Login</Tooltip>, vous devez activer Duo dans une Action où `provider` est défini sur `duo`, comme décrit précédemment. Vous pouvez utiliser Duo ou le fournisseur Auth0 intégré de façon conditionnelle pour certaines applications.
