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

# Prendre une décision concernant un consentement

> Approuver ou refuser un consentement en attente pour l’utilisateur authentifié. Lorsque `signature` et `kid` sont fournis, le service de consentement vérifie la signature JWS à l’aide de la clé de connexion de consentement enregistrée de l’utilisateur avant d’enregistrer la décision.



## OpenAPI

````yaml docs/fr-ca/oas/myaccount/myaccount-api-oas.json POST /consents/{consent_id}/decide
openapi: 3.1.0
info:
  title: Mon compte
  version: '1.0'
  description: "L’API My Account d’Auth0 fournit un ensemble dédié de points de terminaison permettant aux utilisateurs de gérer les renseignements de leur propre compte. Les clients peuvent utiliser ces API pour créer des expériences libre-service dans leurs applications ou enrichir progressivement le compte d’un utilisateur.\n\nL’API My Account fonctionne dans le contexte de l’utilisateur actuellement connecté et peut être utilisée directement dans des applications destinées aux utilisateurs.\n\n:::tip Utiliser le domaine Auth0 ou un domaine personnalisé\n\nL’API My Account prend en charge l’utilisation de votre domaine Auth0 canonique ou de votre domaine personnalisé, mais vous devez utiliser le même domaine tout au long du processus, notamment pour\_:\n\n- Obtenir un jeton d’accès\n- Définir la valeur d’audience\n- Appeler le point de terminaison de l’API My Account\n\nPour en savoir plus, consultez [Custom Domains](https://auth0.com/docs/customize/custom-domains).\n\n:::\n\n## Activer l’API My Account\n\nVous pouvez activer l’API My Account pour votre tenant dans le tableau de bord Auth0\_:\n\n1. Accédez à Authentication > APIs.\n2. Repérez la bannière MyAccount API.\n3. Sélectionnez Activate.\n\n![](https://images.ctfassets.net/cdy7uua7fh8z/DGkDQNIHcegN8vtQyEvF3/a2e98b06867701a66fa1f1b3df1c996b/My_Account_API_-_Activate.png)\n\nPar défaut, l’API My Account est créée avec les application API access policies suivantes\_:\n\n`require_client_grant` pour les flux utilisateur\n\n`deny_all` pour les flux client (machine à machine)\n\nPour qu’une application puisse accéder à l’API My Account au nom de l’utilisateur, vous devez créer explicitement un client grant pour cette application, ce qui vous permet de définir les scopes maximaux que l’application peut demander. Vous pouvez aussi remplacer la policy des flux d’accès utilisateur par allow_all, ce qui permet à toute application de votre tenant de demander n’importe quel scope de l’API My Account.\n\nComme l’API My Account expose des renseignements et des opérations sensibles, Auth0 ne recommande pas d’utiliser allow_all pour les flux d’accès utilisateur. Vous devriez appliquer le principe du moindre privilège avec l’API My Account afin de veiller à ce que les applications n’obtiennent que l’accès dont elles ont réellement besoin, ce qui réduit les risques de sécurité potentiels.\n\nLes permissions finales accordées à l’application seront déterminées par l’intersection des scopes autorisés par l’application API access policy, des permissions Role-Based Access Control (RBAC) attribuées à l’utilisateur final et du consentement donné par l’utilisateur, s’il y a lieu.\n\n:::info Flux pris en charge\n\nVous ne pouvez pas mettre à jour l’application API access policy pour l’accès client à l’API My Account, ce qui signifie que vous ne pouvez pas accéder à l’API My Account à l’aide du Client Credentials Flow.\n\n:::\n\nPour en savoir plus sur la gestion des application API access policies et des client grants qui y sont associés, consultez [Application Access to APIs: Client Grants](https://auth0.com/docs/get-started/applications/application-access-to-apis-client-grants).\n\n## Obtenir un jeton d’accès\n\nVous pouvez obtenir un jeton d’accès pour l’API My Account de la même façon que pour l’une de vos propres API.\n\n:::info &nbsp\nSi vous comptez permettre à l’API My Account d’effectuer des opérations sensibles (comme l’inscription d’une méthode d’authentification), nous vous recommandons fortement d’utiliser l’[authentification renforcée (step-up authentication)](https://auth0.com/docs/secure/multi-factor-authentication/step-up-authentication) pour appliquer des politiques de sécurité supplémentaires au moyen de l’[authentification multifacteur (MFA)](https://auth0.com/docs/secure/multi-factor-authentication).\n:::\n\nSi vous utilisez Universal Login, consultez les articles suivants\_:\n\n- [Call Your API Using the Authorization Code Flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow)\n- [Call Your API Using the Authorization Code Flow with PKCE](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)\n\nSi vous utilisez l’embedded login, consultez les articles suivants\_:\n\n- [Call Your API Using Resource Owner Password Flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow/call-your-api-using-resource-owner-password-flow)\n- [Login Flow with Native Passkeys API](https://auth0.com/docs/native-passkeys-api#login-flow)\n\n## Exemples\n\n### Universal Login avec le flux de code d’autorisation\n\n**Étape 1\_: Demander un code d’autorisation**\n\n```\ncurl --request GET \\\n  --url 'https://{yourDomain}/authorize?response_type=code&client_id={yourClientId}&redirect_uri=%7ByourRedirectUri%7D&scope=create%3Ame%3Aauthentication_methods&offline_access=&audience=https%3A%2F%2F{yourDomain}%2Fme%2F'\n```\n\n**Étape 2\_: Échanger le code contre un jeton d’accès**\n\n```\ncurl --request POST \\\n  --url 'https://{yourDomain}/oauth/token' \\\n  --header 'content-type: application/json' \\\n  --data '{\"grant_type\": \"authorization_code\",\"client_id\": \"{yourClientId}\",\"client_secret\": \"{yourClientSecret}\",\"code\": \"{yourAuthorizationCode}\",\"redirect_uri\": \"{yourRedirectUri}\",\"audience\": \"{yourAudience}\",\"scope\": \"create:me:authentication_methods\",\"offline_access\": \"\"}'\n```\n\n### Embedded login avec des passkeys natives\n\n**Étape 1\_: Demander un challenge de connexion**\n\n```\ncurl --request POST \\\n  --url 'https://{yourDomain}/passkey/challenge' \\\n  --header 'content-type: application/json' \\\n  --data '{\"client_id\": \"{yourClientId}\"}'\n```\n\n**Étape 2\_: Authentifier un utilisateur existant**\n\n```\ncurl --request POST \\\n  --url 'https://{yourDomain}/oauth/token' \\\n  --header 'content-type: application/json' \\\n  --data '{  \"grant_type\": \"urn:okta:params:oauth:grant-type:webauthn\",  \"client_id\": \"{yourClientId}\",  \"scope\": \"create:me:authentication_methods offline_access\",  \"audience\": \"https://{yourDomain}/me/\",  \"auth_session\": \"{sessionIdFromTheFirstRequest}\",  \"authn_response\": \"{authenticatorResponse}\"}'\n```"
