Skip to Content

Moteur Actions

Les Actions sont des fonctions JavaScript personnalisées qui s’exécutent pendant les flux d’authentification dans un environnement sandbox. Elles permettent d’étendre le comportement d’Auris sans modifier le code core.


Déclencheurs Disponibles

DéclencheurQuand il s’active
pre_loginAvant que Keycloak authentifie l’utilisateur
post_loginAprès l’authentification réussie, avant l’émission du token
pre_signupAvant la création d’un nouveau compte utilisateur
post_signupAprès la création d’un nouveau compte utilisateur
post_change_passwordAprès un changement de mot de passe
pre_m2m_tokenAvant l’émission d’un token machine-to-machine

Créer une Action

Va dans Actions

Dans la sidebar de la Console, clique sur Actions.

Clique sur Créer une Action

Clique sur Créer une Action dans le coin supérieur droit.

Configure l’action

ChampDescription
NomÉtiquette descriptive (ex. “Vérifier le statut d’abonnement”)
DéclencheurQuel événement active cette action
TimeoutTemps d’exécution maximum en ms (défaut : 5000)

Écris le code

L’éditeur de code a l’intellisense pour le type AurisActionContext. L’action reçoit un objet context avec accès à l’utilisateur, le tenant, l’application et l’événement.

// Exemple : Ajoute une claim personnalisée au token module.exports = async function(context) { const { user, token } = context; // Ajoute une claim personnalisée token.claims['app_tier'] = user.metadata?.subscription_tier ?? 'free'; // Refuse le login si le compte est suspendu if (user.metadata?.suspended) { context.deny('Compte suspendu. Contacte le support.'); } };

Teste l’action

Utilise le panneau Test avec un payload de test synthétique pour vérifier le comportement avant de déployer.

Déploie

Clique sur Enregistrer & Déployer. L’action est active immédiatement pour tous les logins suivants.


Éditeur Blueprint

Pour une logique visuelle sans écrire de JavaScript, utilise l’Éditeur Blueprint — une interface drag-and-drop avec des nœuds typés.

  • Nœud Déclencheur — L’événement auth qui démarre le flux
  • Nœuds Condition — Logique if/then (comparaisons de champs, opérateurs)
  • Nœuds Logic Gate — Combinateurs AND/OR
  • Nœuds Action — Opérations à effectuer (refuser, définir claim, définir métadonnées, journaliser)

Environnement Sandbox

Les Actions s’exécutent dans un environnement sandbox V8. Les API suivantes sont bloquées : require, import, process, eval, fs, child_process.

Les API disponibles incluent : fetch (HTTP), accès à context.user, context.tenant, context.token, et une instance console pour la journalisation.

Les Actions s’exécutent de manière synchrone dans le flux d’authentification. Si une action dépasse le timeout, le login est bloqué. Teste tes actions avec soin avant de les déployer en production.