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

# Utiliser les Supplemental Signals d’Akamai dans Actions

> Utilisez les Actions Auth0 avec les signaux Akamai Account Protector afin d’enrichir les décisions de connexion avec les scores de bot, de fraude et de risque du réseau périphérique d’Akamai.

<Warning>
  Supplemental Signals est offert aux clients d’entreprise, et vous devez demander le module complémentaire Attack Protection. Communiquez avec [Auth0 Sales](https://auth0.com/get-started?place=header\&type=button\&text=talk%20to%20sales) pour en savoir plus.
</Warning>

<Card title="Avant de commencer">
  Pour utiliser les Supplemental Signals d’Akamai dans Actions, vous devez :

  * [Configurer Akamai comme proxy inverse](/docs/fr-ca/customize/custom-domains/self-managed-certificates)
  * [Configurer Akamai pour envoyer des Supplemental Signals](/docs/fr-ca/secure/attack-protection/configure-akamai-supplemental-signals)
</Card>

Une fois Akamai configuré pour utiliser Supplemental Signals, vous pouvez utiliser les données fournies par ces signaux dans les [Actions Auth0](/docs/fr-ca/customize/actions).

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

| Déclencheur            | Objets de signal supplémentaire                         | Objet Event                                                                                                                                                                                              |
| :--------------------- | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Login                  | <ul><li>`akamaiBot`</li><li>`akamaiUserRisk`</li></ul>  | [`event.authentication.riskAssessment.supplemental.akamai`](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object)                              |
| Pre-User Registration  | <ul><li> `akamaiBot`</li><li>`akamaiUserRisk`</li></ul> | [`event.authentication.riskAssessment.supplemental.akamai`](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/pre-user-registration-trigger/pre-user-registration-event-object)   |
| Post-User Registration | <ul><li> `akamaiBot`</li><li>`akamaiUserRisk`</li></ul> | [`event.authentication.riskAssessment.supplemental.akamai`](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/post-user-registration-trigger/post-user-registration-event-object) |
| Send Phone Message     | Aucun                                                   | N/A                                                                                                                                                                                                      |
| Post-Challenge         | <ul><li> `akamaiBot`</li><li>`akamaiUserRisk`</li></ul> | [`event.authentication.riskAssessment.supplemental.akamai`](/docs/fr-ca/customize/actions/explore-triggers/password-reset-triggers/post-challenge-trigger/post-challenge-event-object)                   |
| Post-Change Password   | <ul><li> `akamaiBot`</li><li>`akamaiUserRisk`</li></ul> | [`event.authentication.riskAssessment.supplemental.akamai`](/docs/fr-ca/customize/actions/explore-triggers/password-reset-triggers/post-change-password-trigger/post-change-password-event-object)       |
| Credentials Exchange   | Aucun                                                   | N/A                                                                                                                                                                                                      |

<div id="supplemental-signal-object-schemas">
  ## Schémas d’objet de Supplemental Signal
</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 renvoyée dans les résultats d’Akamai Bot Manager.

      Exemple : `Monitor`
    </ResponseField>

    <ResponseField name="botCategory" type="string[]">
      La catégorie de bot renvoyée dans les résultats d’Akamai Bot Manager.

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

    <ResponseField name="botScore" type="number">
      Le score de bot renvoyé dans les résultats d’Akamai Bot Manager.

      Exemple : `90`
    </ResponseField>

    <ResponseField name="botScoreResponseSegment" type="string">
      Le segment de réponse du score de bot renvoyé dans les résultats d’Akamai Bot Manager.

      Exemple : `aggressive`
    </ResponseField>

    <ResponseField name="botnetId" type="string">
      L’ID du botnet renvoyé dans les résultats d’Akamai Bot Manager.

      Exemple : `googlebot`
    </ResponseField>

    <ResponseField name="type" type="string">
      Le type renvoyé dans les résultats d’Akamai Bot Manager.

      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">
      Le statut autorisé 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 OS 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">
      Le statut 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’usage
</div>

<AccordionGroup>
  <Accordion title="Révoquer une session selon les résultats d’Akamai Account Protector">
    Voici un exemple de la façon dont vous pourriez révoquer une session selon 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.');
        }
    };

    ```

    L’utilisation de la méthode `api.session.revoke` (plutôt que de la méthode `api.access.deny`) garantit que, si l’utilisateur actualise l’application, les Supplemental Signals d’Akamai sont envoyés avec la requête d’authentification et que le flux de l’Action post-login est déclenché.
  </Accordion>

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

    #### Imposer la MFA

    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, indiquez qu’une MFA est requise pour la session.
    2. **Exiger la MFA** : si la propriété `score` dépasse une valeur donnée, ou s’il existe une entrée dans les métadonnées d’application indiquant que la MFA est requise pour la session, imposez la MFA.

    ```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 renseignements sur la MFA propres à la session une fois que l’utilisateur a terminé la MFA avec succès.

    ```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>