servers:
  - url: https://{host}/me/v1
    variables:
      host:
        default: auth0.auth0.com
        description: Nom d’hôte personnalisé ou canonique
security: []
tags:
  - name: factors
    description: Facteurs
    x-displayName: Factors
  - name: connected-accounts
    description: Comptes connectés
    x-displayName: Connected Accounts
  - name: authentication-methods
    description: Méthodes d’authentification
    x-displayName: Authentication Methods
  - name: consents
    description: Consentements
    x-displayName: Consents
  - name: organizations
    description: Organisations
    x-displayName: Organizations
  - name: profile
    description: Profil
    x-displayName: Profile
paths:
  /consents/{consent_id}/decide:
    post:
      tags:
        - consents
      summary: Prendre une décision concernant un consentement
      description: >-
        Approuver ou refuser un consentement en attente pour l’utilisateur
        authentifié. Lorsque `signature` et `kid` sont fournis, le service de
        consentement vérifie la signature JWS à l’aide de la clé de connexion de
        consentement enregistrée de l’utilisateur avant d’enregistrer la
        décision.
      operationId: decideConsent
      parameters:
        - $ref: '#/components/parameters/PathConsentId'
        - $ref: '#/components/parameters/HeaderCorrelationId'
        - $ref: '#/components/parameters/HeaderTraceparent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DecideConsentRequestContent'
            examples:
              approve:
                summary: Approuver un consentement
                value:
                  decision: approve
              approveWithSignature:
                summary: Approuver un consentement avec non-répudiation
                value:
                  decision: approve
                  signature: <compact JWS over the signed payload>
                  kid: csk_72jbvv7LfRKYp59gtRLtkn
              approveWithChallengeResponse:
                summary: Approuver un consentement par notification push
                value:
                  decision: approve
                  signature: <compact JWS over the signed payload>
                  kid: csk_72jbvv7LfRKYp59gtRLtkn
                  challenge_response: <challenge response JWT built by the Guardian SDK>
              deny:
                summary: Refuser un consentement
                value:
                  decision: deny
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DecideConsentResponseContent'
          description: La décision de consentement a été enregistrée avec succès.
          headers:
            x-ratelimit-limit:
              $ref: '#/components/headers/XRateLimitLimitHeader'
            x-ratelimit-reset:
              $ref: '#/components/headers/XRateLimitResetHeader'
            x-ratelimit-remaining:
              $ref: '#/components/headers/XRateLimitRemainingHeader'
            x-correlation-id:
              $ref: '#/components/headers/CorrelationIdHeader'
            traceparent:
              $ref: '#/components/headers/TraceparentHeader'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - Bearer-DPoP:
            - create:me:consents
      x-codeSamples: []
