Passer au contenu principal
Les signaux supplémentaires sont offerts aux clients Enterprise, et vous devez demander le module complémentaire Attack Protection. Communiquez avec l’équipe commerciale d’Auth0 pour en savoir plus.

Avant de commencer

Pour utiliser les signaux supplémentaires d’Akamai dans les Actions, vous devez :
Une fois Akamai configuré pour utiliser les signaux supplémentaires, vous pouvez exploiter les données fournies par ces signaux dans les Actions Auth0.

Signaux supplémentaires pris en charge par déclencheur d’Action

DéclencheurObjets de signaux supplémentairesObjet d’événement
Login
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Pre-User Registration
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Post-User Registration
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Send Phone MessageAucunN/A
Post-Challenge
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Post-Change Password
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Credentials ExchangeAucunN/A

Schémas d’objets Signal supplémentaires

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

Cas d’utilisation

Voici un exemple de révocation d’une session en fonction de la propriété akamaiUserRisk.score :
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 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é.
Voici un exemple montrant comment imposer la MFA en fonction de la propriété akamaiBot.score.

Exiger la MFA

Cette Action effectue deux tâches :
  1. Mettre à jour les métadonnées de l’application : si la propriété score dépasse une valeur donnée, consigner que la MFA est requise pour la session.
  2. Exiger la MFA : si la propriété score dépasse une valeur donnée, ou si les métadonnées de l’application indiquent que la MFA est requise pour la session, imposer la MFA.
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 de l’application

Cette Action supprime des métadonnées de l’application les renseignements sur la MFA propres à la session une fois que l’utilisateur a terminé la MFA avec succès.
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);
  }
};