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

# Activer et configurer l’authentification par clé d’accès pour les connexions de base de données

> Utilisez le Auth0 Dashboard pour activer les clés d’accès comme méthode d’authentification sur une connexion de base de données et configurer l’interface de l’authentification par clé d’accès, l’inscription progressive et l’inscription locale.

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "bêta",
    "ea": "Accès anticipé"
  };
  const stageText = stageTextMap[stage] || "une phase de lancement du produit";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>Cette fonctionnalité est offerte avec les forfaits {linkify(`${plans}`, "https://auth0.com/pricing")}. </>}
            {contact && "Pour y participer, communiquez avec " + contact + ". "}
            {terms && <>En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit énoncées dans le {linkify("Master Subscription Agreement", "https://www.okta.com/legal")} d’Okta.</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>La fonctionnalité {feature} est en {linkify(stageText, prsLink)}.</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<div id="prerequisites">
  ## Prérequis
</div>

Avant de pouvoir activer les clés d’accès pour une connexion de base de données, vous devez satisfaire aux prérequis suivants.

Dans votre tenant, vous devez :

* [Activer Universal Login](/docs/fr-ca/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/universal-experience).

* [Activer l’authentification Identifier First](/docs/fr-ca/authenticate/login/auth0-universal-login/identifier-first).

* Désactiver les pages de connexion personnalisées. Dans le Auth0 Dashboard, accédez à [Branding > Universal Login > Manage Classic Login > Login](https://manage.auth0.com/#/login_page), puis désactivez la bascule **Custom Login Page**.

Pour votre connexion de base de données, vous devez :

* Soit désactiver l’[obligation d’utiliser des noms d’utilisateur](/docs/fr-ca/authenticate/database-connections/require-username) pour votre connexion de base de données, soit [activer Flexible Identifiers](/docs/fr-ca/authenticate/database-connections/flexible-identifiers-and-attributes).

* Soit désactiver l’[utilisation de votre propre base de données](/docs/fr-ca/authenticate/database-connections/custom-db/create-db-connection), soit activer l’[importation d’utilisateurs](/docs/fr-ca/authenticate/database-connections/custom-db/templates) (**Import Users to Auth0**).

  Pour utiliser votre propre base de données sans activer l’importation d’utilisateurs (**Import Users to Auth0**), suivez les [prérequis supplémentaires ci-dessous pour mettre à jour vos scripts d’action de base de données](#early-access-use-your-own-database-without-user-import-enabled).

Les connexions de base de données pour lesquelles les clés d’accès sont activées doivent aussi toujours avoir les mots de passe activés. Cela garantit que les utilisateurs peuvent continuer à accéder à leurs comptes à partir de navigateurs et d’appareils plus anciens qui ne prennent peut-être pas encore en charge les clés d’accès.

### <Badge color="yellow">Accès anticipé</Badge> Utilisez votre propre base de données sans activer l’importation des utilisateurs

L’authentification par clé d’accès prend maintenant en charge l’utilisation de votre propre base de données sans activer l’importation des utilisateurs. Vous pouvez ainsi offrir l’authentification par clé d’accès avec des connexions de base de données personnalisées tout en continuant à authentifier les utilisateurs auprès de votre magasin d’utilisateurs externe.

Comme condition préalable, vous devez mettre à jour les scripts d’action de base de données Get User et Create [scripts d’action de base de données](/docs/fr-ca/authenticate/database-connections/custom-db/templates) pour prendre en charge la gestion des utilisateurs à la fois par identifiant et par `user_id`.

<Accordion title="Comment mettre à jour les scripts d’action de base de données pour activer les clés d’accès avec votre propre base de données sans activer l’importation des utilisateurs">
  <ReleaseStageNotice feature="clés d’accès pour utiliser votre propre base de données sans activer l’importation des utilisateurs" stage="ea" terms="true" />

  1. Vérifiez d’abord que l’importation des utilisateurs est désactivée pour votre connexion de base de données.

  2. [Activez la prise en charge de l’objet `context`](/docs/fr-ca/authenticate/database-connections/custom-db/create-db-connection#enable-context-object). Le paramètre `context` sera ainsi disponible dans vos scripts d’action de base de données, ce qui est nécessaire pour prendre en charge les recherches à la fois par identifiant et par `user_id`.

  3. Le script Get User doit prendre en charge à la fois la recherche par identifiant (`context.identifierType` n’est pas défini) et la recherche par `user_id` (`context.identifierType` est défini à `user_id`).

     Mettez à jour votre [script d’action de base de données Get User](/docs/fr-ca/authenticate/database-connections/custom-db/templates/get-user) en remplaçant `getByEmail` par la fonction `getUser` fournie :

     ```js theme={null}
     function getByEmail(email, callback) { // [!code --] 
     function getUser(identifierValue, context, callback) { // [!code ++] 
         const axios = require('axios');

         // Récupérer l’identifiant utilisateur à partir de context // [!code ++]
         const identifierType = context.identifierType || 'email'; // [!code ++]

         // Remplacez par votre endpoint externe de récupération d’utilisateur 
         const url = configuration.baseAPIUrl
                     + `/get_user/${email}?type=email`; // [!code --]
                     + `/get_user/${identifierValue}?type=${identifierType}`; // [!code ++]

         axios.get(url)
             .then(response => {
                 // Retourner l’objet utilisateur s’il est trouvé
                 const user = response.data; 
                 return callback(null, {
                     user_id: user.user_id,
                     email: user.email
                     // Inclure éventuellement d’autres attributs utilisateur 
                 });
             })
             .catch(error => {
                 // Gérer la réponse d’erreur 
                 return callback(null);
             });
     }
     ```

  4. Le script Create doit renvoyer un profil utilisateur valide. Lorsque les attributs sont activés, le profil utilisateur renvoyé doit respecter la même validation que les scripts Login et Get User. Lorsque les attributs ne sont pas activés, le profil utilisateur renvoyé doit inclure la valeur `user_id`.

     Mettez à jour votre [script d’action de base de données Create](/docs/fr-ca/authenticate/database-connections/custom-db/templates/create) pour renvoyer un profil utilisateur valide :

     ```js theme={null}
     function create(user, callback) {
         const axios = require('axios');

         // Remplacez par votre endpoint externe de création d’utilisateur
         const url = 'https://example.com/api/create'; 

         const payload = {
             email: user.email
             // Ajouter d’autres propriétés utilisateur au besoin
         };

         axios.post(url, payload)
             .then(response => {
                 // Retourner l’objet utilisateur s’il est créé
                 const createdUser = response.data; 

                 return callback(null, {
                     user_id: createdUser.user_id,
                     email:createdUser.email
                     // Inclure éventuellement d’autres attributs utilisateur
                 });
             })
             .catch(error => {
                 // Gérer la réponse d’erreur 
                 return callback(error);
             }); 
     }
     ```
</Accordion>

<div id="configure-passkeys">
  ## Configurer les clés d’accès
</div>

Une fois les prérequis remplis, vous pouvez utiliser le Auth0 Dashboard pour activer et configurer les clés d’accès.

<Steps titleSize="h3">
  <Step title="Ouvrir la configuration des clés d’accès">
    Accédez à [Authentication > Database](https://manage.auth0.com/#/connections/database), puis sélectionnez le nom de la connexion de base de données que vous voulez modifier.

    Sélectionnez l’onglet **Méthodes d’authentification**. Ensuite, dans la section **Clé d’accès**, sélectionnez **Configurer** pour ouvrir le panneau **Clé d’accès**.

    Si ce n’est pas déjà fait, cochez **Activer les clés d’accès**.
  </Step>

  <Step title="Choisir l’interface d’authentification par clé d’accès">
    L’interface d’authentification par clé d’accès détermine comment les utilisateurs peuvent déclencher l’authentification par clé d’accès pendant la connexion et l’inscription.

    Dans la section **interface d’authentification par clé d’accès**, choisissez l’une des trois options :

    | interface d’authentification par clé d’accès     | Description                                                                                                                                                                                                                                                                                                                    |
    | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | Bouton de clé d’accès et remplissage automatique | Les utilisateurs peuvent s’authentifier avec des clés d’accès au moyen du remplissage automatique ou du bouton de clé d’accès.                                                                                                                                                                                                 |
    | Remplissage automatique                          | Les utilisateurs doivent se connecter à l’aide de la fonction de remplissage automatique de leur navigateur pour utiliser des clés d’accès. Le remplissage automatique permet aux utilisateurs de sélectionner un compte enregistré dans un menu déroulant au lieu de saisir manuellement leurs informations d’identification. |
    | Bouton de clé d’accès                            | Les utilisateurs doivent sélectionner le bouton **Poursuivre avec une clé d’accès** dans l’invite de connexion.                                                                                                                                                                                                                |

    Si le remplissage automatique n’est pas offert dans le navigateur de l’utilisateur, les utilisateurs peuvent se connecter au moyen du bouton de clé d’accès (s’il est activé) ou avec leurs identifiants par mot de passe.
  </Step>

  <Step title="Activer l’inscription progressive (facultatif)">
    L’inscription progressive invite les utilisateurs à créer une clé d’accès (s’ils ne l’ont pas déjà fait) après s’être connectés avec un identifiant et un mot de passe. Cette étape n’est pas obligatoire, et les utilisateurs peuvent choisir de reporter cette action tous les 30 jours.

    L’inscription progressive peut être utile lors de la migration des utilisateurs vers les clés d’accès, afin de faciliter la transition entre les méthodes d’authentification.

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      Lors de la création d’un compte au moyen d’un [courriel d’invitation à une Organization](/docs/fr-ca/manage-users/organizations/configure-organizations/invite-members), les utilisateurs ne peuvent pas choisir l’authentification par clé d’accès. Vous pouvez activer l’inscription progressive afin que ces utilisateurs puissent créer des clés d’accès après s’être connectés avec un mot de passe.
    </Callout>

    La case **Progressive Enrollment** est cochée par défaut, mais vous pouvez la décocher pour la désactiver.
  </Step>

  <Step title="Activer l’inscription locale (facultatif)">
    Lorsqu’un utilisateur de clé d’accès se connecte à un nouvel appareil à l’aide d’une clé d’accès interappareil, l’inscription locale l’invite à créer une clé d’accès locale sur ce nouvel appareil. Cette étape n’est pas obligatoire; les utilisateurs peuvent donc choisir de ne pas créer de clé d’accès locale.

    La case **Local Enrollment** est cochée par défaut, mais vous pouvez la décocher pour la désactiver.
  </Step>

  <Step title="Enregistrer les paramètres">
    Sélectionnez **Enregistrer** pour sauvegarder vos modifications de configuration.

    Si le bouton d’enregistrement est désactivé, utilisez la section **Passkey Authentication Prerequisites** en haut du panneau **Clé d’accès** pour confirmer que votre tenant et votre connexion de base de données sont correctement configurés.
  </Step>
</Steps>

<div id="next-steps">
  ## Prochaines étapes
</div>

Pour offrir la meilleure expérience possible aux utilisateurs finaux avec les clés d’accès, vous pouvez envisager les étapes supplémentaires suivantes.

<div id="configure-relying-party-id-rp-id">
  ### Configurer l’ID de partie de confiance (RP ID)
</div>

Pour permettre aux utilisateurs d’utiliser une seule clé d’accès pour s’authentifier dans tous les sous-domaines (par exemple, à la fois une application native hébergée à `app.example.com` et une application web hébergée à `login.example.com`), vous pouvez définir le RP ID sur le domaine parent ou le domaine racine.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Lorsque vous personnalisez le RP ID dans Auth0 Dashboard ou la Management API, toutes les clés d’accès associées aux autres domaines deviendront inutilisables, et vos utilisateurs finaux devront se réinscrire.
</Callout>

Le domaine de votre application doit être ajouté à la liste **Allowed Origins (CORS)** dans les [paramètres de l’application](https://manage.auth0.com/#/applications) pour que le RP ID fonctionne correctement.

Pour définir le RP ID dans Auth0 Dashboard :

1. Accédez à **[Auth0 Dashboard > Tenant Settings](https://manage.auth0.com/#/tenant/relying_party_ids)**.
2. Sélectionnez l’onglet **Relying Party IDs**.
3. Choisissez **Edit Relying Party ID**.
4. Entrez le domaine.
5. Si ce RP ID correspond au domaine racine, cochez la case pour définir ce domaine comme domaine par défaut de votre tenant.
6. Sélectionnez **Save**.
7. Ensuite, accédez à l’application pour laquelle vous souhaitez définir un ID de partie de confiance.
8. Sélectionnez les paramètres de l’application.
9. Dans la section **Application URIs**, ajoutez le domaine de votre application à Allowed Origins (CORS).
10. Sélectionnez **Save**.

<div id="configure-a-custom-domain">
  ### Configurer un domaine personnalisé
</div>

Lorsqu’un utilisateur enregistre une clé d’accès, celle-ci est associée au domaine de la <Tooltip tip="Entité (comme un service ou une application) qui dépend d’un fournisseur d’identité tiers pour authentifier un utilisateur." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=relying+party">partie de confiance</Tooltip>. Si le nom de domaine change, toutes les clés d’accès associées à l’ancien domaine deviennent invalides.

Envisagez de configurer un [domaine personnalisé](/docs/fr-ca/customize/custom-domains) pour votre tenant avant d’activer les clés d’accès afin d’éviter toute interruption pour les utilisateurs finaux.

Si [plusieurs domaines personnalisés](/docs/fr-ca/customize/custom-domains/multiple-custom-domains) sont activés sur votre tenant, Auth0 maintient une relation un à un entre un domaine et la clé d’accès associée à ce domaine.

Les utilisateurs ne peuvent enregistrer une clé d’accès que pour un seul domaine (le premier avec lequel ils l’enregistrent) parmi les multiples domaines personnalisés du tenant. Pour la connexion sans mot de passe, le domaine personnalisé sélectionné doit figurer dans le lien magique du flux de connexion sans mot de passe.

<div id="bypass-multi-factor-authentication">
  ### Contourner l’authentification multifacteur
</div>

Si l’[authentification multifacteur](/docs/fr-ca/secure/multi-factor-authentication) est activée, le comportement par défaut exige d’effectuer une vérification MFA, peu importe si la méthode d’authentification utilisée est un mot de passe ou une clé d’accès.

Étant donné le niveau de sécurité élevé des clés d’accès, vous pouvez [ignorer l’AMF pour l’authentification par clé d’accès à l’aide d’une Action post-login](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger#reduce-friction-with-passkeys).