components:
  parameters:
    PathConsentId:
      in: path
      name: consent_id
      required: true
      schema:
        type: string
      description: L’ID du consentement à récupérer
    HeaderCorrelationId:
      in: header
      name: x-correlation-id
      required: false
      schema:
        type: string
      x-sdk-ignore: true
      description: >-
        Un identifiant unique fourni par le client pour une opération donnée,
        utilisé pour corréler la requête dans les systèmes Auth0. La valeur
        apparaît sous `references.correlation_id` dans les journaux du locataire
        et est renvoyée dans l’en-tête `x-correlation-id` de la réponse. Les
        valeurs non valides ou trop longues sont ignorées silencieusement et
        remplacées par un UUID v4 généré. Évitez d’inclure des renseignements
        personnels identifiables (RPI).
    HeaderTraceparent:
      in: header
      name: traceparent
      required: false
      schema:
        type: string
      x-sdk-ignore: true
      description: "Un en-tête [W3C Trace Context](https://www.w3.org/TR/trace-context/) utilisé pour corréler la requête dans les traces distribuées. Lorsqu’il est fourni, la trace entrante est poursuivie et un nouveau span enfant est renvoyé dans l’en-tête `traceparent` de la réponse\_; l’ID de trace apparaît aussi sous `references.trace_id` dans les journaux du locataire. Les valeurs malformées sont ignorées."
  schemas:
    DecideConsentRequestContent:
      type: object
      description: >-
        La décision de l’utilisateur concernant une demande de consentement en
        attente.
      properties:
        decision:
          $ref: '#/components/schemas/ConsentDecisionEnum'
        signature:
          type: string
          description: >-
            Sérialisation JWS compacte de la charge utile de consentement
            signée, produite par l’appareil. Doit être fournie avec `kid`.
        kid:
          type: string
          description: >-
            Identifiant de clé de la clé de connexion de consentement
            enregistrée utilisée pour produire `signature`. Doit être fourni
            avec `signature`.
        challenge_response:
          type: string
          description: >-
            JWT de réponse au défi que l’appareil génère à l’aide du SDK
            Guardian à partir du `challenge` du consentement. Envoyez-le si la
            demande de consentement a été déclenchée par une notification push
            pour résoudre la transaction MFA associée.
      required:
        - decision
      dependentRequired:
        signature:
          - kid
        kid:
          - signature
      additionalProperties: false
    DecideConsentResponseContent:
      type: object
      description: Le résultat d’une décision de consentement.
      properties:
        consent_id:
          type: string
          description: L’identifiant unique de l’enregistrement de consentement.
        status:
          $ref: '#/components/schemas/ConsentDecisionStatusEnum'
      required:
        - consent_id
        - status
      additionalProperties: false
    ConsentDecisionEnum:
      type: string
      enum:
        - approve
        - deny
      description: La décision de l’utilisateur concernant la demande de consentement.
    ConsentDecisionStatusEnum:
      type: string
      enum:
        - approved
        - denied
      description: L’état mis à jour du consentement.
    ErrorResponse:
      properties:
        type:
          type: string
        status:
          type: number
        title:
          type: string
        detail:
          type: string
        validation_errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
      required:
        - type
        - status
        - title
        - detail
      type: object
      additionalProperties: false
    ValidationError:
      type: object
      properties:
        detail:
          type: string
        field:
          type: string
        pointer:
          type: string
        source:
          type: string
      required:
        - detail
      additionalProperties: false
  headers:
    XRateLimitLimitHeader:
      required: true
      description: Le nombre maximal de requêtes autorisées pendant la fenêtre de la limite
      schema:
        type: number
    XRateLimitResetHeader:
      required: true
      description: >-
        Le moment prévu (sous forme d’horodatage UNIX, en secondes) auquel le
        bucket sera réapprovisionné
      schema:
        type: number
    XRateLimitRemainingHeader:
      required: true
      description: >-
        Le nombre de requêtes restantes dans la fenêtre en cours avant le rejet
        des requêtes
      schema:
        type: number
    CorrelationIdHeader:
      required: false
      description: >-
        Renvoie l’`x-correlation-id` validé fourni dans la requête, ou un UUID
        v4 généré si aucun n’a été fourni.
      schema:
        type: string
    TraceparentHeader:
      required: false
      description: >-
        Un en-tête [W3C Trace Context](https://www.w3.org/TR/trace-context/) qui
        renvoie l’ID de la trace entrante avec un nouvel ID de span enfant.
      schema:
        type: string
    RetryAfterHeader:
      required: true
      description: >-
        Le nombre de secondes que le client doit attendre avant d’effectuer une
        nouvelle requête
      schema:
        type: number
    XAuth0ErrorKindHeader:
      description: >-
        Indique si la limite de débit dépassée est une limite globale (par
        tenant).
      schema:
        type: string
        const: global-rate-limit
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Entrée invalide selon le schéma.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Non autorisé.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Interdit.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    NotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Introuvable.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    Conflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: La requête est en conflit avec l’état actuel de la ressource.
      headers:
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
    TooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Trop de requêtes.
      headers:
        retry-after:
          $ref: '#/components/headers/RetryAfterHeader'
        x-ratelimit-limit:
          $ref: '#/components/headers/XRateLimitLimitHeader'
        x-ratelimit-reset:
          $ref: '#/components/headers/XRateLimitResetHeader'
        x-ratelimit-remaining:
          $ref: '#/components/headers/XRateLimitRemainingHeader'
        x-auth0-error-kind:
          $ref: '#/components/headers/XAuth0ErrorKindHeader'
        x-correlation-id:
          $ref: '#/components/headers/CorrelationIdHeader'
        traceparent:
          $ref: '#/components/headers/TraceparentHeader'
  securitySchemes:
    Bearer-DPoP:
      type: http
      scheme: bearer
      description: >-
        Les jetons Bearer et DPoP sont pris en charge selon la configuration de
        l’API

````