Saltar al contenido principal
Las señales suplementarias están disponibles para clientes Enterprise, y debe solicitar el complemento Attack Protection. Póngase en contacto con Auth0 Sales para obtener más información.

Antes de comenzar

Para usar las señales suplementarias de Akamai en Actions, debe:
Una vez que haya configurado Akamai para usar señales suplementarias, puede usar los datos proporcionados en esas señales en Actions de Auth0.

Señales suplementarias admitidas por desencadenador de Action

DesencadenadorObjetos de señal suplementariaObjeto de evento
Inicio de sesión
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Registro previo de usuario
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Registro posterior de usuario
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Enviar mensaje telefónicoNingunoN/A
Post-Challenge
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Posterior al cambio de contraseña
  • akamaiBot
  • akamaiUserRisk
event.authentication.riskAssessment.supplemental.akamai
Intercambio de credencialesNingunoN/A

Esquemas de objetos de señales suplementarias

Los objetos akamaiBot y akamaiUserRisk contienen varias propiedades que puede usar para personalizar su flujo de autenticación.
akamaiBot
object
akamaiUserRisk
object

Casos de uso

Aquí tienes un ejemplo de cómo podrías revocar una sesión en función de la propiedad 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.');
        //Esto revocará las cookies de sesión para denegar el inicio de sesión.
        api.session.revoke('Session revoked, User risk score is greater than 90.');
    }
};

El uso del método api.session.revoke (en comparación con el método api.access.deny) garantiza que, si el usuario actualiza la aplicación, las señales suplementarias de Akamai se envíen con la solicitud de autenticación y se active el flujo de Action posterior al inicio de sesión.
Aquí tienes un ejemplo de cómo podrías aplicar MFA en función de la propiedad akamaiBot.score.

Aplicar MFA

Esta Action realiza dos tareas:
  1. Actualizar metadatos de la aplicación: si la propiedad de puntuación supera un valor especificado, registra que se requiere MFA para la sesión.
  2. Exigir MFA: si la propiedad de puntuación supera un valor especificado o si hay un registro en los metadatos de la aplicación que indica que se requiere MFA para la sesión, aplica 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});
  }
};

Limpiar los metadatos de la aplicación

Esta Action elimina de los metadatos de la aplicación la información de MFA específica de la sesión después de que el usuario complete MFA correctamente.
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);
  }
};