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

# Utiliser les signaux supplémentaires Akamai dans les Actions

<Warning>
  **Auth0 Supplemental Signals est actuellement en accès anticipé.**

  En utilisant cette fonctionnalité, vous acceptez les conditions applicables de la période d’essai gratuite prévues dans la [Convention principale d’abonnement](https://www.okta.com/legal) d’Okta. Pour en savoir plus sur les phases de diffusion des produits Auth0, consultez la page [Phases de diffusion des produits](/docs/fr-CA/troubleshoot/product-lifecycle/product-release-stages).
</Warning>

<Info>
  **Avant de commencer**

  Pour utiliser les signaux supplémentaires Akamai dans les Actions, vous devez :

  * [Configurer Akamai comme serveur proxy inverse](/docs/fr-CA/customize/custom-domains/self-managed-certificates)
  * [Configurer Akamai pour envoyer des signaux supplémentaires](./configure-akamai-supplemental-signals)
</Info>

Si vous avez configuré Akamai comme serveur proxy inverse et l’avez paramétré pour envoyer des signaux supplémentaires à Auth0, vous pouvez utiliser les données fournies dans ces signaux dans les [Actions Auth0](/docs/fr-CA/customize/actions).

<div id="supported-supplemental-signals-by-action-trigger">
  ## Signaux supplémentaires pris en charge par déclencheur d’Action
</div>

| Déclencheur                       | Objets de signaux supplémentaires                                            | Objet d’événement                                                                                                                                                                           |
| --------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Connexion                         | <ul><li><code>akamaiBot</code></li><li><code>akamaiUserRisk</code></li></ul> | <a href="/docs/fr-CA/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object"><code>authentication.riskAssessment.supplemental.akamai</code></a> |
| Préinscription de l’utilisateur   | Aucun                                                                        | S.O.                                                                                                                                                                                        |
| Post-inscription de l’utilisateur | Aucun                                                                        | S.O.                                                                                                                                                                                        |
| Envoyer un message téléphonique   | Aucun                                                                        | S.O.                                                                                                                                                                                        |
| Post-challenge                    | Aucun                                                                        | S.O.                                                                                                                                                                                        |
| Post-changement de mot de passe   | Aucun                                                                        | S.O.                                                                                                                                                                                        |
| Échange d’identifiants            | Aucun                                                                        | S.O.                                                                                                                                                                                        |

<div id="supplemental-signal-object-schemas">
  ## Schémas d’objets de signaux supplémentaires
</div>

Les objets `akamaiBot` et `akamaiUserRisk` contiennent plusieurs propriétés que vous pouvez utiliser pour personnaliser votre flux d’authentification.

<ResponseField name="akamaiBot" type="object">
  <Expandable>
    <ResponseField name="action" type="string">
      L’action dans les résultats du gestionnaire de robots Akamai.

      Exemple : `Monitor`
    </ResponseField>

    <ResponseField name="botCategory" type="string[]">
      La catégorie du robot dans les résultats du gestionnaire de robots Akamai.

      Exemple : `["Web Search Engine Bots"]`
    </ResponseField>

    <ResponseField name="botScore" type="number">
      Le score du robot dans les résultats du gestionnaire de robots Akamai.

      Exemple : `90`
    </ResponseField>

    <ResponseField name="botScoreResponseSegment" type="string">
      Le segment de réponse du score du robot dans les résultats du gestionnaire de robots Akamai.

      Exemple : `aggressive`
    </ResponseField>

    <ResponseField name="botnetId" type="string">
      L’ID de botnet dans les résultats du gestionnaire de robots Akamai.

      Exemple : `googlebot`
    </ResponseField>

    <ResponseField name="type" type="string">
      Le type dans les résultats du gestionnaire de robots Akamai.

      Exemple : `Akamai-Categorized Bot`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="akamaiUserRisk" type="object">
  <Expandable>
    <ResponseField name="action" type="string">
      L’action de l’évaluation du risque utilisateur Akamai.

      Exemple : `monitor`
    </ResponseField>

    <ResponseField name="allow" type="number">
      L’état d’autorisation de l’évaluation du risque utilisateur Akamai.

      Exemple : `0`
    </ResponseField>

    <ResponseField name="emailDomain" type="string">
      Le domaine de courriel de l’utilisateur.

      Exemple : `example.com`
    </ResponseField>

    <ResponseField name="general" type="object">
      Le risque général de l’évaluation du risque utilisateur Akamai.

      Exemple : `{ aci: “0”, db: “Chrome 85”, di: “0fc91b5ec42f5a471c16a85e3e388ca57697c1a9”, do: “Mac OX X 10” }`
    </ResponseField>

    <ResponseField name="ouid" type="string">
      L’OUID de l’utilisateur.

      Exemple : `m534264`
    </ResponseField>

    <ResponseField name="requestid" type="string">
      L’ID de requête de l’utilisateur.

      Exemple : `19e22e`
    </ResponseField>

    <ResponseField name="risk" type="object">
      Le risque de l’évaluation du risque utilisateur Akamai.

      Exemple : `{ ugp: “ie/M”, unp: “432/H” }`
    </ResponseField>

    <ResponseField name="score" type="number">
      Le score de l’évaluation du risque utilisateur Akamai.

      Exemple : `0`
    </ResponseField>

    <ResponseField name="status" type="number">
      L’état de l’évaluation du risque utilisateur Akamai.

      Exemple : `4`
    </ResponseField>

    <ResponseField name="trust" type="object">
      Le niveau de confiance de l’évaluation du risque utilisateur Akamai.

      Exemple : `{ udbp: "Chrome85", udfp: "25ba44ec3b391ba4ce5fbbd2979635e254775werwe", udop: "Mac OS X 10", ugp: "FR", unp: "12322", utp: "weekday_3" }`
    </ResponseField>

    <ResponseField name="username" type="string">
      Le nom d’utilisateur de l’utilisateur.

      Exemple : `testuser@example.com`
    </ResponseField>

    <ResponseField name="uuid" type="string">
      L’UUID de l’évaluation du risque utilisateur Akamai.

      Exemple : `86b37525-8047-4a3c-8d7a-23e99666da05`
    </ResponseField>
  </Expandable>
</ResponseField>

<div id="use-cases">
  ## Cas d’utilisation
</div>

<AccordionGroup>
  <Accordion title="Révoquer une session en fonction des résultats d’Akamai Account Protector">
    Voici un exemple de la façon dont vous pouvez révoquer une session en fonction de la propriété `akamaiUserRisk.score` :

    ```javascript theme={null}
    exports.onExecutePostLogin = async (event, api) => {
      const userRiskHeader = event.authentication?.riskAssessment?.supplemental?.akamai?.akamaiUserRisk;
      if (userRiskHeader?.score && userRiskHeader?.score >= 90) {
            console.log('User is deemed high risk.');
            // This will revoke session cookies to deny login.
            api.session.revoke('Session revoked, User risk score is greater than 90.');
        }
    };

    ```

    Veuillez noter l’utilisation de la méthode `api.session.revoke` (par opposition à la méthode `api.access.deny`). L’utilisation de la méthode `revoke` garantit que si l’utilisateur rafraîchit l’application, les signaux supplémentaires d’Akamai sont envoyés avec la requête d’authentification et que le flux d’Action post-connexion est déclenché.
  </Accordion>

  <Accordion title="Demander l’authentification multifacteur (AMF) en fonction des résultats d’Akamai Bot Manager">
    Voici un exemple de la façon dont vous pouvez imposer l’AMF en fonction de la propriété `akamaiBot.score`.

    #### Imposer l’AMF

    Cette Action effectue deux tâches :

    1. **Mettre à jour les [métadonnées d’application](/docs/fr-CA/manage-users/user-accounts/metadata/metadata-fields-data)** : Si la propriété `score` dépasse une valeur donnée, consignez que l’AMF est requise pour la session.
    2. **Exiger l’AMF** : Si la propriété `score` dépasse une valeur donnée ou s’il existe un enregistrement dans les métadonnées d’application indiquant que l’AMF est requise pour la session, imposez l’AMF.

    ```javascript theme={null}
    exports.onExecutePostLogin = async (event, api) => {
      const userRiskHeader = event.authentication?.riskAssessment?.supplemental?.akamai?.akamaiUserRisk;

      if (userRiskHeader?.score && userRiskHeader?.score >= 90) {
        console.log(`Setting app metadata for session id: ${event.session?.id}`);
        api.user.setAppMetadata(`mfa_required_${event.session?.id}`, true);
      }

      if (userRiskHeader?.score && userRiskHeader?.score >= 90 ||
          event.user.app_metadata[`mfa_required_${event.session?.id}`]) {
            console.log(`Requiring MFA FOR Session id: ${event.session?.id}`);
            api.multifactor.enable('any', {allowRememberBrowser: false});
      }
    };

    ```

    #### Nettoyer les métadonnées d’application

    Cette Action supprime, des métadonnées d’application, les informations liées à l’AMF propres à une session après que l’utilisateur a réussi l’AMF.

    ```javascript theme={null}
    exports.onExecutePostLogin = async (event, api) => {
      const mfaMethod = event.authentication?.methods.find((method) => {
        return method.name === 'mfa';
      });

      if (mfaMethod) {
        console.log(`Removing MFA requirement for session id: ${event.session?.id}`);
        api.user.setAppMetadata(`mfa_required_${event.session?.id}`, undefined);
      }
    };
    ```
  </Accordion>
</AccordionGroup>
