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éclencheur | Quand il s’active |
|---|---|
pre_login | Avant que Keycloak authentifie l’utilisateur |
post_login | Après l’authentification réussie, avant l’émission du token |
pre_signup | Avant la création d’un nouveau compte utilisateur |
post_signup | Après la création d’un nouveau compte utilisateur |
post_change_password | Après un changement de mot de passe |
pre_m2m_token | Avant 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
| Champ | Description |
|---|---|
| Nom | Étiquette descriptive (ex. “Vérifier le statut d’abonnement”) |
| Déclencheur | Quel événement active cette action |
| Timeout | Temps 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.