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

# Enregistrer un nouvel utilisateur avec une clé d’accès

> Lance l’enregistrement d’une clé d’accès pour un nouvel utilisateur lors de l’inscription. Renvoie les paramètres de création WebAuthn et l’`auth_session` nécessaire aux utilisateurs pour terminer l’inscription.

<div id="endpoint">
  ## Point de terminaison
</div>

`POST /passkey/register`

Initie l’enregistrement d’une clé d’accès pour un nouvel utilisateur lors de l’inscription. Le point de terminaison crée une session d’inscription de clé d’accès, vérifie que le profil utilisateur fourni respecte les attributs d’inscription de la connexion à la base de données et renvoie les paramètres de création WebAuthn que votre application transmet à l’authentificateur de plateforme. Une fois que l’authentificateur renvoie une attestation, vous terminez l’inscription en échangeant l’assertion à `/oauth/token` à l’aide du type d’autorisation par clé d’accès.

<div id="remarks">
  ### Remarques
</div>

* Les [types d’autorisation](/docs/fr-ca/get-started/applications/application-settings#grant-types) de l’application doivent inclure : `urn:okta:params:oauth:grant-type:webauthn`.
* L’application doit être une [application de première partie](https://auth0.com/docs/get-started/applications/confidential-and-public-applications). Les applications tierces ne sont pas autorisées à appeler ce point de terminaison.
* L’application doit être conforme à OIDC.
* La requête doit être adressée à un [domaine personnalisé](https://auth0.com/docs/customize/custom-domains) configuré pour votre tenant. Les requêtes adressées au domaine Auth0 par défaut (`{tenant}.auth0.com`) sont rejetées.
* `user_profile` doit contenir tous les identifiants marqués comme `required` pour l’inscription sur la connexion (généralement `email`, `phone_number` ou `username`). Les identifiants supplémentaires peuvent être `optional`.
* Un utilisateur est considéré comme existant si l’un des identifiants configurés correspond à un utilisateur existant; si un identifiant soumis correspond à un utilisateur existant, la requête échoue avec `invalid_request`.

<div id="request-body">
  ## Corps de la requête
</div>

<ParamField body="client_id" type="string" required>
  Le `client_id` de votre application.
</ParamField>

<ParamField body="client_secret" type="string">
  Le `client_secret` de votre application. Obligatoire pour les applications confidentielles qui utilisent la méthode d’authentification au point de terminaison de jetons `client_secret_post`.
</ParamField>

<ParamField body="realm" type="string">
  Nom de la connexion à la base de données auprès de laquelle l’utilisateur s’inscrit. S’il est omis, Auth0 utilise la connexion à la base de données par défaut de votre tenant pour l’application.
</ParamField>

<ParamField body="organization" type="string">
  ID de l’[Auth0 Organization](https://auth0.com/docs/manage-users/organizations) à laquelle l’utilisateur se connecte. Obligatoire lorsque `organization_usage` de l’application est défini à `require`.
</ParamField>

<ParamField body="user_profile" type="object" required>
  Attributs de profil du nouvel utilisateur. Les propriétés doivent correspondre aux attributs d’inscription (`required` et `optional`) configurés sur la connexion à la base de données. Toute propriété non reconnue entraîne l’échec de la requête avec `invalid_request`.

  <Expandable title="propriétés">
    <ParamField body="email" type="string">
      Adresse courriel de l’utilisateur.
    </ParamField>

    <ParamField body="phone_number" type="string">
      Numéro de téléphone de l’utilisateur au format E.164 (1 à 30 caractères, préfixe international `+`). Par exemple, `+14155552671`.
    </ParamField>

    <ParamField body="username" type="string">
      Nom d’utilisateur. Validé selon la politique de nom d’utilisateur de la connexion (longueur et caractères autorisés).
    </ParamField>

    <ParamField body="name" type="string">
      Nom complet (1 à 300 caractères).
    </ParamField>

    <ParamField body="given_name" type="string">
      Prénom (1 à 150 caractères).
    </ParamField>

    <ParamField body="family_name" type="string">
      Nom de famille (1 à 150 caractères).
    </ParamField>

    <ParamField body="nickname" type="string">
      Surnom (1 à 300 caractères).
    </ParamField>

    <ParamField body="picture" type="string">
      URL pointant vers la photo de profil de l’utilisateur.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="user_metadata" type="object">
  Métadonnées utilisateur facultatives à associer au nouvel utilisateur. Jusqu’à 10 champs de type chaîne.
</ParamField>

<div id="response">
  ## Réponse
</div>

Une réponse réussie contient les paramètres de création WebAuthn et une valeur `auth_session` qui associe l’attestation ultérieure à cette requête d’enregistrement.

<ResponseField name="auth_session" type="string">
  Identifiant de session opaque. Transmettez-le dans la requête d’échange de jeton qui termine l’enregistrement de la clé d’accès.
</ResponseField>

<ResponseField name="authn_params_public_key" type="object">
  `PublicKeyCredentialCreationOptions` WebAuthn à utiliser avec l’authentificateur de plateforme.

  <Expandable title="propriétés">
    <ResponseField name="challenge" type="string">
      Challenge généré par Auth0 que l’authentificateur doit signer lors de l’attestation.
    </ResponseField>

    <ResponseField name="timeout" type="integer">
      Durée de validité du challenge en millisecondes.
    </ResponseField>

    <ResponseField name="rp" type="object">
      Identité de la partie utilisatrice.

      <Expandable title="propriétés">
        <ResponseField name="id" type="string">
          Identifiant de la partie utilisatrice (ID RP). Par défaut, il s’agit du domaine personnalisé du tenant ou de l’identifiant de partie utilisatrice personnalisé configuré.
        </ResponseField>

        <ResponseField name="name" type="string">
          Nom d’affichage de la partie utilisatrice. Identique à `rp.id`.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="user" type="object">
      Identifiant utilisateur WebAuthn auquel vous associez la nouvelle information d’identification.

      <Expandable title="propriétés">
        <ResponseField name="id" type="string">
          Identifiant utilisateur généré par le serveur.
        </ResponseField>

        <ResponseField name="name" type="string">
          Identifiant destiné à l’utilisateur (généralement la valeur ayant la plus haute priorité fournie dans `user_profile`, comme `email`).
        </ResponseField>

        <ResponseField name="displayName" type="string">
          Nom d’affichage (`user_profile.name` s’il est fourni, sinon l’identifiant choisi).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="pubKeyCredParams" type="array">
      [Algorithmes à clé publique](/docs/fr-ca/get-started/applications/signing-algorithms) autorisés pour les informations d’identification, par ordre de préférence. Auth0 renvoie EdDSA (`-8`), ES256 (`-7`) et RS256 (`-257`).
    </ResponseField>

    <ResponseField name="authenticatorSelection" type="object">
      Critères de sélection de l’authentificateur.

      <Expandable title="propriétés">
        <ResponseField name="residentKey" type="string">
          Exigence relative à la clé résidente. Renvoie toujours `required`.
        </ResponseField>

        <ResponseField name="userVerification" type="string">
          Exigence de vérification de l’utilisateur. Renvoie toujours `preferred`.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

| État | Description                                                                                                                                                                                                                                                                                                                                                     |
| ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200  | Challenge d’enregistrement généré avec succès.                                                                                                                                                                                                                                                                                                                  |
| 400  | Requête non valide. Les causes fréquentes comprennent l’absence d’identifiants `user_profile` requis, un champ `user_profile` non valide, un champ `user_metadata` non valide, un utilisateur existant, une application non configurée pour l’authentification par clé d’accès, une requête effectuée hors d’un domaine personnalisé ou une application tierce. |
| 401  | Non autorisé. Informations d’identification du client non valides.                                                                                                                                                                                                                                                                                              |
| 404  | Les API Passkey ne sont pas activées pour le tenant.                                                                                                                                                                                                                                                                                                            |
| 429  | Trop de requêtes. La limite de requêtes par adresse IP a été dépassée.                                                                                                                                                                                                                                                                                          |
